Fix obsolete comment regarding FSM truncation.
[PostgreSQL.git] / src / test / regress / expected / float4.out
blob2c19e7eb086d02b83ac1b7d1b79afe8f6a9b802d
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 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70');
14                                            ^
15 INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70');
16 ERROR:  value out of range: overflow
17 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70');
18                                            ^
19 INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70');
20 ERROR:  value out of range: underflow
21 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70');
22                                            ^
23 INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70');
24 ERROR:  value out of range: underflow
25 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70');
26                                            ^
27 -- bad input
28 INSERT INTO FLOAT4_TBL(f1) VALUES ('');
29 ERROR:  invalid input syntax for type real: ""
30 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('');
31                                            ^
32 INSERT INTO FLOAT4_TBL(f1) VALUES ('       ');
33 ERROR:  invalid input syntax for type real: "       "
34 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('       ');
35                                            ^
36 INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz');
37 ERROR:  invalid input syntax for type real: "xyz"
38 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz');
39                                            ^
40 INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0');
41 ERROR:  invalid input syntax for type real: "5.0.0"
42 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0');
43                                            ^
44 INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0');
45 ERROR:  invalid input syntax for type real: "5 . 0"
46 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0');
47                                            ^
48 INSERT INTO FLOAT4_TBL(f1) VALUES ('5.   0');
49 ERROR:  invalid input syntax for type real: "5.   0"
50 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('5.   0');
51                                            ^
52 INSERT INTO FLOAT4_TBL(f1) VALUES ('     - 3.0');
53 ERROR:  invalid input syntax for type real: "     - 3.0"
54 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('     - 3.0');
55                                            ^
56 INSERT INTO FLOAT4_TBL(f1) VALUES ('123            5');
57 ERROR:  invalid input syntax for type real: "123            5"
58 LINE 1: INSERT INTO FLOAT4_TBL(f1) VALUES ('123            5');
59                                            ^
60 -- special inputs
61 SELECT 'NaN'::float4;
62  float4 
63 --------
64     NaN
65 (1 row)
67 SELECT 'nan'::float4;
68  float4 
69 --------
70     NaN
71 (1 row)
73 SELECT '   NAN  '::float4;
74  float4 
75 --------
76     NaN
77 (1 row)
79 SELECT 'infinity'::float4;
80   float4  
81 ----------
82  Infinity
83 (1 row)
85 SELECT '          -INFINiTY   '::float4;
86   float4   
87 -----------
88  -Infinity
89 (1 row)
91 -- bad special inputs
92 SELECT 'N A N'::float4;
93 ERROR:  invalid input syntax for type real: "N A N"
94 LINE 1: SELECT 'N A N'::float4;
95                ^
96 SELECT 'NaN x'::float4;
97 ERROR:  invalid input syntax for type real: "NaN x"
98 LINE 1: SELECT 'NaN x'::float4;
99                ^
100 SELECT ' INFINITY    x'::float4;
101 ERROR:  invalid input syntax for type real: " INFINITY    x"
102 LINE 1: SELECT ' INFINITY    x'::float4;
103                ^
104 SELECT 'Infinity'::float4 + 100.0;
105  ?column? 
106 ----------
107  Infinity
108 (1 row)
110 SELECT 'Infinity'::float4 / 'Infinity'::float4;
111  ?column? 
112 ----------
113       NaN
114 (1 row)
116 SELECT 'nan'::float4 / 'nan'::float4;
117  ?column? 
118 ----------
119       NaN
120 (1 row)
122 SELECT '' AS five, * FROM FLOAT4_TBL;
123  five |     f1      
124 ------+-------------
125       |           0
126       |      1004.3
127       |      -34.84
128       | 1.23457e+20
129       | 1.23457e-20
130 (5 rows)
132 SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
133  four |     f1      
134 ------+-------------
135       |           0
136       |      -34.84
137       | 1.23457e+20
138       | 1.23457e-20
139 (4 rows)
141 SELECT '' AS one, f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
142  one |   f1   
143 -----+--------
144      | 1004.3
145 (1 row)
147 SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
148  three |     f1      
149 -------+-------------
150        |           0
151        |      -34.84
152        | 1.23457e-20
153 (3 rows)
155 SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE  f.f1 < '1004.3';
156  three |     f1      
157 -------+-------------
158        |           0
159        |      -34.84
160        | 1.23457e-20
161 (3 rows)
163 SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
164  four |     f1      
165 ------+-------------
166       |           0
167       |      1004.3
168       |      -34.84
169       | 1.23457e-20
170 (4 rows)
172 SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE  f.f1 <= '1004.3';
173  four |     f1      
174 ------+-------------
175       |           0
176       |      1004.3
177       |      -34.84
178       | 1.23457e-20
179 (4 rows)
181 SELECT '' AS three, f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
182    WHERE f.f1 > '0.0';
183  three |     f1      |      x       
184 -------+-------------+--------------
185        |      1004.3 |       -10043
186        | 1.23457e+20 | -1.23457e+21
187        | 1.23457e-20 | -1.23457e-19
188 (3 rows)
190 SELECT '' AS three, f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
191    WHERE f.f1 > '0.0';
192  three |     f1      |      x      
193 -------+-------------+-------------
194        |      1004.3 |       994.3
195        | 1.23457e+20 | 1.23457e+20
196        | 1.23457e-20 |         -10
197 (3 rows)
199 SELECT '' AS three, f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
200    WHERE f.f1 > '0.0';
201  three |     f1      |      x       
202 -------+-------------+--------------
203        |      1004.3 |      -100.43
204        | 1.23457e+20 | -1.23457e+19
205        | 1.23457e-20 | -1.23457e-21
206 (3 rows)
208 SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
209    WHERE f.f1 > '0.0';
210  three |     f1      |      x      
211 -------+-------------+-------------
212        |      1004.3 |      1014.3
213        | 1.23457e+20 | 1.23457e+20
214        | 1.23457e-20 |          10
215 (3 rows)
217 -- test divide by zero
218 SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
219 ERROR:  division by zero
220 SELECT '' AS five, * FROM FLOAT4_TBL;
221  five |     f1      
222 ------+-------------
223       |           0
224       |      1004.3
225       |      -34.84
226       | 1.23457e+20
227       | 1.23457e-20
228 (5 rows)
230 -- test the unary float4abs operator 
231 SELECT '' AS five, f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
232  five |     f1      |   abs_f1    
233 ------+-------------+-------------
234       |           0 |           0
235       |      1004.3 |      1004.3
236       |      -34.84 |       34.84
237       | 1.23457e+20 | 1.23457e+20
238       | 1.23457e-20 | 1.23457e-20
239 (5 rows)
241 UPDATE FLOAT4_TBL
242    SET f1 = FLOAT4_TBL.f1 * '-1'
243    WHERE FLOAT4_TBL.f1 > '0.0';
244 SELECT '' AS five, * FROM FLOAT4_TBL;
245  five |      f1      
246 ------+--------------
247       |            0
248       |       -34.84
249       |      -1004.3
250       | -1.23457e+20
251       | -1.23457e-20
252 (5 rows)