Skip to content

Commit 738dc87

Browse files
committed
Here are some patches to fix up the regression tests so that the union
test passes. Interestingly, the fix involves no changes or special cases in the union test and actually removes a special case for the numerology test. Thus, following the strategy outlined below is a definite improvement over the previous situation. Cheers, Brook
1 parent ba0abfd commit 738dc87

File tree

4 files changed

+83
-180
lines changed

4 files changed

+83
-180
lines changed

src/test/regress/expected/float8-NetBSD.out

Lines changed: 33 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,6 @@ QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1004.30');
44
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
55
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e+200');
66
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e-200');
7-
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
8-
ERROR: Bad float8 input format '10e400'
9-
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
10-
ERROR: Bad float8 input format '-10e400'
11-
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
12-
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
137
QUERY: SELECT '' AS five, FLOAT8_TBL.*;
148
five|f1
159
----+--------------------
@@ -18,9 +12,7 @@ five|f1
1812
|-34.84
1913
|1.2345678901234e+200
2014
|1.2345678901234e-200
21-
|0
22-
|0
23-
(7 rows)
15+
(5 rows)
2416

2517
QUERY: SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <> '1004.3';
2618
four|f1
@@ -29,9 +21,7 @@ four|f1
2921
|-34.84
3022
|1.2345678901234e+200
3123
|1.2345678901234e-200
32-
|0
33-
|0
34-
(6 rows)
24+
(4 rows)
3525

3626
QUERY: SELECT '' AS one, f.* FROM FLOAT8_TBL f WHERE f.f1 = '1004.3';
3727
one| f1
@@ -45,19 +35,15 @@ three| f1
4535
| 0
4636
| -34.84
4737
|1.2345678901234e-200
48-
| 0
49-
| 0
50-
(5 rows)
38+
(3 rows)
5139

5240
QUERY: SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE f.f1 < '1004.3';
5341
three| f1
5442
-----+--------------------
5543
| 0
5644
| -34.84
5745
|1.2345678901234e-200
58-
| 0
59-
| 0
60-
(5 rows)
46+
(3 rows)
6147

6248
QUERY: SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE '1004.3' >= f.f1;
6349
four| f1
@@ -66,9 +52,7 @@ four| f1
6652
| 1004.3
6753
| -34.84
6854
|1.2345678901234e-200
69-
| 0
70-
| 0
71-
(6 rows)
55+
(4 rows)
7256

7357
QUERY: SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <= '1004.3';
7458
four| f1
@@ -77,9 +61,7 @@ four| f1
7761
| 1004.3
7862
| -34.84
7963
|1.2345678901234e-200
80-
| 0
81-
| 0
82-
(6 rows)
64+
(4 rows)
8365

8466
QUERY: SELECT '' AS three, f.f1, f.f1 * '-10' AS x
8567
FROM FLOAT8_TBL f
@@ -137,9 +119,7 @@ five|f1 |abs_f1
137119
|-34.84 |34.84
138120
|1.2345678901234e+200|1.2345678901234e+200
139121
|1.2345678901234e-200|1.2345678901234e-200
140-
|0 |0
141-
|0 |0
142-
(7 rows)
122+
(5 rows)
143123

144124
QUERY: SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
145125
FROM FLOAT8_TBL f;
@@ -150,9 +130,7 @@ five|f1 |trunc_f1
150130
|-34.84 |-34
151131
|1.2345678901234e+200|1.2345678901234e+200
152132
|1.2345678901234e-200|0
153-
|0 |0
154-
|0 |0
155-
(7 rows)
133+
(5 rows)
156134

157135
QUERY: SELECT '' AS five, f.f1, f.f1 % AS round_f1
158136
FROM FLOAT8_TBL f;
@@ -163,9 +141,7 @@ five|f1 |round_f1
163141
|-34.84 |-35
164142
|1.2345678901234e+200|1.2345678901234e+200
165143
|1.2345678901234e-200|0
166-
|0 |0
167-
|0 |0
168-
(7 rows)
144+
(5 rows)
169145

170146
QUERY: SELECT '' AS three, f.f1, |/f.f1 AS sqrt_f1
171147
FROM FLOAT8_TBL f
@@ -195,9 +171,7 @@ five|f1 |cbrt_f1
195171
|-34.84 |-3.26607421344208
196172
|1.2345678901234e+200|4.97933859234765e+66
197173
|1.2345678901234e-200|2.3112042409018e-67
198-
|0 |0
199-
|0 |0
200-
(7 rows)
174+
(5 rows)
201175

