~vcs-imports/mammoth-replicator/trunk

« back to all changes in this revision

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

  • Committer: alvherre
  • Date: 2005-12-16 21:24:52 UTC
  • Revision ID: svn-v4:db760fc0-0f08-0410-9d63-cc6633f64896:trunk:1
Initial import of the REL8_0_3 sources from the Pgsql CVS repository.

Show diffs side-by-side

added added

removed removed

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