diff options
Diffstat (limited to 'src/test/regress/sql/timestamp.sql')
| -rw-r--r-- | src/test/regress/sql/timestamp.sql | 34 |
1 files changed, 24 insertions, 10 deletions
diff --git a/src/test/regress/sql/timestamp.sql b/src/test/regress/sql/timestamp.sql index 81be5b8f33..bfbfb87feb 100644 --- a/src/test/regress/sql/timestamp.sql +++ b/src/test/regress/sql/timestamp.sql @@ -2,35 +2,48 @@ -- TIMESTAMP -- -CREATE TABLE TIMESTAMP_TBL ( d1 timestamp(2) without time zone); +CREATE TABLE TIMESTAMP_TBL (d1 timestamp(2) without time zone); --- Shorthand values --- Not directly usable for regression testing since these are not constants. --- So, just try to test parser and hope for the best - thomas 97/04/26 --- NB: could get a failure if local midnight passes during the next few --- statements. +-- Test shorthand input values +-- We can't just "select" the results since they aren't constants; test for +-- equality instead. We can do that by running the test inside a transaction +-- block, within which the value of 'now' shouldn't change. We also check +-- that 'now' *does* change over a reasonable interval such as 100 msec. +-- NOTE: it is possible for this part of the test to fail if the transaction +-- block is entered exactly at local midnight; then 'now' and 'today' have +-- the same values and the counts will come out different. + +INSERT INTO TIMESTAMP_TBL VALUES ('now'); +SELECT pg_sleep(0.1); + +BEGIN; INSERT INTO TIMESTAMP_TBL VALUES ('now'); -INSERT INTO TIMESTAMP_TBL VALUES ('current'); INSERT INTO TIMESTAMP_TBL VALUES ('today'); INSERT INTO TIMESTAMP_TBL VALUES ('yesterday'); INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow'); +-- time zone should be ignored by this data type INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow EST'); INSERT INTO TIMESTAMP_TBL VALUES ('tomorrow zulu'); SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'today'; -SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'tomorrow'; +SELECT count(*) AS Three FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'tomorrow'; SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'yesterday'; -SELECT count(*) AS None FROM TIMESTAMP_TBL WHERE d1 = timestamp without time zone 'now'; +SELECT count(*) AS One FROM TIMESTAMP_TBL WHERE d1 = timestamp(2) without time zone 'now'; + +COMMIT; DELETE FROM TIMESTAMP_TBL; -- verify uniform transaction time within transaction block BEGIN; INSERT INTO TIMESTAMP_TBL VALUES ('now'); +SELECT pg_sleep(0.1); INSERT INTO TIMESTAMP_TBL VALUES ('now'); +SELECT pg_sleep(0.1); SELECT count(*) AS two FROM TIMESTAMP_TBL WHERE d1 = timestamp(2) without time zone 'now'; -END; +COMMIT; + DELETE FROM TIMESTAMP_TBL; -- Special values @@ -39,6 +52,7 @@ INSERT INTO TIMESTAMP_TBL VALUES ('infinity'); INSERT INTO TIMESTAMP_TBL VALUES ('epoch'); -- Obsolete special values INSERT INTO TIMESTAMP_TBL VALUES ('invalid'); +INSERT INTO TIMESTAMP_TBL VALUES ('current'); -- Postgres v6.0 standard output format INSERT INTO TIMESTAMP_TBL VALUES ('Mon Feb 10 17:32:01 1997 PST'); |