202176
QUERY: SELECT '' AS five, FLOAT8_TBL.*;
203177
five|f1
@@ -207,9 +181,7 @@ five|f1
207181
|-34.84
208182
|1.2345678901234e+200
209183
|1.2345678901234e-200
210-
|0
211-
|0
212-
(7 rows)
184+
(5 rows)
213185

214186
QUERY: UPDATE FLOAT8_TBL
215187
SET f1 = FLOAT8_TBL.f1 * '-1'
@@ -231,10 +203,30 @@ five|f1
231203
----+---------------------
232204
|0
233205
|-34.84
206+
|-1004.3
207+
|-1.2345678901234e+200
208+
|-1.2345678901234e-200
209+
(5 rows)
210+
211+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
212+
ERROR: Bad float8 input format '10e400'
213+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
214+
ERROR: Bad float8 input format '-10e400'
215+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
216+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
217+
QUERY: DELETE FROM FLOAT8_TBL;
218+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('0.0');
219+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
220+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1004.30');
221+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e+200');
222+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e-200');
223+
QUERY: SELECT '' AS five, FLOAT8_TBL.*;
224+
five|f1
225+
----+---------------------
234226
|0
235-
|0
227+
|-34.84
236228
|-1004.3
237229
|-1.2345678901234e+200
238230
|-1.2345678901234e-200
239-
(7 rows)
231+
(5 rows)
240232

src/test/regress/expected/float8.out

Lines changed: 24 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@ QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1004.30');
44
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
55
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e+200');
66
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e-200');
7-
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
8-
ERROR: Bad float8 input format '10e400'
9-
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
10-
ERROR: Bad float8 input format '-10e400'
11-
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
12-
ERROR: Bad float8 input format '10e-400'
13-
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
14-
ERROR: Bad float8 input format '-10e-400'
157
QUERY: SELECT '' AS five, FLOAT8_TBL.*;
168
five|f1
179
----+--------------------
@@ -224,3 +216,27 @@ five|f1
224216
|-1.2345678901234e-200
225217
(5 rows)
226218

