@@ -74,20 +74,20 @@ SELECT INTERVAL '3 mins' * 1.5;
74
74
00:04:30
75
75
76
76
# https://github.com/risingwavelabs/risingwave/issues/3873
77
- query TTTTT
77
+ query T
78
78
select distinct * from (values (interval '1' month), (interval '30' day)) as t;
79
79
----
80
- 30 days
80
+ 1 mon
81
81
82
- query TTTTT
82
+ query T
83
83
select distinct * from (values (interval '30' day), (interval '1' month)) as t;
84
84
----
85
- 30 days
85
+ 1 mon
86
86
87
- query TTTTT
87
+ query T
88
88
select distinct * from (values (interval '720' hour), (interval '1' month)) as t;
89
89
----
90
- 30 days
90
+ 1 mon
91
91
92
92
query TTTTTT
93
93
select interval '1 year 1 month 1 day 1';
@@ -119,3 +119,44 @@ query T
119
119
select '1 mons 1 days 00:00:00.0000001'::INTERVAL;
120
120
----
121
121
1 mon 1 day
122
+
123
+ # Tests moved from regress tests due to not matching exactly.
124
+
125
+ # In mixed sign intervals, PostgreSQL displays positive sign after negative
126
+ # (e.g. `-1 mons +1 day`) while we display it without sign
127
+ # (e.g. `-1 mons 1 day`).
128
+ # But the main purpose of this test case is ordering of large values.
129
+
130
+ statement ok
131
+ CREATE TABLE INTERVAL_TBL_OF (f1 interval);
132
+
133
+ statement ok
134
+ INSERT INTO INTERVAL_TBL_OF (f1) VALUES
135
+ ('2147483647 days 2147483647 months'),
136
+ ('2147483647 days -2147483648 months'),
137
+ ('1 year'),
138
+ ('-2147483648 days 2147483647 months'),
139
+ ('-2147483648 days -2147483648 months');
140
+
141
+ statement ok
142
+ FLUSH;
143
+
144
+ query TT
145
+ SELECT r1.*, r2.*
146
+ FROM INTERVAL_TBL_OF r1, INTERVAL_TBL_OF r2
147
+ WHERE r1.f1 > r2.f1
148
+ ORDER BY r1.f1, r2.f1;
149
+ ----
150
+ -178956970 years -8 mons 2147483647 days -178956970 years -8 mons -2147483648 days
151
+ 1 year -178956970 years -8 mons -2147483648 days
152
+ 1 year -178956970 years -8 mons 2147483647 days
153
+ 178956970 years 7 mons -2147483648 days -178956970 years -8 mons -2147483648 days
154
+ 178956970 years 7 mons -2147483648 days -178956970 years -8 mons 2147483647 days
155
+ 178956970 years 7 mons -2147483648 days 1 year
156
+ 178956970 years 7 mons 2147483647 days -178956970 years -8 mons -2147483648 days
157
+ 178956970 years 7 mons 2147483647 days -178956970 years -8 mons 2147483647 days
158
+ 178956970 years 7 mons 2147483647 days 1 year
159
+ 178956970 years 7 mons 2147483647 days 178956970 years 7 mons -2147483648 days
160
+
161
+ statement ok
162
+ DROP TABLE INTERVAL_TBL_OF;
0 commit comments