Fix obsolete comment regarding FSM truncation.
[PostgreSQL.git] / src / test / regress / expected / int4.out
bloba21bbda2c9fc633656c292745d6418b2991cbd7c
1 --
2 -- INT4
3 -- WARNING: int4 operators never check for over/underflow!
4 -- Some of these answers are consequently numerically incorrect.
5 --
6 CREATE TABLE INT4_TBL(f1 int4);
7 INSERT INTO INT4_TBL(f1) VALUES ('   0  ');
8 INSERT INTO INT4_TBL(f1) VALUES ('123456     ');
9 INSERT INTO INT4_TBL(f1) VALUES ('    -123456');
10 INSERT INTO INT4_TBL(f1) VALUES ('34.5');
11 ERROR:  invalid input syntax for integer: "34.5"
12 LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('34.5');
13                                          ^
14 -- largest and smallest values
15 INSERT INTO INT4_TBL(f1) VALUES ('2147483647');
16 INSERT INTO INT4_TBL(f1) VALUES ('-2147483647');
17 -- bad input values -- should give errors
18 INSERT INTO INT4_TBL(f1) VALUES ('1000000000000');
19 ERROR:  value "1000000000000" is out of range for type integer
20 LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('1000000000000');
21                                          ^
22 INSERT INTO INT4_TBL(f1) VALUES ('asdf');
23 ERROR:  invalid input syntax for integer: "asdf"
24 LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('asdf');
25                                          ^
26 INSERT INTO INT4_TBL(f1) VALUES ('     ');
27 ERROR:  invalid input syntax for integer: "     "
28 LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('     ');
29                                          ^
30 INSERT INTO INT4_TBL(f1) VALUES ('   asdf   ');
31 ERROR:  invalid input syntax for integer: "   asdf   "
32 LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('   asdf   ');
33                                          ^
34 INSERT INTO INT4_TBL(f1) VALUES ('- 1234');
35 ERROR:  invalid input syntax for integer: "- 1234"
36 LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('- 1234');
37                                          ^
38 INSERT INTO INT4_TBL(f1) VALUES ('123       5');
39 ERROR:  invalid input syntax for integer: "123       5"
40 LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('123       5');
41                                          ^
42 INSERT INTO INT4_TBL(f1) VALUES ('');
43 ERROR:  invalid input syntax for integer: ""
44 LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('');
45                                          ^
46 SELECT '' AS five, * FROM INT4_TBL;
47  five |     f1      
48 ------+-------------
49       |           0
50       |      123456
51       |     -123456
52       |  2147483647
53       | -2147483647
54 (5 rows)
56 SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int2 '0';
57  four |     f1      
58 ------+-------------
59       |      123456
60       |     -123456
61       |  2147483647
62       | -2147483647
63 (4 rows)
65 SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int4 '0';
66  four |     f1      
67 ------+-------------
68       |      123456
69       |     -123456
70       |  2147483647
71       | -2147483647
72 (4 rows)
74 SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int2 '0';
75  one | f1 
76 -----+----
77      |  0
78 (1 row)
80 SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int4 '0';
81  one | f1 
82 -----+----
83      |  0
84 (1 row)
86 SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int2 '0';
87  two |     f1      
88 -----+-------------
89      |     -123456
90      | -2147483647
91 (2 rows)
93 SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int4 '0';
94  two |     f1      
95 -----+-------------
96      |     -123456
97      | -2147483647
98 (2 rows)
100 SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int2 '0';
101  three |     f1      
102 -------+-------------
103        |           0
104        |     -123456
105        | -2147483647
106 (3 rows)
108 SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int4 '0';
109  three |     f1      
110 -------+-------------
111        |           0
112        |     -123456
113        | -2147483647
114 (3 rows)
116 SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int2 '0';
117  two |     f1     
118 -----+------------
119      |     123456
120      | 2147483647
121 (2 rows)
123 SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int4 '0';
124  two |     f1     
125 -----+------------
126      |     123456
127      | 2147483647
128 (2 rows)
130 SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int2 '0';
131  three |     f1     
132 -------+------------
133        |          0
134        |     123456
135        | 2147483647
136 (3 rows)
138 SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int4 '0';
139  three |     f1     
140 -------+------------
141        |          0
142        |     123456
143        | 2147483647
144 (3 rows)
146 -- positive odds
147 SELECT '' AS one, i.* FROM INT4_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
148  one |     f1     
149 -----+------------
150      | 2147483647
151 (1 row)
153 -- any evens
154 SELECT '' AS three, i.* FROM INT4_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
155  three |   f1    
156 -------+---------
157        |       0
158        |  123456
159        | -123456
160 (3 rows)
162 SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i;
163 ERROR:  integer out of range
164 SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i
165 WHERE abs(f1) < 1073741824;
166  five |   f1    |    x    
167 ------+---------+---------
168       |       0 |       0
169       |  123456 |  246912
170       | -123456 | -246912
171 (3 rows)
173 SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i;
174 ERROR:  integer out of range
175 SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i
176 WHERE abs(f1) < 1073741824;
177  five |   f1    |    x    
178 ------+---------+---------
179       |       0 |       0
180       |  123456 |  246912
181       | -123456 | -246912
182 (3 rows)
184 SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i;
185 ERROR:  integer out of range
186 SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i
187 WHERE f1 < 2147483646;
188  five |     f1      |      x      
189 ------+-------------+-------------
190       |           0 |           2
191       |      123456 |      123458
192       |     -123456 |     -123454
193       | -2147483647 | -2147483645
194 (4 rows)
196 SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i;
197 ERROR:  integer out of range
198 SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i
199 WHERE f1 < 2147483646;
200  five |     f1      |      x      
201 ------+-------------+-------------
202       |           0 |           2
203       |      123456 |      123458
204       |     -123456 |     -123454
205       | -2147483647 | -2147483645
206 (4 rows)
208 SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i;
209 ERROR:  integer out of range
210 SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i
211 WHERE f1 > -2147483647;
212  five |     f1     |     x      
213 ------+------------+------------
214       |          0 |         -2
215       |     123456 |     123454
216       |    -123456 |    -123458
217       | 2147483647 | 2147483645
218 (4 rows)
220 SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i;
221 ERROR:  integer out of range
222 SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i
223 WHERE f1 > -2147483647;
224  five |     f1     |     x      
225 ------+------------+------------
226       |          0 |         -2
227       |     123456 |     123454
228       |    -123456 |    -123458
229       | 2147483647 | 2147483645
230 (4 rows)
232 SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT4_TBL i;
233  five |     f1      |      x      
234 ------+-------------+-------------
235       |           0 |           0
236       |      123456 |       61728
237       |     -123456 |      -61728
238       |  2147483647 |  1073741823
239       | -2147483647 | -1073741823
240 (5 rows)
242 SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT4_TBL i;
243  five |     f1      |      x      
244 ------+-------------+-------------
245       |           0 |           0
246       |      123456 |       61728
247       |     -123456 |      -61728
248       |  2147483647 |  1073741823
249       | -2147483647 | -1073741823
250 (5 rows)
253 -- more complex expressions
255 -- variations on unary minus parsing
256 SELECT -2+3 AS one;
257  one 
258 -----
259    1
260 (1 row)
262 SELECT 4-2 AS two;
263  two 
264 -----
265    2
266 (1 row)
268 SELECT 2- -1 AS three;
269  three 
270 -------
271      3
272 (1 row)
274 SELECT 2 - -2 AS four;
275  four 
276 ------
277     4
278 (1 row)
280 SELECT int2 '2' * int2 '2' = int2 '16' / int2 '4' AS true;
281  true 
282 ------
284 (1 row)
286 SELECT int4 '2' * int2 '2' = int2 '16' / int4 '4' AS true;
287  true 
288 ------
290 (1 row)
292 SELECT int2 '2' * int4 '2' = int4 '16' / int2 '4' AS true;
293  true 
294 ------
296 (1 row)
298 SELECT int4 '1000' < int4 '999' AS false;
299  false 
300 -------
302 (1 row)
304 SELECT 4! AS twenty_four;
305  twenty_four 
306 -------------
307           24
308 (1 row)
310 SELECT !!3 AS six;
311  six 
312 -----
313    6
314 (1 row)
316 SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
317  ten 
318 -----
319   10
320 (1 row)
322 SELECT 2 + 2 / 2 AS three;
323  three 
324 -------
325      3
326 (1 row)
328 SELECT (2 + 2) / 2 AS two;
329  two 
330 -----
331    2
332 (1 row)