219+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
220+
ERROR: Bad float8 input format '10e400'
221+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
222+
ERROR: Bad float8 input format '-10e400'
223+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
224+
ERROR: Bad float8 input format '10e-400'
225+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
226+
ERROR: Bad float8 input format '-10e-400'
227+
QUERY: DELETE FROM FLOAT8_TBL;
228+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('0.0');
229+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
230+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1004.30');
231+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e+200');
232+
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e-200');
233+
QUERY: SELECT '' AS five, FLOAT8_TBL.*;
234+
five|f1
235+
----+---------------------
236+
|0
237+
|-34.84
238+
|-1004.3
239+
|-1.2345678901234e+200
240+
|-1.2345678901234e-200
241+
(5 rows)
242+
Lines changed: 0 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -1,122 +0,0 @@
1-
QUERY: CREATE TABLE TEMP_FLOAT (f1 FLOAT8);
2-
QUERY: INSERT INTO TEMP_FLOAT (f1)
3-
SELECT float8(f1) FROM INT4_TBL;
4-
QUERY: INSERT INTO TEMP_FLOAT (f1)
5-
SELECT float8(f1) FROM INT2_TBL;
6-
QUERY: SELECT '' AS ten, f1 FROM TEMP_FLOAT
7-
ORDER BY f1;
8-
ten| f1
9-
---+-----------
10-
|-2147483647
11-
| -123456
12-
| -32767
13-
| -1234
14-
| 0
15-
| 0
16-
| 1234
17-
| 32767
18-
| 123456
19-
| 2147483647
20-
(10 rows)
21-
22-
QUERY: CREATE TABLE TEMP_INT4 (f1 INT4);
23-
QUERY: INSERT INTO TEMP_INT4 (f1)
24-
SELECT int4(f1) FROM FLOAT8_TBL
25-
WHERE (f1 > -2147483647) AND (f1 < 2147483647);
26-
QUERY: INSERT INTO TEMP_INT4 (f1)
27-
SELECT int4(f1) FROM INT2_TBL;
28-
QUERY: SELECT '' AS nine, f1 FROM TEMP_INT4
29-
ORDER BY f1;
30-
nine| f1
31-
----+------
32-
|-32767
33-
| -1234
34-
| -1004
35-
| -35
36-
| 0
37-
| 0
38-
| 0
39-
| 0
40-
| 0
41-
| 1234
42-
| 32767
43-
(11 rows)
44-
45-
QUERY: CREATE TABLE TEMP_INT2 (f1 INT2);
46-
QUERY: INSERT INTO TEMP_INT2 (f1)
47-
SELECT int2(f1) FROM FLOAT8_TBL
48-
WHERE (f1 >= -32767) AND (f1 <= 32767);
49-
QUERY: INSERT INTO TEMP_INT2 (f1)
50-
SELECT int2(f1) FROM INT4_TBL
51-
WHERE (f1 >= -32767) AND (f1 <= 32767);
52-
QUERY: SELECT '' AS five, f1 FROM TEMP_INT2
53-
ORDER BY f1;
54-
five| f1
55-
----+-----
56-
|-1004
57-
| -35
58-
| 0
59-
| 0
60-
| 0
61-
| 0
62-
| 0
63-
(7 rows)
64-
65-
QUERY: CREATE TABLE TEMP_GROUP (f1 INT4, f2 INT4, f3 FLOAT8);
66-
QUERY: INSERT INTO TEMP_GROUP
67-
SELECT 1, (- i.f1), (- f.f1)
68-
FROM INT4_TBL i, FLOAT8_TBL f;
69-
QUERY: INSERT INTO TEMP_GROUP
70-
SELECT 2, i.f1, f.f1
71-
FROM INT4_TBL i, FLOAT8_TBL f;
72-
QUERY: SELECT DISTINCT f1 AS two FROM TEMP_GROUP;
73-
two
74-
---
75-
1
76-
2
77-
(2 rows)
78-
79-
QUERY: SELECT f1 AS two, max(f3) AS max_float, min(f3) as min_float
80-
FROM TEMP_GROUP
81-
GROUP BY two
82-
ORDER BY two, max_float, min_float;
83-
two|max_float |min_float
84-
---+--------------------+---------------------
85-
1|1.2345678901234e+200|0
86-
2|0 |-1.2345678901234e+200
87-
(2 rows)
88-
89-
QUERY: SELECT f1 AS two, max(f3) AS max_float, min(f3) AS min_float
90-
FROM TEMP_GROUP
91-
GROUP BY two
92-
ORDER BY two, max_float, min_float;
93-
two|max_float |min_float
94-
---+--------------------+---------------------
95-
1|1.2345678901234e+200|0
96-
2|0 |-1.2345678901234e+200
97-
(2 rows)
98-
99-
QUERY: SELECT f1 AS two, (max(f3) + 1) AS max_plus_1, (min(f3) - 1) AS min_minus_1
100-
FROM TEMP_GROUP
101-
GROUP BY two
102-
ORDER BY two, min_minus_1;
103-
two|max_plus_1 |min_minus_1
104-
---+--------------------+---------------------
105-
1|1.2345678901234e+200|-1
106-
2|1 |-1.2345678901234e+200
107-
(2 rows)
108-
109-
QUERY: SELECT f1 AS two, (max(f3) + 1) AS max_plus_1, (min(f3) - 1) AS min_minus_1
110-
FROM TEMP_GROUP
111-
GROUP BY two
112-
ORDER BY two, min_minus_1;
113-
two|max_plus_1 |min_minus_1
114-
---+--------------------+---------------------
115-
1|1.2345678901234e+200|-1
116-
2|1 |-1.2345678901234e+200
117-
(2 rows)
118-
119-
QUERY: DROP TABLE TEMP_INT2;
120-
QUERY: DROP TABLE TEMP_INT4;
121-
QUERY: DROP TABLE TEMP_FLOAT;
122-
QUERY: DROP TABLE TEMP_GROUP;

src/test/regress/sql/float8.sql

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,6 @@ INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e+200');
1212

1313
INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e-200');
1414

15-
-- test for over and under flow
16-
INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
17-
18-
INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
19-
20-
INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
21-
22-
INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
23-
2415

2516
SELECT '' AS five, FLOAT8_TBL.*;
2617

@@ -101,3 +92,29 @@ SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f;
10192

10293
SELECT '' AS five, FLOAT8_TBL.*;
10394

95+
-- test for over and under flow
96+
INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
97+
98+
INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
99+
100+
INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
101+
102+
INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
103+
104+
-- maintain external table consistency across platforms
105+
-- delete all values and reinsert well-behaved ones
106+
107+
DELETE FROM FLOAT8_TBL;
108+
109+
INSERT INTO FLOAT8_TBL(f1) VALUES ('0.0');
110+
111+
INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
112+
113+
INSERT INTO FLOAT8_TBL(f1) VALUES ('-1004.30');
114+
115+
INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e+200');
116+
117+
INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e-200');
118+
119+
SELECT '' AS five, FLOAT8_TBL.*;
120+

0 commit comments

Comments
 (0)