Fix pg_dump bug in the database-level collation patch. "datcollate" and
[PostgreSQL.git] / src / test / regress / sql / float4.sql
blob5944e2fc14902ba5bb7fb2f678a5acfc6392f39e
1 --
2 -- FLOAT4
3 --
5 CREATE TABLE FLOAT4_TBL (f1  float4);
7 INSERT INTO FLOAT4_TBL(f1) VALUES ('    0.0');
8 INSERT INTO FLOAT4_TBL(f1) VALUES ('1004.30   ');
9 INSERT INTO FLOAT4_TBL(f1) VALUES ('     -34.84    ');
10 INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e+20');
11 INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e-20');
13 -- test for over and under flow 
14 INSERT INTO FLOAT4_TBL(f1) VALUES ('10e70');
15 INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e70');
16 INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-70');
17 INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-70');
19 -- bad input
20 INSERT INTO FLOAT4_TBL(f1) VALUES ('');
21 INSERT INTO FLOAT4_TBL(f1) VALUES ('       ');
22 INSERT INTO FLOAT4_TBL(f1) VALUES ('xyz');
23 INSERT INTO FLOAT4_TBL(f1) VALUES ('5.0.0');
24 INSERT INTO FLOAT4_TBL(f1) VALUES ('5 . 0');
25 INSERT INTO FLOAT4_TBL(f1) VALUES ('5.   0');
26 INSERT INTO FLOAT4_TBL(f1) VALUES ('     - 3.0');
27 INSERT INTO FLOAT4_TBL(f1) VALUES ('123            5');
29 -- special inputs
30 SELECT 'NaN'::float4;
31 SELECT 'nan'::float4;
32 SELECT '   NAN  '::float4;
33 SELECT 'infinity'::float4;
34 SELECT '          -INFINiTY   '::float4;
35 -- bad special inputs
36 SELECT 'N A N'::float4;
37 SELECT 'NaN x'::float4;
38 SELECT ' INFINITY    x'::float4;
40 SELECT 'Infinity'::float4 + 100.0;
41 SELECT 'Infinity'::float4 / 'Infinity'::float4;
42 SELECT 'nan'::float4 / 'nan'::float4;
45 SELECT '' AS five, * FROM FLOAT4_TBL;
47 SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
49 SELECT '' AS one, f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
51 SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
53 SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE  f.f1 < '1004.3';
55 SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
57 SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE  f.f1 <= '1004.3';
59 SELECT '' AS three, f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
60    WHERE f.f1 > '0.0';
62 SELECT '' AS three, f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
63    WHERE f.f1 > '0.0';
65 SELECT '' AS three, f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
66    WHERE f.f1 > '0.0';
68 SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
69    WHERE f.f1 > '0.0';
71 -- test divide by zero
72 SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
74 SELECT '' AS five, * FROM FLOAT4_TBL;
76 -- test the unary float4abs operator 
77 SELECT '' AS five, f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
79 UPDATE FLOAT4_TBL
80    SET f1 = FLOAT4_TBL.f1 * '-1'
81    WHERE FLOAT4_TBL.f1 > '0.0';
83 SELECT '' AS five, * FROM FLOAT4_TBL;