aboutsummaryrefslogtreecommitdiff
path: root/src/test/suite/float.sql
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/suite/float.sql')
-rw-r--r--src/test/suite/float.sql113
1 files changed, 113 insertions, 0 deletions
diff --git a/src/test/suite/float.sql b/src/test/suite/float.sql
new file mode 100644
index 00000000000..060a0fbcb89
--- /dev/null
+++ b/src/test/suite/float.sql
@@ -0,0 +1,113 @@
+---------------------------------------------------------------------------
+--
+-- float.sql-
+-- test float4, float8 adt
+--
+--
+-- Copyright (c) 1994-5, Regents of the University of California
+--
+-- $Id: float.sql,v 1.1.1.1 1996/07/09 06:22:30 scrappy Exp $
+--
+---------------------------------------------------------------------------
+
+--
+-- float4
+--
+create table fl (x float4);
+insert into fl values ( 3.14 );
+insert into fl values ( 147.0 );
+insert into fl values ( 3.14 );
+insert into fl values ( -3.14 );
+select * from fl;
+-- float literals
+select * from fl where x = 3.14;
+select * from fl where x <> 3.14;
+select * from fl where x < 3.14;
+select * from fl where x <= 3.14;
+select * from fl where x > 3.14;
+select * from fl where x >= 3.14;
+-- adt constant without cast (test coercion)
+select * from fl where x = '3.14';
+select * from fl where x <> '3.14';
+select * from fl where x < '3.14';
+select * from fl where x <= '3.14';
+select * from fl where x > '3.14';
+select * from fl where x >= '3.14';
+-- adt constant with float4 cast (test float4 opers)
+select * from fl where x = '3.14'::float4;
+select * from fl where x <> '3.14'::float4;
+select * from fl where x < '3.14'::float4;
+select * from fl where x <= '3.14'::float4;
+select * from fl where x > '3.14'::float4;
+select * from fl where x >= '3.14'::float4;
+-- adt constant with float8 cast (test float48 opers)
+select * from fl where x = '3.14'::float8;
+select * from fl where x <> '3.14'::float8;
+select * from fl where x < '3.14'::float8;
+select * from fl where x <= '3.14'::float8;
+select * from fl where x > '3.14'::float8;
+select * from fl where x >= '3.14'::float8;
+
+-- try other operators
+update fl set x = x + 2.2;
+select * from fl;
+update fl set x = x - 2.2;
+select * from fl;
+update fl set x = x * 2.2;
+select * from fl;
+update fl set x = x / 2.2;
+select * from fl;
+
+--
+-- float8
+--
+create table fl8 (y float8);
+insert into fl8 values ( '3.14'::float8 );
+insert into fl8 values ( '147.0'::float8 );
+insert into fl8 values ( '3.140000001'::float8 );
+insert into fl8 values ( '-3.14'::float8);
+select * from fl8;
+-- float literals
+select * from fl8 where y = 3.14;
+select * from fl8 where y <> 3.14;
+select * from fl8 where y < 3.14;
+select * from fl8 where y <= 3.14;
+select * from fl8 where y > 3.14;
+select * from fl8 where y >= 3.14;
+-- adt constant without cast (test coercion)
+select * from fl8 where y = '3.14';
+select * from fl8 where y <> '3.14';
+select * from fl8 where y < '3.14';
+select * from fl8 where y <= '3.14';
+select * from fl8 where y > '3.14';
+select * from fl8 where y >= '3.14';
+-- adt constant with float4 cast (test float84 opers)
+select * from fl8 where y = '3.14'::float4;
+select * from fl8 where y <> '3.14'::float4;
+select * from fl8 where y < '3.14'::float4;
+select * from fl8 where y <= '3.14'::float4;
+select * from fl8 where y > '3.14'::float4;
+select * from fl8 where y >= '3.14'::float4;
+-- adt constant with float8 cast (test float8 opers)
+select * from fl8 where y = '3.14'::float8;
+select * from fl8 where y <> '3.14'::float8;
+select * from fl8 where y < '3.14'::float8;
+select * from fl8 where y <= '3.14'::float8;
+select * from fl8 where y > '3.14'::float8;
+select * from fl8 where y >= '3.14'::float8;
+
+-- try other operators
+update fl8 set y = y + '2.2'::float8;
+select * from fl8;
+update fl8 set y = y - '2.2'::float8;
+select * from fl8;
+update fl8 set y = y * '2.2'::float8;
+select * from fl8;
+update fl8 set y = y / '2.2'::float8;
+select * from fl8;
+
+-- drop tables
+
+drop table fl;
+drop table fl8;
+