]> granicus.if.org Git - postgresql/blob - src/test/regress/expected/float4.out
Teach the system how to use hashing for UNION. (INTERSECT/EXCEPT will follow,
[postgresql] / src / test / regress / expected / float4.out
1 --
2 -- FLOAT4
3 --
4 CREATE TABLE FLOAT4_TBL (f1  float4);
5 INSERT INTO FLOAT4_TBL(f1) VALUES ('    0.0');
6 INSERT INTO FLOAT4_TBL(f1) VALUES ('1004.30   ');
7 INSERT INTO FLOAT4_TBL(f1) VALUES ('     -34.84    ');
8 INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e+20');
9 INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e-20');
10 -- test for over and under flow 
11 INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70');
12 ERROR:  value out of range: overflow
13 INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70');
14 ERROR:  value out of range: overflow
15 INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70');
16 ERROR:  value out of range: underflow
17 INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70');
18 ERROR:  value out of range: underflow
19 -- bad input
20 INSERT INTO FLOAT4_TBL(f1) VALUES ('');
21 ERROR:  invalid input syntax for type real: ""
22 INSERT INTO FLOAT4_TBL(f1) VALUES ('       ');
23 ERROR:  invalid input syntax for type real: "       "
24 INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz');
25 ERROR:  invalid input syntax for type real: "xyz"
26 INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0');
27 ERROR:  invalid input syntax for type real: "5.0.0"
28 INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0');
29 ERROR:  invalid input syntax for type real: "5 . 0"
30 INSERT INTO FLOAT4_TBL(f1) VALUES ('5.   0');
31 ERROR:  invalid input syntax for type real: "5.   0"
32 INSERT INTO FLOAT4_TBL(f1) VALUES ('     - 3.0');
33 ERROR:  invalid input syntax for type real: "     - 3.0"
34 INSERT INTO FLOAT4_TBL(f1) VALUES ('123            5');
35 ERROR:  invalid input syntax for type real: "123            5"
36 -- special inputs
37 SELECT 'NaN'::float4;
38  float4 
39 --------
40     NaN
41 (1 row)
42
43 SELECT 'nan'::float4;
44  float4 
45 --------
46     NaN
47 (1 row)
48
49 SELECT '   NAN  '::float4;
50  float4 
51 --------
52     NaN
53 (1 row)
54
55 SELECT 'infinity'::float4;
56   float4  
57 ----------
58  Infinity
59 (1 row)
60
61 SELECT '          -INFINiTY   '::float4;
62   float4   
63 -----------
64  -Infinity
65 (1 row)
66
67 -- bad special inputs
68 SELECT 'N A N'::float4;
69 ERROR:  invalid input syntax for type real: "N A N"
70 SELECT 'NaN x'::float4;
71 ERROR:  invalid input syntax for type real: "NaN x"
72 SELECT ' INFINITY    x'::float4;
73 ERROR:  invalid input syntax for type real: " INFINITY    x"
74 SELECT 'Infinity'::float4 + 100.0;
75  ?column? 
76 ----------
77  Infinity
78 (1 row)
79
80 SELECT 'Infinity'::float4 / 'Infinity'::float4;
81  ?column? 
82 ----------
83       NaN
84 (1 row)
85
86 SELECT 'nan'::float4 / 'nan'::float4;
87  ?column? 
88 ----------
89       NaN
90 (1 row)
91
92 SELECT '' AS five, * FROM FLOAT4_TBL;
93  five |     f1      
94 ------+-------------
95       |           0
96       |      1004.3
97       |      -34.84
98       | 1.23457e+20
99       | 1.23457e-20
100 (5 rows)
101
102 SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
103  four |     f1      
104 ------+-------------
105       |           0
106       |      -34.84
107       | 1.23457e+20
108       | 1.23457e-20
109 (4 rows)
110
111 SELECT '' AS one, f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
112  one |   f1   
113 -----+--------
114      | 1004.3
115 (1 row)
116
117 SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
118  three |     f1      
119 -------+-------------
120        |           0
121        |      -34.84
122        | 1.23457e-20
123 (3 rows)
124
125 SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE  f.f1 < '1004.3';
126  three |     f1      
127 -------+-------------
128        |           0
129        |      -34.84
130        | 1.23457e-20
131 (3 rows)
132
133 SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
134  four |     f1      
135 ------+-------------
136       |           0
137       |      1004.3
138       |      -34.84
139       | 1.23457e-20
140 (4 rows)
141
142 SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE  f.f1 <= '1004.3';
143  four |     f1      
144 ------+-------------
145       |           0
146       |      1004.3
147       |      -34.84
148       | 1.23457e-20
149 (4 rows)
150
151 SELECT '' AS three, f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
152    WHERE f.f1 > '0.0';
153  three |     f1      |      x       
154 -------+-------------+--------------
155        |      1004.3 |       -10043
156        | 1.23457e+20 | -1.23457e+21
157        | 1.23457e-20 | -1.23457e-19
158 (3 rows)
159
160 SELECT '' AS three, f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
161    WHERE f.f1 > '0.0';
162  three |     f1      |      x      
163 -------+-------------+-------------
164        |      1004.3 |       994.3
165        | 1.23457e+20 | 1.23457e+20
166        | 1.23457e-20 |         -10
167 (3 rows)
168
169 SELECT '' AS three, f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
170    WHERE f.f1 > '0.0';
171  three |     f1      |      x       
172 -------+-------------+--------------
173        |      1004.3 |      -100.43
174        | 1.23457e+20 | -1.23457e+19
175        | 1.23457e-20 | -1.23457e-21
176 (3 rows)
177
178 SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
179    WHERE f.f1 > '0.0';
180  three |     f1      |      x      
181 -------+-------------+-------------
182        |      1004.3 |      1014.3
183        | 1.23457e+20 | 1.23457e+20
184        | 1.23457e-20 |          10
185 (3 rows)
186
187 -- test divide by zero
188 SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
189 ERROR:  division by zero
190 SELECT '' AS five, * FROM FLOAT4_TBL;
191  five |     f1      
192 ------+-------------
193       |           0
194       |      1004.3
195       |      -34.84
196       | 1.23457e+20
197       | 1.23457e-20
198 (5 rows)
199
200 -- test the unary float4abs operator 
201 SELECT '' AS five, f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
202  five |     f1      |   abs_f1    
203 ------+-------------+-------------
204       |           0 |           0
205       |      1004.3 |      1004.3
206       |      -34.84 |       34.84
207       | 1.23457e+20 | 1.23457e+20
208       | 1.23457e-20 | 1.23457e-20
209 (5 rows)
210
211 UPDATE FLOAT4_TBL
212    SET f1 = FLOAT4_TBL.f1 * '-1'
213    WHERE FLOAT4_TBL.f1 > '0.0';
214 SELECT '' AS five, * FROM FLOAT4_TBL;
215  five |      f1      
216 ------+--------------
217       |            0
218       |       -34.84
219       |      -1004.3
220       | -1.23457e+20
221       | -1.23457e-20
222 (5 rows)
223