summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeff Davis <jdavis@postgresql.org>2014-05-06 19:35:24 -0700
committerJeff Davis <jdavis@postgresql.org>2014-05-06 21:36:48 -0700
commitdfac804a474806692e8e1fc2b65b6bc73666d32d (patch)
tree04bd3e192ee299325df3cdbfd2aae33791c5671d
parent0b44914c21a008bb2f0764672eb6b15310431b3e (diff)
Fix interval test, which was broken for floating-point timestamps.
Commit 4318daecc959886d001a6e79c6ea853e8b1dfb4b introduced a test that couldn't be made consistent between integer and floating-point timestamps. It was designed to test the longest possible interval output length, so removing four zeros from the number of hours, as this patch does, is not ideal. But the test still has some utility for its original purpose, and there aren't a lot of other good options. Noah Misch suggested a different approach where we test that the output either matches what we expect from integer timestamps or what we expect from floating-point timestamps. That seemed to obscure an otherwise simple test, however. Reviewed by Tom Lane and Noah Misch.
-rw-r--r--src/test/regress/expected/interval.out11
-rw-r--r--src/test/regress/sql/interval.sql5
2 files changed, 11 insertions, 5 deletions
diff --git a/src/test/regress/expected/interval.out b/src/test/regress/expected/interval.out
index 99fd0ca4900..a62e85fafec 100644
--- a/src/test/regress/expected/interval.out
+++ b/src/test/regress/expected/interval.out
@@ -307,10 +307,13 @@ select '4 millenniums 5 centuries 4 decades 1 year 4 months 4 days 17 minutes 31
(1 row)
-- test long interval output
-select '100000000y 10mon -1000000000d -1000000000h -10min -10.000001s ago'::interval;
- interval
--------------------------------------------------------------------------------------------
- @ 100000000 years 10 mons -1000000000 days -1000000000 hours -10 mins -10.000001 secs ago
+-- Note: the actual maximum length of the interval output is longer,
+-- but we need the test to work for both integer and floating-point
+-- timestamps.
+select '100000000y 10mon -1000000000d -100000h -10min -10.000001s ago'::interval;
+ interval
+---------------------------------------------------------------------------------------
+ @ 100000000 years 10 mons -1000000000 days -100000 hours -10 mins -10.000001 secs ago
(1 row)
-- test justify_hours() and justify_days()
diff --git a/src/test/regress/sql/interval.sql b/src/test/regress/sql/interval.sql
index 7cee2864def..78ce9f7bc93 100644
--- a/src/test/regress/sql/interval.sql
+++ b/src/test/regress/sql/interval.sql
@@ -109,7 +109,10 @@ select avg(f1) from interval_tbl;
select '4 millenniums 5 centuries 4 decades 1 year 4 months 4 days 17 minutes 31 seconds'::interval;
-- test long interval output
-select '100000000y 10mon -1000000000d -1000000000h -10min -10.000001s ago'::interval;
+-- Note: the actual maximum length of the interval output is longer,
+-- but we need the test to work for both integer and floating-point
+-- timestamps.
+select '100000000y 10mon -1000000000d -100000h -10min -10.000001s ago'::interval;
-- test justify_hours() and justify_days()