~ubuntu-branches/ubuntu/hardy/postgresql-8.4/hardy-backports

« back to all changes in this revision

Viewing changes to src/test/regress/expected/tinterval.out

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2009-03-20 12:00:13 UTC
  • Revision ID: james.westby@ubuntu.com-20090320120013-hogj7egc5mjncc5g
Tags: upstream-8.4~0cvs20090328
ImportĀ upstreamĀ versionĀ 8.4~0cvs20090328

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
--
 
2
-- TINTERVAL
 
3
--
 
4
CREATE TABLE TINTERVAL_TBL (f1  tinterval);
 
5
-- Should accept any abstime,
 
6
-- so do not bother with extensive testing of values
 
7
INSERT INTO TINTERVAL_TBL (f1)
 
8
   VALUES ('["-infinity" "infinity"]');
 
9
INSERT INTO TINTERVAL_TBL (f1)
 
10
   VALUES ('["May 10, 1947 23:59:12" "Jan 14, 1973 03:14:21"]');
 
11
INSERT INTO TINTERVAL_TBL (f1)
 
12
   VALUES ('["Sep 4, 1983 23:59:12" "Oct 4, 1983 23:59:12"]');
 
13
INSERT INTO TINTERVAL_TBL (f1)
 
14
   VALUES ('["epoch" "Mon May  1 00:30:30 1995"]');
 
15
INSERT INTO TINTERVAL_TBL (f1)
 
16
   VALUES ('["Feb 15 1990 12:15:03" "2001-09-23 11:12:13"]');
 
17
-- badly formatted tintervals 
 
18
INSERT INTO TINTERVAL_TBL (f1)
 
19
   VALUES ('["bad time specifications" ""]');
 
20
ERROR:  invalid input syntax for type abstime: "bad time specifications"
 
21
LINE 2:    VALUES ('["bad time specifications" ""]');
 
22
                   ^
 
23
INSERT INTO TINTERVAL_TBL (f1)
 
24
   VALUES ('["" "infinity"]');
 
25
ERROR:  invalid input syntax for type abstime: ""
 
26
LINE 2:    VALUES ('["" "infinity"]');
 
27
                   ^
 
28
-- test tinterval operators
 
29
SELECT '' AS five, * FROM TINTERVAL_TBL;
 
30
 five |                               f1                                
 
31
------+-----------------------------------------------------------------
 
32
      | ["-infinity" "infinity"]
 
33
      | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
 
34
      | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
 
35
      | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
36
      | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
 
37
(5 rows)
 
38
 
 
39
-- length ==
 
40
SELECT '' AS one, t.*
 
41
   FROM TINTERVAL_TBL t
 
42
   WHERE t.f1 #= '@ 1 months';
 
43
 one |                               f1                                
 
44
-----+-----------------------------------------------------------------
 
45
     | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
 
46
(1 row)
 
47
 
 
48
-- length <>
 
49
SELECT '' AS three, t.*
 
50
   FROM TINTERVAL_TBL t
 
51
   WHERE t.f1 #<> '@ 1 months';
 
52
 three |                               f1                                
 
53
-------+-----------------------------------------------------------------
 
54
       | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
 
55
       | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
56
       | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
 
57
(3 rows)
 
58
 
 
59
-- length <
 
60
SELECT '' AS zero, t.*
 
61
   FROM TINTERVAL_TBL t
 
62
   WHERE t.f1 #< '@ 1 month';
 
63
 zero | f1 
 
64
------+----
 
65
(0 rows)
 
66
 
 
67
-- length <=
 
68
SELECT '' AS one, t.*
 
69
   FROM TINTERVAL_TBL t
 
70
   WHERE t.f1 #<= '@ 1 month';
 
71
 one |                               f1                                
 
72
-----+-----------------------------------------------------------------
 
73
     | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
 
74
(1 row)
 
75
 
 
76
-- length >
 
77
SELECT '' AS three, t.*
 
78
   FROM TINTERVAL_TBL t
 
79
   WHERE t.f1 #> '@ 1 year';
 
80
 three |                               f1                                
 
81
-------+-----------------------------------------------------------------
 
82
       | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
 
83
       | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
84
       | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
 
85
(3 rows)
 
86
 
 
87
-- length >=
 
88
SELECT '' AS three, t.*
 
89
   FROM TINTERVAL_TBL t
 
90
   WHERE t.f1 #>= '@ 3 years';
 
91
 three |                               f1                                
 
92
-------+-----------------------------------------------------------------
 
93
       | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
 
94
       | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
95
       | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
 
96
(3 rows)
 
97
 
 
98
-- overlaps
 
99
SELECT '' AS three, t1.*
 
100
   FROM TINTERVAL_TBL t1
 
101
   WHERE t1.f1 &&
 
102
        tinterval '["Aug 15 14:23:19 1983" "Sep 16 14:23:19 1983"]';
 
103
 three |                               f1                                
 
104
-------+-----------------------------------------------------------------
 
105
       | ["-infinity" "infinity"]
 
106
       | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
 
107
       | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
108
(3 rows)
 
109
 
 
110
SELECT '' AS five, t1.f1, t2.f1
 
111
   FROM TINTERVAL_TBL t1, TINTERVAL_TBL t2
 
112
   WHERE t1.f1 && t2.f1 and
 
113
         t1.f1 = t2.f1
 
114
   ORDER BY t1.f1, t2.f1;
 
115
 five |                               f1                                |                               f1                                
 
116
------+-----------------------------------------------------------------+-----------------------------------------------------------------
 
117
      | ["-infinity" "infinity"]                                        | ["-infinity" "infinity"]
 
118
      | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
 
119
      | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
 
120
      | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
121
      | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
 
122
(5 rows)
 
123
 
 
124
SELECT '' AS fourteen, t1.f1 AS interval1, t2.f1 AS interval2
 
125
   FROM TINTERVAL_TBL t1, TINTERVAL_TBL t2
 
126
   WHERE t1.f1 && t2.f1 and not t1.f1 = t2.f1
 
127
   ORDER BY interval1, interval2;
 
128
 fourteen |                            interval1                            |                            interval2                            
 
129
----------+-----------------------------------------------------------------+-----------------------------------------------------------------
 
130
          | ["-infinity" "infinity"]                                        | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
 
131
          | ["-infinity" "infinity"]                                        | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
 
132
          | ["-infinity" "infinity"]                                        | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
133
          | ["-infinity" "infinity"]                                        | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
 
134
          | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["-infinity" "infinity"]
 
135
          | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
136
          | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"] | ["-infinity" "infinity"]
 
137
          | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
138
          | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | ["-infinity" "infinity"]
 
139
          | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
 
140
          | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
 
141
          | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"] | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
 
142
          | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["-infinity" "infinity"]
 
143
          | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"] | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
144
(14 rows)
 
145
 
 
146
-- contains
 
147
SELECT '' AS five, t1.f1
 
148
   FROM TINTERVAL_TBL t1
 
149
   WHERE not t1.f1 << 
 
150
        tinterval '["Aug 15 14:23:19 1980" "Sep 16 14:23:19 1990"]'
 
151
   ORDER BY t1.f1;
 
152
 five |                               f1                                
 
153
------+-----------------------------------------------------------------
 
154
      | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
 
155
      | ["Thu Feb 15 12:15:03 1990 PST" "Sun Sep 23 11:12:13 2001 PDT"]
 
156
      | ["Sat May 10 23:59:12 1947 PST" "Sun Jan 14 03:14:21 1973 PST"]
 
157
(3 rows)
 
158
 
 
159
-- make time interval
 
160
SELECT '' AS three, t1.f1
 
161
   FROM TINTERVAL_TBL t1
 
162
   WHERE t1.f1 &&
 
163
        (abstime 'Aug 15 14:23:19 1983' <#>
 
164
         abstime 'Sep 16 14:23:19 1983')
 
165
   ORDER BY t1.f1;
 
166
 three |                               f1                                
 
167
-------+-----------------------------------------------------------------
 
168
       | ["-infinity" "infinity"]
 
169
       | ["Sun Sep 04 23:59:12 1983 PDT" "Tue Oct 04 23:59:12 1983 PDT"]
 
170
       | ["Wed Dec 31 16:00:00 1969 PST" "Mon May 01 00:30:30 1995 PDT"]
 
171
(3 rows)
 
172