mirror of
https://github.com/postgres/postgres.git
synced 2025-07-07 00:36:50 +03:00
Match results with format from new psql.
All of these tests have been completely inspected and give correct results.
This commit is contained in:
@ -1,120 +1,132 @@
|
|||||||
QUERY: SELECT 1 AS one;
|
--
|
||||||
|
-- BOOLEAN
|
||||||
|
--
|
||||||
|
--
|
||||||
|
-- sanity check - if this fails go insane!
|
||||||
|
--
|
||||||
|
SELECT 1 AS one;
|
||||||
one
|
one
|
||||||
---
|
-----
|
||||||
1
|
1
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 't'::bool AS true;
|
-- ******************testing built-in type bool********************
|
||||||
|
-- check bool type-casting as well as and, or, not in qualifications--
|
||||||
|
SELECT bool 't' AS true;
|
||||||
true
|
true
|
||||||
----
|
------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 'f'::bool AS false;
|
SELECT bool 'f' AS false;
|
||||||
false
|
false
|
||||||
-----
|
-------
|
||||||
f
|
f
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 't'::bool or 'f'::bool AS true;
|
SELECT bool 't' or bool 'f' AS true;
|
||||||
true
|
true
|
||||||
----
|
------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 't'::bool and 'f'::bool AS false;
|
SELECT bool 't' and bool 'f' AS false;
|
||||||
false
|
false
|
||||||
-----
|
-------
|
||||||
f
|
f
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT not 'f'::bool AS true;
|
SELECT not bool 'f' AS true;
|
||||||
true
|
true
|
||||||
----
|
------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 't'::bool = 'f'::bool AS false;
|
SELECT bool 't' = bool 'f' AS false;
|
||||||
false
|
false
|
||||||
-----
|
-------
|
||||||
f
|
f
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 't'::bool <> 'f'::bool AS true;
|
SELECT bool 't' <> bool 'f' AS true;
|
||||||
true
|
true
|
||||||
----
|
------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: CREATE TABLE BOOLTBL1 (f1 bool);
|
CREATE TABLE BOOLTBL1 (f1 bool);
|
||||||
QUERY: INSERT INTO BOOLTBL1 (f1) VALUES ('t'::bool);
|
INSERT INTO BOOLTBL1 (f1) VALUES (bool 't');
|
||||||
QUERY: INSERT INTO BOOLTBL1 (f1) VALUES ('True'::bool);
|
INSERT INTO BOOLTBL1 (f1) VALUES (bool 'True');
|
||||||
QUERY: INSERT INTO BOOLTBL1 (f1) VALUES ('true'::bool);
|
INSERT INTO BOOLTBL1 (f1) VALUES (bool 'true');
|
||||||
QUERY: SELECT '' AS t_3, BOOLTBL1.*;
|
-- BOOLTBL1 should be full of true's at this point
|
||||||
|
SELECT '' AS t_3, BOOLTBL1.*;
|
||||||
t_3 | f1
|
t_3 | f1
|
||||||
---+--
|
-----+----
|
||||||
| t
|
| t
|
||||||
| t
|
| t
|
||||||
| t
|
| t
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS t_3, BOOLTBL1.*
|
SELECT '' AS t_3, BOOLTBL1.*
|
||||||
FROM BOOLTBL1
|
FROM BOOLTBL1
|
||||||
WHERE f1 = 'true'::bool;
|
WHERE f1 = bool 'true';
|
||||||
t_3 | f1
|
t_3 | f1
|
||||||
---+--
|
-----+----
|
||||||
| t
|
| t
|
||||||
| t
|
| t
|
||||||
| t
|
| t
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS t_3, BOOLTBL1.*
|
SELECT '' AS t_3, BOOLTBL1.*
|
||||||
FROM BOOLTBL1
|
FROM BOOLTBL1
|
||||||
WHERE f1 <> 'false'::bool;
|
WHERE f1 <> bool 'false';
|
||||||
t_3 | f1
|
t_3 | f1
|
||||||
---+--
|
-----+----
|
||||||
| t
|
| t
|
||||||
| t
|
| t
|
||||||
| t
|
| t
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS zero, BOOLTBL1.*
|
SELECT '' AS zero, BOOLTBL1.*
|
||||||
FROM BOOLTBL1
|
FROM BOOLTBL1
|
||||||
WHERE booleq('false'::bool, f1);
|
WHERE booleq(bool 'false', f1);
|
||||||
zero | f1
|
zero | f1
|
||||||
----+--
|
------+----
|
||||||
(0 rows)
|
(0 rows)
|
||||||
|
|
||||||
QUERY: INSERT INTO BOOLTBL1 (f1) VALUES ('f'::bool);
|
INSERT INTO BOOLTBL1 (f1) VALUES (bool 'f');
|
||||||
QUERY: SELECT '' AS f_1, BOOLTBL1.*
|
SELECT '' AS f_1, BOOLTBL1.*
|
||||||
FROM BOOLTBL1
|
FROM BOOLTBL1
|
||||||
WHERE f1 = 'false'::bool;
|
WHERE f1 = bool 'false';
|
||||||
f_1 | f1
|
f_1 | f1
|
||||||
---+--
|
-----+----
|
||||||
| f
|
| f
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: CREATE TABLE BOOLTBL2 (f1 bool);
|
CREATE TABLE BOOLTBL2 (f1 bool);
|
||||||
QUERY: INSERT INTO BOOLTBL2 (f1) VALUES ('f'::bool);
|
INSERT INTO BOOLTBL2 (f1) VALUES (bool 'f');
|
||||||
QUERY: INSERT INTO BOOLTBL2 (f1) VALUES ('false'::bool);
|
INSERT INTO BOOLTBL2 (f1) VALUES (bool 'false');
|
||||||
QUERY: INSERT INTO BOOLTBL2 (f1) VALUES ('False'::bool);
|
INSERT INTO BOOLTBL2 (f1) VALUES (bool 'False');
|
||||||
QUERY: INSERT INTO BOOLTBL2 (f1) VALUES ('FALSE'::bool);
|
INSERT INTO BOOLTBL2 (f1) VALUES (bool 'FALSE');
|
||||||
QUERY: INSERT INTO BOOLTBL2 (f1)
|
-- This is now an invalid expression
|
||||||
VALUES ('XXX'::bool);
|
-- For pre-v6.3 this evaluated to false - thomas 1997-10-23
|
||||||
|
INSERT INTO BOOLTBL2 (f1)
|
||||||
|
VALUES (bool 'XXX');
|
||||||
ERROR: Bad boolean external representation 'XXX'
|
ERROR: Bad boolean external representation 'XXX'
|
||||||
QUERY: SELECT '' AS f_4, BOOLTBL2.*;
|
-- BOOLTBL2 should be full of false's at this point
|
||||||
|
SELECT '' AS f_4, BOOLTBL2.*;
|
||||||
f_4 | f1
|
f_4 | f1
|
||||||
---+--
|
-----+----
|
||||||
| f
|
| f
|
||||||
| f
|
| f
|
||||||
| f
|
| f
|
||||||
| f
|
| f
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
|
SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
|
||||||
WHERE BOOLTBL2.f1 <> BOOLTBL1.f1;
|
WHERE BOOLTBL2.f1 <> BOOLTBL1.f1;
|
||||||
tf_12 | f1 | f1
|
tf_12 | f1 | f1
|
||||||
-----+--+--
|
-------+----+----
|
||||||
| t | f
|
| t | f
|
||||||
| t | f
|
| t | f
|
||||||
| t | f
|
| t | f
|
||||||
@ -129,10 +141,10 @@ tf_12|f1|f1
|
|||||||
| t | f
|
| t | f
|
||||||
(12 rows)
|
(12 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
|
SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
|
||||||
WHERE boolne(BOOLTBL2.f1,BOOLTBL1.f1);
|
WHERE boolne(BOOLTBL2.f1,BOOLTBL1.f1);
|
||||||
tf_12 | f1 | f1
|
tf_12 | f1 | f1
|
||||||
-----+--+--
|
-------+----+----
|
||||||
| t | f
|
| t | f
|
||||||
| t | f
|
| t | f
|
||||||
| t | f
|
| t | f
|
||||||
@ -147,21 +159,21 @@ tf_12|f1|f1
|
|||||||
| t | f
|
| t | f
|
||||||
(12 rows)
|
(12 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS ff_4, BOOLTBL1.*, BOOLTBL2.*
|
SELECT '' AS ff_4, BOOLTBL1.*, BOOLTBL2.*
|
||||||
WHERE BOOLTBL2.f1 = BOOLTBL1.f1 and BOOLTBL1.f1 = 'false'::bool;
|
WHERE BOOLTBL2.f1 = BOOLTBL1.f1 and BOOLTBL1.f1 = bool 'false';
|
||||||
ff_4 | f1 | f1
|
ff_4 | f1 | f1
|
||||||
----+--+--
|
------+----+----
|
||||||
| f | f
|
| f | f
|
||||||
| f | f
|
| f | f
|
||||||
| f | f
|
| f | f
|
||||||
| f | f
|
| f | f
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS tf_12_ff_4, BOOLTBL1.*, BOOLTBL2.*
|
SELECT '' AS tf_12_ff_4, BOOLTBL1.*, BOOLTBL2.*
|
||||||
WHERE BOOLTBL2.f1 = BOOLTBL1.f1 or BOOLTBL1.f1 = 'true'::bool
|
WHERE BOOLTBL2.f1 = BOOLTBL1.f1 or BOOLTBL1.f1 = bool 'true'
|
||||||
ORDER BY BOOLTBL1.f1, BOOLTBL2.f1;
|
ORDER BY BOOLTBL1.f1, BOOLTBL2.f1;
|
||||||
tf_12_ff_4 | f1 | f1
|
tf_12_ff_4 | f1 | f1
|
||||||
----------+--+--
|
------------+----+----
|
||||||
| f | f
|
| f | f
|
||||||
| f | f
|
| f | f
|
||||||
| f | f
|
| f | f
|
||||||
@ -180,41 +192,88 @@ tf_12_ff_4|f1|f1
|
|||||||
| t | f
|
| t | f
|
||||||
(16 rows)
|
(16 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS "True", BOOLTBL1.*
|
--
|
||||||
|
-- SQL92 syntax
|
||||||
|
-- Try all combinations to ensure that we get nothing when we expect nothing
|
||||||
|
-- - thomas 2000-01-04
|
||||||
|
--
|
||||||
|
SELECT '' AS "True", f1
|
||||||
FROM BOOLTBL1
|
FROM BOOLTBL1
|
||||||
WHERE f1 IS TRUE;
|
WHERE f1 IS TRUE;
|
||||||
True | f1
|
True | f1
|
||||||
----+--
|
------+----
|
||||||
| t
|
| t
|
||||||
| t
|
| t
|
||||||
| t
|
| t
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS "Not False", BOOLTBL1.*
|
SELECT '' AS "Not False", f1
|
||||||
FROM BOOLTBL1
|
FROM BOOLTBL1
|
||||||
WHERE f1 IS NOT FALSE;
|
WHERE f1 IS NOT FALSE;
|
||||||
Not False | f1
|
Not False | f1
|
||||||
---------+--
|
-----------+----
|
||||||
| t
|
| t
|
||||||
| t
|
| t
|
||||||
| t
|
| t
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS "False", BOOLTBL1.*
|
SELECT '' AS "False", f1
|
||||||
FROM BOOLTBL1
|
FROM BOOLTBL1
|
||||||
WHERE f1 IS FALSE;
|
WHERE f1 IS FALSE;
|
||||||
False | f1
|
False | f1
|
||||||
-----+--
|
-------+----
|
||||||
| f
|
| f
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS "Not True", BOOLTBL1.*
|
SELECT '' AS "Not True", f1
|
||||||
FROM BOOLTBL1
|
FROM BOOLTBL1
|
||||||
WHERE f1 IS NOT TRUE;
|
WHERE f1 IS NOT TRUE;
|
||||||
Not True | f1
|
Not True | f1
|
||||||
--------+--
|
----------+----
|
||||||
| f
|
| f
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: DROP TABLE BOOLTBL1;
|
SELECT '' AS "True", f1
|
||||||
QUERY: DROP TABLE BOOLTBL2;
|
FROM BOOLTBL2
|
||||||
|
WHERE f1 IS TRUE;
|
||||||
|
True | f1
|
||||||
|
------+----
|
||||||
|
(0 rows)
|
||||||
|
|
||||||
|
SELECT '' AS "Not False", f1
|
||||||
|
FROM BOOLTBL2
|
||||||
|
WHERE f1 IS NOT FALSE;
|
||||||
|
Not False | f1
|
||||||
|
-----------+----
|
||||||
|
(0 rows)
|
||||||
|
|
||||||
|
SELECT '' AS "False", f1
|
||||||
|
FROM BOOLTBL2
|
||||||
|
WHERE f1 IS FALSE;
|
||||||
|
False | f1
|
||||||
|
-------+----
|
||||||
|
| f
|
||||||
|
| f
|
||||||
|
| f
|
||||||
|
| f
|
||||||
|
(4 rows)
|
||||||
|
|
||||||
|
SELECT '' AS "Not True", f1
|
||||||
|
FROM BOOLTBL2
|
||||||
|
WHERE f1 IS NOT TRUE;
|
||||||
|
Not True | f1
|
||||||
|
----------+----
|
||||||
|
| f
|
||||||
|
| f
|
||||||
|
| f
|
||||||
|
| f
|
||||||
|
(4 rows)
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Clean up
|
||||||
|
-- Many tables are retained by the regression test, but these do not seem
|
||||||
|
-- particularly useful so just get rid of them for now.
|
||||||
|
-- - thomas 1997-11-30
|
||||||
|
--
|
||||||
|
DROP TABLE BOOLTBL1;
|
||||||
|
DROP TABLE BOOLTBL2;
|
||||||
|
@ -1,20 +1,32 @@
|
|||||||
QUERY: SELECT 'c'::char = 'c'::char AS true;
|
--
|
||||||
|
-- CHAR
|
||||||
|
-- all inputs are SILENTLY truncated at 1 character
|
||||||
|
--
|
||||||
|
-- fixed-length by value
|
||||||
|
-- internally passed by value if <= 4 bytes in storage
|
||||||
|
SELECT char 'c' = char 'c' AS true;
|
||||||
true
|
true
|
||||||
----
|
------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: CREATE TABLE CHAR_TBL(f1 char);
|
--
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('a');
|
-- Build a table for testing
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('A');
|
--
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('1');
|
CREATE TABLE CHAR_TBL(f1 char);
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES (2);
|
INSERT INTO CHAR_TBL (f1) VALUES ('a');
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('3');
|
INSERT INTO CHAR_TBL (f1) VALUES ('A');
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('');
|
-- any of the following three input formats are acceptable
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('cd');
|
INSERT INTO CHAR_TBL (f1) VALUES ('1');
|
||||||
QUERY: SELECT '' AS seven, CHAR_TBL.*;
|
INSERT INTO CHAR_TBL (f1) VALUES (2);
|
||||||
|
INSERT INTO CHAR_TBL (f1) VALUES ('3');
|
||||||
|
-- zero-length char
|
||||||
|
INSERT INTO CHAR_TBL (f1) VALUES ('');
|
||||||
|
-- try char's of greater than 1 length
|
||||||
|
INSERT INTO CHAR_TBL (f1) VALUES ('cd');
|
||||||
|
SELECT '' AS seven, CHAR_TBL.*;
|
||||||
seven | f1
|
seven | f1
|
||||||
-----+--
|
-------+----
|
||||||
| a
|
| a
|
||||||
| A
|
| A
|
||||||
| 1
|
| 1
|
||||||
@ -24,11 +36,11 @@ seven|f1
|
|||||||
| c
|
| c
|
||||||
(7 rows)
|
(7 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS six, c.*
|
SELECT '' AS six, c.*
|
||||||
FROM CHAR_TBL c
|
FROM CHAR_TBL c
|
||||||
WHERE c.f1 <> 'a';
|
WHERE c.f1 <> 'a';
|
||||||
six | f1
|
six | f1
|
||||||
---+--
|
-----+----
|
||||||
| A
|
| A
|
||||||
| 1
|
| 1
|
||||||
| 2
|
| 2
|
||||||
@ -37,19 +49,19 @@ six|f1
|
|||||||
| c
|
| c
|
||||||
(6 rows)
|
(6 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, c.*
|
SELECT '' AS one, c.*
|
||||||
FROM CHAR_TBL c
|
FROM CHAR_TBL c
|
||||||
WHERE c.f1 = 'a';
|
WHERE c.f1 = 'a';
|
||||||
one | f1
|
one | f1
|
||||||
---+--
|
-----+----
|
||||||
| a
|
| a
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, c.*
|
SELECT '' AS five, c.*
|
||||||
FROM CHAR_TBL c
|
FROM CHAR_TBL c
|
||||||
WHERE c.f1 < 'a';
|
WHERE c.f1 < 'a';
|
||||||
five | f1
|
five | f1
|
||||||
----+--
|
------+----
|
||||||
| A
|
| A
|
||||||
| 1
|
| 1
|
||||||
| 2
|
| 2
|
||||||
@ -57,11 +69,11 @@ five|f1
|
|||||||
|
|
|
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS six, c.*
|
SELECT '' AS six, c.*
|
||||||
FROM CHAR_TBL c
|
FROM CHAR_TBL c
|
||||||
WHERE c.f1 <= 'a';
|
WHERE c.f1 <= 'a';
|
||||||
six | f1
|
six | f1
|
||||||
---+--
|
-----+----
|
||||||
| a
|
| a
|
||||||
| A
|
| A
|
||||||
| 1
|
| 1
|
||||||
@ -70,32 +82,35 @@ six|f1
|
|||||||
|
|
|
|
||||||
(6 rows)
|
(6 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, c.*
|
SELECT '' AS one, c.*
|
||||||
FROM CHAR_TBL c
|
FROM CHAR_TBL c
|
||||||
WHERE c.f1 > 'a';
|
WHERE c.f1 > 'a';
|
||||||
one | f1
|
one | f1
|
||||||
---+--
|
-----+----
|
||||||
| c
|
| c
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, c.*
|
SELECT '' AS two, c.*
|
||||||
FROM CHAR_TBL c
|
FROM CHAR_TBL c
|
||||||
WHERE c.f1 >= 'a';
|
WHERE c.f1 >= 'a';
|
||||||
two | f1
|
two | f1
|
||||||
---+--
|
-----+----
|
||||||
| a
|
| a
|
||||||
| c
|
| c
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: DROP TABLE CHAR_TBL;
|
DROP TABLE CHAR_TBL;
|
||||||
QUERY: CREATE TABLE CHAR_TBL(f1 char(4));
|
--
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('a');
|
-- Now test longer arrays of char
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('ab');
|
--
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
|
CREATE TABLE CHAR_TBL(f1 char(4));
|
||||||
QUERY: INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
|
INSERT INTO CHAR_TBL (f1) VALUES ('a');
|
||||||
QUERY: SELECT '' AS four, CHAR_TBL.*;
|
INSERT INTO CHAR_TBL (f1) VALUES ('ab');
|
||||||
|
INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
|
||||||
|
INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
|
||||||
|
SELECT '' AS four, CHAR_TBL.*;
|
||||||
four | f1
|
four | f1
|
||||||
----+----
|
------+------
|
||||||
| a
|
| a
|
||||||
| ab
|
| ab
|
||||||
| abcd
|
| abcd
|
||||||
|
@ -1,20 +1,24 @@
|
|||||||
QUERY: CREATE TABLE FLOAT4_TBL (f1 float4);
|
--
|
||||||
QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('0.0');
|
-- FLOAT4
|
||||||
QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('1004.30');
|
--
|
||||||
QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('-34.84');
|
CREATE TABLE FLOAT4_TBL (f1 float4);
|
||||||
QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e+20');
|
INSERT INTO FLOAT4_TBL(f1) VALUES ('0.0');
|
||||||
QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e-20');
|
INSERT INTO FLOAT4_TBL(f1) VALUES ('1004.30');
|
||||||
QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e40');
|
INSERT INTO FLOAT4_TBL(f1) VALUES ('-34.84');
|
||||||
|
INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e+20');
|
||||||
|
INSERT INTO FLOAT4_TBL(f1) VALUES ('1.2345678901234e-20');
|
||||||
|
-- test for over and under flow
|
||||||
|
INSERT INTO FLOAT4_TBL(f1) VALUES ('10e40');
|
||||||
ERROR: Bad float4 input format -- overflow
|
ERROR: Bad float4 input format -- overflow
|
||||||
QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e40');
|
INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e40');
|
||||||
ERROR: Bad float4 input format -- overflow
|
ERROR: Bad float4 input format -- overflow
|
||||||
QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-40');
|
INSERT INTO FLOAT4_TBL(f1) VALUES ('10e-40');
|
||||||
ERROR: Bad float4 input format -- underflow
|
ERROR: Bad float4 input format -- underflow
|
||||||
QUERY: INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-40');
|
INSERT INTO FLOAT4_TBL(f1) VALUES ('-10e-40');
|
||||||
ERROR: Bad float4 input format -- underflow
|
ERROR: Bad float4 input format -- underflow
|
||||||
QUERY: SELECT '' AS five, FLOAT4_TBL.*;
|
SELECT '' AS five, FLOAT4_TBL.*;
|
||||||
five | f1
|
five | f1
|
||||||
----+-----------
|
------+-------------
|
||||||
| 0
|
| 0
|
||||||
| 1004.3
|
| 1004.3
|
||||||
| -34.84
|
| -34.84
|
||||||
@ -22,96 +26,97 @@ five|f1
|
|||||||
| 1.23457e-20
|
| 1.23457e-20
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
|
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
|
||||||
four | f1
|
four | f1
|
||||||
----+-----------
|
------+-------------
|
||||||
| 0
|
| 0
|
||||||
| -34.84
|
| -34.84
|
||||||
| 1.23457e+20
|
| 1.23457e+20
|
||||||
| 1.23457e-20
|
| 1.23457e-20
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
|
SELECT '' AS one, f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
|
||||||
one | f1
|
one | f1
|
||||||
---+------
|
-----+--------
|
||||||
| 1004.3
|
| 1004.3
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
|
SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
|
||||||
three | f1
|
three | f1
|
||||||
-----+-----------
|
-------+-------------
|
||||||
| 0
|
| 0
|
||||||
| -34.84
|
| -34.84
|
||||||
| 1.23457e-20
|
| 1.23457e-20
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE f.f1 < '1004.3';
|
SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE f.f1 < '1004.3';
|
||||||
three | f1
|
three | f1
|
||||||
-----+-----------
|
-------+-------------
|
||||||
| 0
|
| 0
|
||||||
| -34.84
|
| -34.84
|
||||||
| 1.23457e-20
|
| 1.23457e-20
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
|
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
|
||||||
four | f1
|
four | f1
|
||||||
----+-----------
|
------+-------------
|
||||||
| 0
|
| 0
|
||||||
| 1004.3
|
| 1004.3
|
||||||
| -34.84
|
| -34.84
|
||||||
| 1.23457e-20
|
| 1.23457e-20
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <= '1004.3';
|
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <= '1004.3';
|
||||||
four | f1
|
four | f1
|
||||||
----+-----------
|
------+-------------
|
||||||
| 0
|
| 0
|
||||||
| 1004.3
|
| 1004.3
|
||||||
| -34.84
|
| -34.84
|
||||||
| 1.23457e-20
|
| 1.23457e-20
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
|
SELECT '' AS three, f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
|
||||||
WHERE f.f1 > '0.0';
|
WHERE f.f1 > '0.0';
|
||||||
three | f1 | x
|
three | f1 | x
|
||||||
-----+-----------+------------
|
-------+-------------+--------------
|
||||||
| 1004.3 | -10043
|
| 1004.3 | -10043
|
||||||
| 1.23457e+20 | -1.23457e+21
|
| 1.23457e+20 | -1.23457e+21
|
||||||
| 1.23457e-20 | -1.23457e-19
|
| 1.23457e-20 | -1.23457e-19
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
|
SELECT '' AS three, f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
|
||||||
WHERE f.f1 > '0.0';
|
WHERE f.f1 > '0.0';
|
||||||
three | f1 | x
|
three | f1 | x
|
||||||
-----+-----------+-----------
|
-------+-------------+-------------
|
||||||
| 1004.3 | 994.3
|
| 1004.3 | 994.3
|
||||||
| 1.23457e+20 | 1.23457e+20
|
| 1.23457e+20 | 1.23457e+20
|
||||||
| 1.23457e-20 | -10
|
| 1.23457e-20 | -10
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
|
SELECT '' AS three, f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
|
||||||
WHERE f.f1 > '0.0';
|
WHERE f.f1 > '0.0';
|
||||||
three | f1 | x
|
three | f1 | x
|
||||||
-----+-----------+------------
|
-------+-------------+--------------
|
||||||
| 1004.3 | -100.43
|
| 1004.3 | -100.43
|
||||||
| 1.23457e+20 | -1.23457e+19
|
| 1.23457e+20 | -1.23457e+19
|
||||||
| 1.23457e-20 | -1.23457e-21
|
| 1.23457e-20 | -1.23457e-21
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
|
SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
|
||||||
WHERE f.f1 > '0.0';
|
WHERE f.f1 > '0.0';
|
||||||
three | f1 | x
|
three | f1 | x
|
||||||
-----+-----------+-----------
|
-------+-------------+-------------
|
||||||
| 1004.3 | 1014.3
|
| 1004.3 | 1014.3
|
||||||
| 1.23457e+20 | 1.23457e+20
|
| 1.23457e+20 | 1.23457e+20
|
||||||
| 1.23457e-20 | 10
|
| 1.23457e-20 | 10
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
|
-- test divide by zero
|
||||||
|
SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
|
||||||
ERROR: float4div: divide by zero error
|
ERROR: float4div: divide by zero error
|
||||||
QUERY: SELECT '' AS five, FLOAT4_TBL.*;
|
SELECT '' AS five, FLOAT4_TBL.*;
|
||||||
five | f1
|
five | f1
|
||||||
----+-----------
|
------+-------------
|
||||||
| 0
|
| 0
|
||||||
| 1004.3
|
| 1004.3
|
||||||
| -34.84
|
| -34.84
|
||||||
@ -119,9 +124,10 @@ five|f1
|
|||||||
| 1.23457e-20
|
| 1.23457e-20
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
|
-- test the unary float4abs operator
|
||||||
|
SELECT '' AS five, f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
|
||||||
five | f1 | abs_f1
|
five | f1 | abs_f1
|
||||||
----+-----------+-----------
|
------+-------------+-------------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 1004.3 | 1004.3
|
| 1004.3 | 1004.3
|
||||||
| -34.84 | 34.84
|
| -34.84 | 34.84
|
||||||
@ -129,12 +135,12 @@ five|f1 |abs_f1
|
|||||||
| 1.23457e-20 | 1.23457e-20
|
| 1.23457e-20 | 1.23457e-20
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: UPDATE FLOAT4_TBL
|
UPDATE FLOAT4_TBL
|
||||||
SET f1 = FLOAT4_TBL.f1 * '-1'
|
SET f1 = FLOAT4_TBL.f1 * '-1'
|
||||||
WHERE FLOAT4_TBL.f1 > '0.0';
|
WHERE FLOAT4_TBL.f1 > '0.0';
|
||||||
QUERY: SELECT '' AS five, FLOAT4_TBL.*;
|
SELECT '' AS five, FLOAT4_TBL.*;
|
||||||
five | f1
|
five | f1
|
||||||
----+------------
|
------+--------------
|
||||||
| 0
|
| 0
|
||||||
| -34.84
|
| -34.84
|
||||||
| -1004.3
|
| -1004.3
|
||||||
|
@ -1,12 +1,15 @@
|
|||||||
QUERY: CREATE TABLE FLOAT8_TBL(f1 float8);
|
--
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('0.0');
|
-- FLOAT8
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1004.30');
|
--
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
|
CREATE TABLE FLOAT8_TBL(f1 float8);
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e+200');
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('0.0');
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e-200');
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('1004.30');
|
||||||
QUERY: SELECT '' AS five, FLOAT8_TBL.*;
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
|
||||||
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e+200');
|
||||||
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('1.2345678901234e-200');
|
||||||
|
SELECT '' AS five, FLOAT8_TBL.*;
|
||||||
five | f1
|
five | f1
|
||||||
----+--------------------
|
------+----------------------
|
||||||
| 0
|
| 0
|
||||||
| 1004.3
|
| 1004.3
|
||||||
| -34.84
|
| -34.84
|
||||||
@ -14,106 +17,107 @@ five|f1
|
|||||||
| 1.2345678901234e-200
|
| 1.2345678901234e-200
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <> '1004.3';
|
SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <> '1004.3';
|
||||||
four | f1
|
four | f1
|
||||||
----+--------------------
|
------+----------------------
|
||||||
| 0
|
| 0
|
||||||
| -34.84
|
| -34.84
|
||||||
| 1.2345678901234e+200
|
| 1.2345678901234e+200
|
||||||
| 1.2345678901234e-200
|
| 1.2345678901234e-200
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, f.* FROM FLOAT8_TBL f WHERE f.f1 = '1004.3';
|
SELECT '' AS one, f.* FROM FLOAT8_TBL f WHERE f.f1 = '1004.3';
|
||||||
one | f1
|
one | f1
|
||||||
---+------
|
-----+--------
|
||||||
| 1004.3
|
| 1004.3
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE '1004.3' > f.f1;
|
SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE '1004.3' > f.f1;
|
||||||
three | f1
|
three | f1
|
||||||
-----+--------------------
|
-------+----------------------
|
||||||
| 0
|
| 0
|
||||||
| -34.84
|
| -34.84
|
||||||
| 1.2345678901234e-200
|
| 1.2345678901234e-200
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE f.f1 < '1004.3';
|
SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE f.f1 < '1004.3';
|
||||||
three | f1
|
three | f1
|
||||||
-----+--------------------
|
-------+----------------------
|
||||||
| 0
|
| 0
|
||||||
| -34.84
|
| -34.84
|
||||||
| 1.2345678901234e-200
|
| 1.2345678901234e-200
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE '1004.3' >= f.f1;
|
SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE '1004.3' >= f.f1;
|
||||||
four | f1
|
four | f1
|
||||||
----+--------------------
|
------+----------------------
|
||||||
| 0
|
| 0
|
||||||
| 1004.3
|
| 1004.3
|
||||||
| -34.84
|
| -34.84
|
||||||
| 1.2345678901234e-200
|
| 1.2345678901234e-200
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <= '1004.3';
|
SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <= '1004.3';
|
||||||
four | f1
|
four | f1
|
||||||
----+--------------------
|
------+----------------------
|
||||||
| 0
|
| 0
|
||||||
| 1004.3
|
| 1004.3
|
||||||
| -34.84
|
| -34.84
|
||||||
| 1.2345678901234e-200
|
| 1.2345678901234e-200
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.f1, f.f1 * '-10' AS x
|
SELECT '' AS three, f.f1, f.f1 * '-10' AS x
|
||||||
FROM FLOAT8_TBL f
|
FROM FLOAT8_TBL f
|
||||||
WHERE f.f1 > '0.0';
|
WHERE f.f1 > '0.0';
|
||||||
three | f1 | x
|
three | f1 | x
|
||||||
-----+--------------------+---------------------
|
-------+----------------------+-----------------------
|
||||||
| 1004.3 | -10043
|
| 1004.3 | -10043
|
||||||
| 1.2345678901234e+200 | -1.2345678901234e+201
|
| 1.2345678901234e+200 | -1.2345678901234e+201
|
||||||
| 1.2345678901234e-200 | -1.2345678901234e-199
|
| 1.2345678901234e-200 | -1.2345678901234e-199
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.f1, f.f1 + '-10' AS x
|
SELECT '' AS three, f.f1, f.f1 + '-10' AS x
|
||||||
FROM FLOAT8_TBL f
|
FROM FLOAT8_TBL f
|
||||||
WHERE f.f1 > '0.0';
|
WHERE f.f1 > '0.0';
|
||||||
three | f1 | x
|
three | f1 | x
|
||||||
-----+--------------------+--------------------
|
-------+----------------------+----------------------
|
||||||
| 1004.3 | 994.3
|
| 1004.3 | 994.3
|
||||||
| 1.2345678901234e+200 | 1.2345678901234e+200
|
| 1.2345678901234e+200 | 1.2345678901234e+200
|
||||||
| 1.2345678901234e-200 | -10
|
| 1.2345678901234e-200 | -10
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.f1, f.f1 / '-10' AS x
|
SELECT '' AS three, f.f1, f.f1 / '-10' AS x
|
||||||
FROM FLOAT8_TBL f
|
FROM FLOAT8_TBL f
|
||||||
WHERE f.f1 > '0.0';
|
WHERE f.f1 > '0.0';
|
||||||
three | f1 | x
|
three | f1 | x
|
||||||
-----+--------------------+---------------------
|
-------+----------------------+-----------------------
|
||||||
| 1004.3 | -100.43
|
| 1004.3 | -100.43
|
||||||
| 1.2345678901234e+200 | -1.2345678901234e+199
|
| 1.2345678901234e+200 | -1.2345678901234e+199
|
||||||
| 1.2345678901234e-200 | -1.2345678901234e-201
|
| 1.2345678901234e-200 | -1.2345678901234e-201
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.f1, f.f1 - '-10' AS x
|
SELECT '' AS three, f.f1, f.f1 - '-10' AS x
|
||||||
FROM FLOAT8_TBL f
|
FROM FLOAT8_TBL f
|
||||||
WHERE f.f1 > '0.0';
|
WHERE f.f1 > '0.0';
|
||||||
three | f1 | x
|
three | f1 | x
|
||||||
-----+--------------------+--------------------
|
-------+----------------------+----------------------
|
||||||
| 1004.3 | 1014.3
|
| 1004.3 | 1014.3
|
||||||
| 1.2345678901234e+200 | 1.2345678901234e+200
|
| 1.2345678901234e+200 | 1.2345678901234e+200
|
||||||
| 1.2345678901234e-200 | 10
|
| 1.2345678901234e-200 | 10
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, f.f1 ^ '2.0' AS square_f1
|
SELECT '' AS one, f.f1 ^ '2.0' AS square_f1
|
||||||
FROM FLOAT8_TBL f where f.f1 = '1004.3';
|
FROM FLOAT8_TBL f where f.f1 = '1004.3';
|
||||||
one | square_f1
|
one | square_f1
|
||||||
---+----------
|
-----+------------
|
||||||
| 1008618.49
|
| 1008618.49
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, f.f1, @f.f1 AS abs_f1
|
-- absolute value
|
||||||
|
SELECT '' AS five, f.f1, @f.f1 AS abs_f1
|
||||||
FROM FLOAT8_TBL f;
|
FROM FLOAT8_TBL f;
|
||||||
five | f1 | abs_f1
|
five | f1 | abs_f1
|
||||||
----+--------------------+--------------------
|
------+----------------------+----------------------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 1004.3 | 1004.3
|
| 1004.3 | 1004.3
|
||||||
| -34.84 | 34.84
|
| -34.84 | 34.84
|
||||||
@ -121,10 +125,11 @@ five|f1 |abs_f1
|
|||||||
| 1.2345678901234e-200 | 1.2345678901234e-200
|
| 1.2345678901234e-200 | 1.2345678901234e-200
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
|
-- truncate
|
||||||
|
SELECT '' AS five, f.f1, %f.f1 AS trunc_f1
|
||||||
FROM FLOAT8_TBL f;
|
FROM FLOAT8_TBL f;
|
||||||
five | f1 | trunc_f1
|
five | f1 | trunc_f1
|
||||||
----+--------------------+--------------------
|
------+----------------------+----------------------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 1004.3 | 1004
|
| 1004.3 | 1004
|
||||||
| -34.84 | -34
|
| -34.84 | -34
|
||||||
@ -132,10 +137,11 @@ five|f1 |trunc_f1
|
|||||||
| 1.2345678901234e-200 | 0
|
| 1.2345678901234e-200 | 0
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, f.f1, f.f1 % AS round_f1
|
-- round
|
||||||
|
SELECT '' AS five, f.f1, f.f1 % AS round_f1
|
||||||
FROM FLOAT8_TBL f;
|
FROM FLOAT8_TBL f;
|
||||||
five | f1 | round_f1
|
five | f1 | round_f1
|
||||||
----+--------------------+--------------------
|
------+----------------------+----------------------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 1004.3 | 1004
|
| 1004.3 | 1004
|
||||||
| -34.84 | -35
|
| -34.84 | -35
|
||||||
@ -143,29 +149,32 @@ five|f1 |round_f1
|
|||||||
| 1.2345678901234e-200 | 0
|
| 1.2345678901234e-200 | 0
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.f1, |/f.f1 AS sqrt_f1
|
-- square root
|
||||||
|
SELECT '' AS three, f.f1, |/f.f1 AS sqrt_f1
|
||||||
FROM FLOAT8_TBL f
|
FROM FLOAT8_TBL f
|
||||||
WHERE f.f1 > '0.0';
|
WHERE f.f1 > '0.0';
|
||||||
three | f1 | sqrt_f1
|
three | f1 | sqrt_f1
|
||||||
-----+--------------------+---------------------
|
-------+----------------------+-----------------------
|
||||||
| 1004.3 | 31.6906926399535
|
| 1004.3 | 31.6906926399535
|
||||||
| 1.2345678901234e+200 | 1.11111110611109e+100
|
| 1.2345678901234e+200 | 1.11111110611109e+100
|
||||||
| 1.2345678901234e-200 | 1.11111110611109e-100
|
| 1.2345678901234e-200 | 1.11111110611109e-100
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, f.f1, : ( ; f.f1) AS exp_ln_f1
|
-- take exp of ln(f.f1)
|
||||||
|
SELECT '' AS three, f.f1, : ( ; f.f1) AS exp_ln_f1
|
||||||
FROM FLOAT8_TBL f
|
FROM FLOAT8_TBL f
|
||||||
WHERE f.f1 > '0.0';
|
WHERE f.f1 > '0.0';
|
||||||
three | f1 | exp_ln_f1
|
three | f1 | exp_ln_f1
|
||||||
-----+--------------------+---------------------
|
-------+----------------------+-----------------------
|
||||||
| 1004.3 | 1004.3
|
| 1004.3 | 1004.3
|
||||||
| 1.2345678901234e+200 | 1.23456789012338e+200
|
| 1.2345678901234e+200 | 1.23456789012338e+200
|
||||||
| 1.2345678901234e-200 | 1.23456789012339e-200
|
| 1.2345678901234e-200 | 1.23456789012339e-200
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, f.f1, ||/f.f1 AS cbrt_f1 FROM FLOAT8_TBL f;
|
-- cube root
|
||||||
|
SELECT '' AS five, f.f1, ||/f.f1 AS cbrt_f1 FROM FLOAT8_TBL f;
|
||||||
five | f1 | cbrt_f1
|
five | f1 | cbrt_f1
|
||||||
----+--------------------+--------------------
|
------+----------------------+----------------------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 1004.3 | 10.014312837827
|
| 1004.3 | 10.014312837827
|
||||||
| -34.84 | -3.26607421344208
|
| -34.84 | -3.26607421344208
|
||||||
@ -173,9 +182,9 @@ five|f1 |cbrt_f1
|
|||||||
| 1.2345678901234e-200 | 2.3112042409018e-67
|
| 1.2345678901234e-200 | 2.3112042409018e-67
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, FLOAT8_TBL.*;
|
SELECT '' AS five, FLOAT8_TBL.*;
|
||||||
five | f1
|
five | f1
|
||||||
----+--------------------
|
------+----------------------
|
||||||
| 0
|
| 0
|
||||||
| 1004.3
|
| 1004.3
|
||||||
| -34.84
|
| -34.84
|
||||||
@ -183,24 +192,24 @@ five|f1
|
|||||||
| 1.2345678901234e-200
|
| 1.2345678901234e-200
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: UPDATE FLOAT8_TBL
|
UPDATE FLOAT8_TBL
|
||||||
SET f1 = FLOAT8_TBL.f1 * '-1'
|
SET f1 = FLOAT8_TBL.f1 * '-1'
|
||||||
WHERE FLOAT8_TBL.f1 > '0.0';
|
WHERE FLOAT8_TBL.f1 > '0.0';
|
||||||
QUERY: SELECT '' AS bad, f.f1 * '1e200' from FLOAT8_TBL f;
|
SELECT '' AS bad, f.f1 * '1e200' from FLOAT8_TBL f;
|
||||||
ERROR: Bad float8 input format -- overflow
|
ERROR: Bad float8 input format -- overflow
|
||||||
QUERY: SELECT '' AS bad, f.f1 ^ '1e200' from FLOAT8_TBL f;
|
SELECT '' AS bad, f.f1 ^ '1e200' from FLOAT8_TBL f;
|
||||||
ERROR: pow() result is out of range
|
ERROR: pow() result is out of range
|
||||||
QUERY: SELECT '' AS bad, (; (f.f1)) from FLOAT8_TBL f where f.f1 = '0.0' ;
|
SELECT '' AS bad, (; (f.f1)) from FLOAT8_TBL f where f.f1 = '0.0' ;
|
||||||
ERROR: can't take log of zero
|
ERROR: can't take log of zero
|
||||||
QUERY: SELECT '' AS bad, (; (f.f1)) from FLOAT8_TBL f where f.f1 < '0.0' ;
|
SELECT '' AS bad, (; (f.f1)) from FLOAT8_TBL f where f.f1 < '0.0' ;
|
||||||
ERROR: can't take log of a negative number
|
ERROR: can't take log of a negative number
|
||||||
QUERY: SELECT '' AS bad, : (f.f1) from FLOAT8_TBL f;
|
SELECT '' AS bad, : (f.f1) from FLOAT8_TBL f;
|
||||||
ERROR: exp() result is out of range
|
ERROR: exp() result is out of range
|
||||||
QUERY: SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f;
|
SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f;
|
||||||
ERROR: float8div: divide by zero error
|
ERROR: float8div: divide by zero error
|
||||||
QUERY: SELECT '' AS five, FLOAT8_TBL.*;
|
SELECT '' AS five, FLOAT8_TBL.*;
|
||||||
five | f1
|
five | f1
|
||||||
----+---------------------
|
------+-----------------------
|
||||||
| 0
|
| 0
|
||||||
| -34.84
|
| -34.84
|
||||||
| -1004.3
|
| -1004.3
|
||||||
@ -208,23 +217,26 @@ five|f1
|
|||||||
| -1.2345678901234e-200
|
| -1.2345678901234e-200
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
|
-- test for over and under flow
|
||||||
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('10e400');
|
||||||
ERROR: Input '10e400' is out of range for float8
|
ERROR: Input '10e400' is out of range for float8
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e400');
|
||||||
ERROR: Input '-10e400' is out of range for float8
|
ERROR: Input '-10e400' is out of range for float8
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('10e-400');
|
||||||
ERROR: Input '10e-400' is out of range for float8
|
ERROR: Input '10e-400' is out of range for float8
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('-10e-400');
|
||||||
ERROR: Input '-10e-400' is out of range for float8
|
ERROR: Input '-10e-400' is out of range for float8
|
||||||
QUERY: DELETE FROM FLOAT8_TBL;
|
-- maintain external table consistency across platforms
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('0.0');
|
-- delete all values and reinsert well-behaved ones
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
|
DELETE FROM FLOAT8_TBL;
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1004.30');
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('0.0');
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e+200');
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
|
||||||
QUERY: INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e-200');
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('-1004.30');
|
||||||
QUERY: SELECT '' AS five, FLOAT8_TBL.*;
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e+200');
|
||||||
|
INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e-200');
|
||||||
|
SELECT '' AS five, FLOAT8_TBL.*;
|
||||||
five | f1
|
five | f1
|
||||||
----+---------------------
|
------+-----------------------
|
||||||
| 0
|
| 0
|
||||||
| -34.84
|
| -34.84
|
||||||
| -1004.3
|
| -1004.3
|
||||||
|
@ -1,18 +1,25 @@
|
|||||||
QUERY: CREATE TABLE INT2_TBL(f1 int2);
|
--
|
||||||
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('0');
|
-- INT2
|
||||||
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('1234');
|
-- NOTE: int2 operators never check for over/underflow!
|
||||||
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('-1234');
|
-- Some of these answers are consequently numerically incorrect.
|
||||||
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('34.5');
|
--
|
||||||
|
CREATE TABLE INT2_TBL(f1 int2);
|
||||||
|
INSERT INTO INT2_TBL(f1) VALUES ('0');
|
||||||
|
INSERT INTO INT2_TBL(f1) VALUES ('1234');
|
||||||
|
INSERT INTO INT2_TBL(f1) VALUES ('-1234');
|
||||||
|
INSERT INTO INT2_TBL(f1) VALUES ('34.5');
|
||||||
ERROR: pg_atoi: error in "34.5": can't parse ".5"
|
ERROR: pg_atoi: error in "34.5": can't parse ".5"
|
||||||
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('32767');
|
-- largest and smallest values
|
||||||
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('-32767');
|
INSERT INTO INT2_TBL(f1) VALUES ('32767');
|
||||||
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('100000');
|
INSERT INTO INT2_TBL(f1) VALUES ('-32767');
|
||||||
|
-- bad input values -- should give warnings
|
||||||
|
INSERT INTO INT2_TBL(f1) VALUES ('100000');
|
||||||
ERROR: pg_atoi: error reading "100000": Numerical result out of range
|
ERROR: pg_atoi: error reading "100000": Numerical result out of range
|
||||||
QUERY: INSERT INTO INT2_TBL(f1) VALUES ('asdf');
|
INSERT INTO INT2_TBL(f1) VALUES ('asdf');
|
||||||
ERROR: pg_atoi: error in "asdf": can't parse "asdf"
|
ERROR: pg_atoi: error in "asdf": can't parse "asdf"
|
||||||
QUERY: SELECT '' AS five, INT2_TBL.*;
|
SELECT '' AS five, INT2_TBL.*;
|
||||||
five | f1
|
five | f1
|
||||||
----+------
|
------+--------
|
||||||
| 0
|
| 0
|
||||||
| 1234
|
| 1234
|
||||||
| -1234
|
| -1234
|
||||||
@ -20,113 +27,115 @@ five| f1
|
|||||||
| -32767
|
| -32767
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, i.* FROM INT2_TBL i WHERE i.f1 <> '0'::int2;
|
SELECT '' AS four, i.* FROM INT2_TBL i WHERE i.f1 <> int2 '0';
|
||||||
four | f1
|
four | f1
|
||||||
----+------
|
------+--------
|
||||||
| 1234
|
| 1234
|
||||||
| -1234
|
| -1234
|
||||||
| 32767
|
| 32767
|
||||||
| -32767
|
| -32767
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, i.* FROM INT2_TBL i WHERE i.f1 <> '0'::int4;
|
SELECT '' AS four, i.* FROM INT2_TBL i WHERE i.f1 <> int4 '0';
|
||||||
four | f1
|
four | f1
|
||||||
----+------
|
------+--------
|
||||||
| 1234
|
| 1234
|
||||||
| -1234
|
| -1234
|
||||||
| 32767
|
| 32767
|
||||||
| -32767
|
| -32767
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, i.* FROM INT2_TBL i WHERE i.f1 = '0'::int2;
|
SELECT '' AS one, i.* FROM INT2_TBL i WHERE i.f1 = int2 '0';
|
||||||
one | f1
|
one | f1
|
||||||
---+--
|
-----+----
|
||||||
| 0
|
| 0
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, i.* FROM INT2_TBL i WHERE i.f1 = '0'::int4;
|
SELECT '' AS one, i.* FROM INT2_TBL i WHERE i.f1 = int4 '0';
|
||||||
one | f1
|
one | f1
|
||||||
---+--
|
-----+----
|
||||||
| 0
|
| 0
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 < '0'::int2;
|
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 < int2 '0';
|
||||||
two | f1
|
two | f1
|
||||||
---+------
|
-----+--------
|
||||||
| -1234
|
| -1234
|
||||||
| -32767
|
| -32767
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 < '0'::int4;
|
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 < int4 '0';
|
||||||
two | f1
|
two | f1
|
||||||
---+------
|
-----+--------
|
||||||
| -1234
|
| -1234
|
||||||
| -32767
|
| -32767
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 <= '0'::int2;
|
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 <= int2 '0';
|
||||||
three | f1
|
three | f1
|
||||||
-----+------
|
-------+--------
|
||||||
| 0
|
| 0
|
||||||
| -1234
|
| -1234
|
||||||
| -32767
|
| -32767
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 <= '0'::int4;
|
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 <= int4 '0';
|
||||||
three | f1
|
three | f1
|
||||||
-----+------
|
-------+--------
|
||||||
| 0
|
| 0
|
||||||
| -1234
|
| -1234
|
||||||
| -32767
|
| -32767
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 > '0'::int2;
|
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 > int2 '0';
|
||||||
two | f1
|
two | f1
|
||||||
---+-----
|
-----+-------
|
||||||
| 1234
|
| 1234
|
||||||
| 32767
|
| 32767
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 > '0'::int4;
|
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 > int4 '0';
|
||||||
two | f1
|
two | f1
|
||||||
---+-----
|
-----+-------
|
||||||
| 1234
|
| 1234
|
||||||
| 32767
|
| 32767
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 >= '0'::int2;
|
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 >= int2 '0';
|
||||||
three | f1
|
three | f1
|
||||||
-----+-----
|
-------+-------
|
||||||
| 0
|
| 0
|
||||||
| 1234
|
| 1234
|
||||||
| 32767
|
| 32767
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 >= '0'::int4;
|
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 >= int4 '0';
|
||||||
three | f1
|
three | f1
|
||||||
-----+-----
|
-------+-------
|
||||||
| 0
|
| 0
|
||||||
| 1234
|
| 1234
|
||||||
| 32767
|
| 32767
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, i.* FROM INT2_TBL i WHERE (i.f1 % '2'::int2) = '1'::int2;
|
-- positive odds
|
||||||
|
SELECT '' AS one, i.* FROM INT2_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
|
||||||
one | f1
|
one | f1
|
||||||
---+-----
|
-----+-------
|
||||||
| 32767
|
| 32767
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, i.* FROM INT2_TBL i WHERE (i.f1 % '2'::int4) = '0'::int2;
|
-- any evens
|
||||||
|
SELECT '' AS three, i.* FROM INT2_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
|
||||||
three | f1
|
three | f1
|
||||||
-----+-----
|
-------+-------
|
||||||
| 0
|
| 0
|
||||||
| 1234
|
| 1234
|
||||||
| -1234
|
| -1234
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 * '2'::int2 AS x FROM INT2_TBL i;
|
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT2_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+------+-----
|
------+--------+-------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 1234 | 2468
|
| 1234 | 2468
|
||||||
| -1234 | -2468
|
| -1234 | -2468
|
||||||
@ -134,9 +143,9 @@ five| f1| x
|
|||||||
| -32767 | 2
|
| -32767 | 2
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 * '2'::int4 AS x FROM INT2_TBL i;
|
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT2_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+------+------
|
------+--------+--------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 1234 | 2468
|
| 1234 | 2468
|
||||||
| -1234 | -2468
|
| -1234 | -2468
|
||||||
@ -144,9 +153,9 @@ five| f1| x
|
|||||||
| -32767 | -65534
|
| -32767 | -65534
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 + '2'::int2 AS x FROM INT2_TBL i;
|
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT2_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+------+------
|
------+--------+--------
|
||||||
| 0 | 2
|
| 0 | 2
|
||||||
| 1234 | 1236
|
| 1234 | 1236
|
||||||
| -1234 | -1232
|
| -1234 | -1232
|
||||||
@ -154,9 +163,9 @@ five| f1| x
|
|||||||
| -32767 | -32765
|
| -32767 | -32765
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 + '2'::int4 AS x FROM INT2_TBL i;
|
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT2_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+------+------
|
------+--------+--------
|
||||||
| 0 | 2
|
| 0 | 2
|
||||||
| 1234 | 1236
|
| 1234 | 1236
|
||||||
| -1234 | -1232
|
| -1234 | -1232
|
||||||
@ -164,9 +173,9 @@ five| f1| x
|
|||||||
| -32767 | -32765
|
| -32767 | -32765
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 - '2'::int2 AS x FROM INT2_TBL i;
|
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT2_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+------+-----
|
------+--------+-------
|
||||||
| 0 | -2
|
| 0 | -2
|
||||||
| 1234 | 1232
|
| 1234 | 1232
|
||||||
| -1234 | -1236
|
| -1234 | -1236
|
||||||
@ -174,9 +183,9 @@ five| f1| x
|
|||||||
| -32767 | 32767
|
| -32767 | 32767
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 - '2'::int4 AS x FROM INT2_TBL i;
|
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT2_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+------+------
|
------+--------+--------
|
||||||
| 0 | -2
|
| 0 | -2
|
||||||
| 1234 | 1232
|
| 1234 | 1232
|
||||||
| -1234 | -1236
|
| -1234 | -1236
|
||||||
@ -184,9 +193,9 @@ five| f1| x
|
|||||||
| -32767 | -32769
|
| -32767 | -32769
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 / '2'::int2 AS x FROM INT2_TBL i;
|
SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT2_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+------+------
|
------+--------+--------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 1234 | 617
|
| 1234 | 617
|
||||||
| -1234 | -617
|
| -1234 | -617
|
||||||
@ -194,9 +203,9 @@ five| f1| x
|
|||||||
| -32767 | -16383
|
| -32767 | -16383
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 / '2'::int4 AS x FROM INT2_TBL i;
|
SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT2_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+------+------
|
------+--------+--------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 1234 | 617
|
| 1234 | 617
|
||||||
| -1234 | -617
|
| -1234 | -617
|
||||||
|
@ -1,18 +1,25 @@
|
|||||||
QUERY: CREATE TABLE INT4_TBL(f1 int4);
|
--
|
||||||
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('0');
|
-- INT4
|
||||||
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('123456');
|
-- WARNING: int4 operators never check for over/underflow!
|
||||||
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('-123456');
|
-- Some of these answers are consequently numerically incorrect.
|
||||||
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('34.5');
|
--
|
||||||
|
CREATE TABLE INT4_TBL(f1 int4);
|
||||||
|
INSERT INTO INT4_TBL(f1) VALUES ('0');
|
||||||
|
INSERT INTO INT4_TBL(f1) VALUES ('123456');
|
||||||
|
INSERT INTO INT4_TBL(f1) VALUES ('-123456');
|
||||||
|
INSERT INTO INT4_TBL(f1) VALUES ('34.5');
|
||||||
ERROR: pg_atoi: error in "34.5": can't parse ".5"
|
ERROR: pg_atoi: error in "34.5": can't parse ".5"
|
||||||
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('2147483647');
|
-- largest and smallest values
|
||||||
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('-2147483647');
|
INSERT INTO INT4_TBL(f1) VALUES ('2147483647');
|
||||||
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('1000000000000');
|
INSERT INTO INT4_TBL(f1) VALUES ('-2147483647');
|
||||||
|
-- bad input values -- should give warnings
|
||||||
|
INSERT INTO INT4_TBL(f1) VALUES ('1000000000000');
|
||||||
ERROR: pg_atoi: error reading "1000000000000": Numerical result out of range
|
ERROR: pg_atoi: error reading "1000000000000": Numerical result out of range
|
||||||
QUERY: INSERT INTO INT4_TBL(f1) VALUES ('asdf');
|
INSERT INTO INT4_TBL(f1) VALUES ('asdf');
|
||||||
ERROR: pg_atoi: error in "asdf": can't parse "asdf"
|
ERROR: pg_atoi: error in "asdf": can't parse "asdf"
|
||||||
QUERY: SELECT '' AS five, INT4_TBL.*;
|
SELECT '' AS five, INT4_TBL.*;
|
||||||
five | f1
|
five | f1
|
||||||
----+-----------
|
------+-------------
|
||||||
| 0
|
| 0
|
||||||
| 123456
|
| 123456
|
||||||
| -123456
|
| -123456
|
||||||
@ -20,113 +27,115 @@ five| f1
|
|||||||
| -2147483647
|
| -2147483647
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> '0'::int2;
|
SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int2 '0';
|
||||||
four | f1
|
four | f1
|
||||||
----+-----------
|
------+-------------
|
||||||
| 123456
|
| 123456
|
||||||
| -123456
|
| -123456
|
||||||
| 2147483647
|
| 2147483647
|
||||||
| -2147483647
|
| -2147483647
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> '0'::int4;
|
SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int4 '0';
|
||||||
four | f1
|
four | f1
|
||||||
----+-----------
|
------+-------------
|
||||||
| 123456
|
| 123456
|
||||||
| -123456
|
| -123456
|
||||||
| 2147483647
|
| 2147483647
|
||||||
| -2147483647
|
| -2147483647
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = '0'::int2;
|
SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int2 '0';
|
||||||
one | f1
|
one | f1
|
||||||
---+--
|
-----+----
|
||||||
| 0
|
| 0
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = '0'::int4;
|
SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int4 '0';
|
||||||
one | f1
|
one | f1
|
||||||
---+--
|
-----+----
|
||||||
| 0
|
| 0
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < '0'::int2;
|
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int2 '0';
|
||||||
two | f1
|
two | f1
|
||||||
---+-----------
|
-----+-------------
|
||||||
| -123456
|
| -123456
|
||||||
| -2147483647
|
| -2147483647
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < '0'::int4;
|
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int4 '0';
|
||||||
two | f1
|
two | f1
|
||||||
---+-----------
|
-----+-------------
|
||||||
| -123456
|
| -123456
|
||||||
| -2147483647
|
| -2147483647
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= '0'::int2;
|
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int2 '0';
|
||||||
three | f1
|
three | f1
|
||||||
-----+-----------
|
-------+-------------
|
||||||
| 0
|
| 0
|
||||||
| -123456
|
| -123456
|
||||||
| -2147483647
|
| -2147483647
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= '0'::int4;
|
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int4 '0';
|
||||||
three | f1
|
three | f1
|
||||||
-----+-----------
|
-------+-------------
|
||||||
| 0
|
| 0
|
||||||
| -123456
|
| -123456
|
||||||
| -2147483647
|
| -2147483647
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > '0'::int2;
|
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int2 '0';
|
||||||
two | f1
|
two | f1
|
||||||
---+----------
|
-----+------------
|
||||||
| 123456
|
| 123456
|
||||||
| 2147483647
|
| 2147483647
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > '0'::int4;
|
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int4 '0';
|
||||||
two | f1
|
two | f1
|
||||||
---+----------
|
-----+------------
|
||||||
| 123456
|
| 123456
|
||||||
| 2147483647
|
| 2147483647
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= '0'::int2;
|
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int2 '0';
|
||||||
three | f1
|
three | f1
|
||||||
-----+----------
|
-------+------------
|
||||||
| 0
|
| 0
|
||||||
| 123456
|
| 123456
|
||||||
| 2147483647
|
| 2147483647
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= '0'::int4;
|
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int4 '0';
|
||||||
three | f1
|
three | f1
|
||||||
-----+----------
|
-------+------------
|
||||||
| 0
|
| 0
|
||||||
| 123456
|
| 123456
|
||||||
| 2147483647
|
| 2147483647
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, i.* FROM INT4_TBL i WHERE (i.f1 % '2'::int2) = '1'::int2;
|
-- positive odds
|
||||||
|
SELECT '' AS one, i.* FROM INT4_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
|
||||||
one | f1
|
one | f1
|
||||||
---+----------
|
-----+------------
|
||||||
| 2147483647
|
| 2147483647
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, i.* FROM INT4_TBL i WHERE (i.f1 % '2'::int4) = '0'::int2;
|
-- any evens
|
||||||
|
SELECT '' AS three, i.* FROM INT4_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
|
||||||
three | f1
|
three | f1
|
||||||
-----+-------
|
-------+---------
|
||||||
| 0
|
| 0
|
||||||
| 123456
|
| 123456
|
||||||
| -123456
|
| -123456
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 * '2'::int2 AS x FROM INT4_TBL i;
|
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+-----------+-------
|
------+-------------+---------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 123456 | 246912
|
| 123456 | 246912
|
||||||
| -123456 | -246912
|
| -123456 | -246912
|
||||||
@ -134,9 +143,9 @@ five| f1| x
|
|||||||
| -2147483647 | 2
|
| -2147483647 | 2
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 * '2'::int4 AS x FROM INT4_TBL i;
|
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+-----------+-------
|
------+-------------+---------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 123456 | 246912
|
| 123456 | 246912
|
||||||
| -123456 | -246912
|
| -123456 | -246912
|
||||||
@ -144,9 +153,9 @@ five| f1| x
|
|||||||
| -2147483647 | 2
|
| -2147483647 | 2
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 + '2'::int2 AS x FROM INT4_TBL i;
|
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+-----------+-----------
|
------+-------------+-------------
|
||||||
| 0 | 2
|
| 0 | 2
|
||||||
| 123456 | 123458
|
| 123456 | 123458
|
||||||
| -123456 | -123454
|
| -123456 | -123454
|
||||||
@ -154,9 +163,9 @@ five| f1| x
|
|||||||
| -2147483647 | -2147483645
|
| -2147483647 | -2147483645
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 + '2'::int4 AS x FROM INT4_TBL i;
|
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+-----------+-----------
|
------+-------------+-------------
|
||||||
| 0 | 2
|
| 0 | 2
|
||||||
| 123456 | 123458
|
| 123456 | 123458
|
||||||
| -123456 | -123454
|
| -123456 | -123454
|
||||||
@ -164,9 +173,9 @@ five| f1| x
|
|||||||
| -2147483647 | -2147483645
|
| -2147483647 | -2147483645
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 - '2'::int2 AS x FROM INT4_TBL i;
|
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+-----------+----------
|
------+-------------+------------
|
||||||
| 0 | -2
|
| 0 | -2
|
||||||
| 123456 | 123454
|
| 123456 | 123454
|
||||||
| -123456 | -123458
|
| -123456 | -123458
|
||||||
@ -174,9 +183,9 @@ five| f1| x
|
|||||||
| -2147483647 | 2147483647
|
| -2147483647 | 2147483647
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 - '2'::int4 AS x FROM INT4_TBL i;
|
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+-----------+----------
|
------+-------------+------------
|
||||||
| 0 | -2
|
| 0 | -2
|
||||||
| 123456 | 123454
|
| 123456 | 123454
|
||||||
| -123456 | -123458
|
| -123456 | -123458
|
||||||
@ -184,9 +193,9 @@ five| f1| x
|
|||||||
| -2147483647 | 2147483647
|
| -2147483647 | 2147483647
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 / '2'::int2 AS x FROM INT4_TBL i;
|
SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT4_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+-----------+-----------
|
------+-------------+-------------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 123456 | 61728
|
| 123456 | 61728
|
||||||
| -123456 | -61728
|
| -123456 | -61728
|
||||||
@ -194,9 +203,9 @@ five| f1| x
|
|||||||
| -2147483647 | -1073741823
|
| -2147483647 | -1073741823
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, i.f1, i.f1 / '2'::int4 AS x FROM INT4_TBL i;
|
SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT4_TBL i;
|
||||||
five | f1 | x
|
five | f1 | x
|
||||||
----+-----------+-----------
|
------+-------------+-------------
|
||||||
| 0 | 0
|
| 0 | 0
|
||||||
| 123456 | 61728
|
| 123456 | 61728
|
||||||
| -123456 | -61728
|
| -123456 | -61728
|
||||||
@ -204,99 +213,103 @@ five| f1| x
|
|||||||
| -2147483647 | -1073741823
|
| -2147483647 | -1073741823
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT -2+3 AS one;
|
--
|
||||||
|
-- more complex expressions
|
||||||
|
--
|
||||||
|
-- variations on unary minus parsing
|
||||||
|
SELECT -2+3 AS one;
|
||||||
one
|
one
|
||||||
---
|
-----
|
||||||
1
|
1
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 4-2 AS two;
|
SELECT 4-2 AS two;
|
||||||
two
|
two
|
||||||
---
|
-----
|
||||||
2
|
2
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 2- -1 AS three;
|
SELECT 2- -1 AS three;
|
||||||
three
|
three
|
||||||
-----
|
-------
|
||||||
3
|
3
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 2 - -2 AS four;
|
SELECT 2 - -2 AS four;
|
||||||
four
|
four
|
||||||
----
|
------
|
||||||
4
|
4
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '2'::int2 * '2'::int2 = '16'::int2 / '4'::int2 AS true;
|
SELECT int2 '2' * int2 '2' = int2 '16' / int2 '4' AS true;
|
||||||
true
|
true
|
||||||
----
|
------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '2'::int4 * '2'::int2 = '16'::int2 / '4'::int4 AS true;
|
SELECT int4 '2' * int2 '2' = int2 '16' / int4 '4' AS true;
|
||||||
true
|
true
|
||||||
----
|
------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '2'::int2 * '2'::int4 = '16'::int4 / '4'::int2 AS true;
|
SELECT int2 '2' * int4 '2' = int4 '16' / int2 '4' AS true;
|
||||||
true
|
true
|
||||||
----
|
------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '1000'::int4 < '999'::int4 AS false;
|
SELECT int4 '1000' < int4 '999' AS false;
|
||||||
false
|
false
|
||||||
-----
|
-------
|
||||||
f
|
f
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 4! AS twenty_four;
|
SELECT 4! AS twenty_four;
|
||||||
twenty_four
|
twenty_four
|
||||||
-----------
|
-------------
|
||||||
24
|
24
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT !!3 AS six;
|
SELECT !!3 AS six;
|
||||||
six
|
six
|
||||||
---
|
-----
|
||||||
6
|
6
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
|
SELECT 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 AS ten;
|
||||||
ten
|
ten
|
||||||
---
|
-----
|
||||||
10
|
10
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 2 + 2 / 2 AS three;
|
SELECT 2 + 2 / 2 AS three;
|
||||||
three
|
three
|
||||||
-----
|
-------
|
||||||
3
|
3
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT (2 + 2) / 2 AS two;
|
SELECT (2 + 2) / 2 AS two;
|
||||||
two
|
two
|
||||||
---
|
-----
|
||||||
2
|
2
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT dsqrt('64'::float8) AS eight;
|
SELECT dsqrt(float8 '64') AS eight;
|
||||||
eight
|
eight
|
||||||
-----
|
-------
|
||||||
8
|
8
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT |/'64'::float8 AS eight;
|
SELECT |/float8 '64' AS eight;
|
||||||
eight
|
eight
|
||||||
-----
|
-------
|
||||||
8
|
8
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT ||/'27'::float8 AS three;
|
SELECT ||/float8 '27' AS three;
|
||||||
three
|
three
|
||||||
-----
|
-------
|
||||||
3
|
3
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
|
@ -1,12 +1,16 @@
|
|||||||
QUERY: CREATE TABLE INT8_TBL(q1 int8, q2 int8);
|
--
|
||||||
QUERY: INSERT INTO INT8_TBL VALUES('123','456');
|
-- INT8
|
||||||
QUERY: INSERT INTO INT8_TBL VALUES('123','4567890123456789');
|
-- Test int8 64-bit integers.
|
||||||
QUERY: INSERT INTO INT8_TBL VALUES('4567890123456789','123');
|
--
|
||||||
QUERY: INSERT INTO INT8_TBL VALUES('4567890123456789','4567890123456789');
|
CREATE TABLE INT8_TBL(q1 int8, q2 int8);
|
||||||
QUERY: INSERT INTO INT8_TBL VALUES('4567890123456789','-4567890123456789');
|
INSERT INTO INT8_TBL VALUES('123','456');
|
||||||
QUERY: SELECT * FROM INT8_TBL;
|
INSERT INTO INT8_TBL VALUES('123','4567890123456789');
|
||||||
|
INSERT INTO INT8_TBL VALUES('4567890123456789','123');
|
||||||
|
INSERT INTO INT8_TBL VALUES('4567890123456789','4567890123456789');
|
||||||
|
INSERT INTO INT8_TBL VALUES('4567890123456789','-4567890123456789');
|
||||||
|
SELECT * FROM INT8_TBL;
|
||||||
q1 | q2
|
q1 | q2
|
||||||
----------------+-----------------
|
------------------+-------------------
|
||||||
123 | 456
|
123 | 456
|
||||||
123 | 4567890123456789
|
123 | 4567890123456789
|
||||||
4567890123456789 | 123
|
4567890123456789 | 123
|
||||||
@ -14,9 +18,9 @@ QUERY: SELECT * FROM INT8_TBL;
|
|||||||
4567890123456789 | -4567890123456789
|
4567890123456789 | -4567890123456789
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, q1 AS plus, -q1 AS minus FROM INT8_TBL;
|
SELECT '' AS five, q1 AS plus, -q1 AS minus FROM INT8_TBL;
|
||||||
five | plus | minus
|
five | plus | minus
|
||||||
----+----------------+-----------------
|
------+------------------+-------------------
|
||||||
| 123 | -123
|
| 123 | -123
|
||||||
| 123 | -123
|
| 123 | -123
|
||||||
| 4567890123456789 | -4567890123456789
|
| 4567890123456789 | -4567890123456789
|
||||||
@ -24,9 +28,9 @@ five| plus| minus
|
|||||||
| 4567890123456789 | -4567890123456789
|
| 4567890123456789 | -4567890123456789
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, q1, q2, q1 + q2 AS plus FROM INT8_TBL;
|
SELECT '' AS five, q1, q2, q1 + q2 AS plus FROM INT8_TBL;
|
||||||
five | q1 | q2 | plus
|
five | q1 | q2 | plus
|
||||||
----+----------------+-----------------+----------------
|
------+------------------+-------------------+------------------
|
||||||
| 123 | 456 | 579
|
| 123 | 456 | 579
|
||||||
| 123 | 4567890123456789 | 4567890123456912
|
| 123 | 4567890123456789 | 4567890123456912
|
||||||
| 4567890123456789 | 123 | 4567890123456912
|
| 4567890123456789 | 123 | 4567890123456912
|
||||||
@ -34,9 +38,9 @@ five| q1| q2| plus
|
|||||||
| 4567890123456789 | -4567890123456789 | 0
|
| 4567890123456789 | -4567890123456789 | 0
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, q1, q2, q1 - q2 AS minus FROM INT8_TBL;
|
SELECT '' AS five, q1, q2, q1 - q2 AS minus FROM INT8_TBL;
|
||||||
five | q1 | q2 | minus
|
five | q1 | q2 | minus
|
||||||
----+----------------+-----------------+-----------------
|
------+------------------+-------------------+-------------------
|
||||||
| 123 | 456 | -333
|
| 123 | 456 | -333
|
||||||
| 123 | 4567890123456789 | -4567890123456666
|
| 123 | 4567890123456789 | -4567890123456666
|
||||||
| 4567890123456789 | 123 | 4567890123456666
|
| 4567890123456789 | 123 | 4567890123456666
|
||||||
@ -44,18 +48,18 @@ five| q1| q2| minus
|
|||||||
| 4567890123456789 | -4567890123456789 | 9135780246913578
|
| 4567890123456789 | -4567890123456789 | 9135780246913578
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, q1, q2, q1 * q2 AS multiply FROM INT8_TBL
|
SELECT '' AS three, q1, q2, q1 * q2 AS multiply FROM INT8_TBL
|
||||||
WHERE q1 < 1000 or (q2 > 0 and q2 < 1000);
|
WHERE q1 < 1000 or (q2 > 0 and q2 < 1000);
|
||||||
three | q1 | q2 | multiply
|
three | q1 | q2 | multiply
|
||||||
-----+----------------+----------------+------------------
|
-------+------------------+------------------+--------------------
|
||||||
| 123 | 456 | 56088
|
| 123 | 456 | 56088
|
||||||
| 123 | 4567890123456789 | 561850485185185047
|
| 123 | 4567890123456789 | 561850485185185047
|
||||||
| 4567890123456789 | 123 | 561850485185185047
|
| 4567890123456789 | 123 | 561850485185185047
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, q1, q2, q1 / q2 AS divide FROM INT8_TBL;
|
SELECT '' AS five, q1, q2, q1 / q2 AS divide FROM INT8_TBL;
|
||||||
five | q1 | q2 | divide
|
five | q1 | q2 | divide
|
||||||
----+----------------+-----------------+--------------
|
------+------------------+-------------------+----------------
|
||||||
| 123 | 456 | 0
|
| 123 | 456 | 0
|
||||||
| 123 | 4567890123456789 | 0
|
| 123 | 4567890123456789 | 0
|
||||||
| 4567890123456789 | 123 | 37137318076884
|
| 4567890123456789 | 123 | 37137318076884
|
||||||
@ -63,9 +67,9 @@ five| q1| q2| divide
|
|||||||
| 4567890123456789 | -4567890123456789 | -1
|
| 4567890123456789 | -4567890123456789 | -1
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, q1, float8(q1) FROM INT8_TBL;
|
SELECT '' AS five, q1, float8(q1) FROM INT8_TBL;
|
||||||
five | q1 | float8
|
five | q1 | float8
|
||||||
----+----------------+--------------------
|
------+------------------+----------------------
|
||||||
| 123 | 123
|
| 123 | 123
|
||||||
| 123 | 123
|
| 123 | 123
|
||||||
| 4567890123456789 | 4.56789012345679e+15
|
| 4567890123456789 | 4.56789012345679e+15
|
||||||
@ -73,9 +77,9 @@ five| q1|float8
|
|||||||
| 4567890123456789 | 4.56789012345679e+15
|
| 4567890123456789 | 4.56789012345679e+15
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, q2, float8(q2) FROM INT8_TBL;
|
SELECT '' AS five, q2, float8(q2) FROM INT8_TBL;
|
||||||
five | q2 | float8
|
five | q2 | float8
|
||||||
----+-----------------+---------------------
|
------+-------------------+-----------------------
|
||||||
| 456 | 456
|
| 456 | 456
|
||||||
| 4567890123456789 | 4.56789012345679e+15
|
| 4567890123456789 | 4.56789012345679e+15
|
||||||
| 123 | 123
|
| 123 | 123
|
||||||
@ -83,9 +87,9 @@ five| q2|float8
|
|||||||
| -4567890123456789 | -4.56789012345679e+15
|
| -4567890123456789 | -4.56789012345679e+15
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, q1, int8(float8(q1)) AS "two coercions" FROM INT8_TBL;
|
SELECT '' AS five, q1, int8(float8(q1)) AS "two coercions" FROM INT8_TBL;
|
||||||
five | q1 | two coercions
|
five | q1 | two coercions
|
||||||
----+----------------+----------------
|
------+------------------+------------------
|
||||||
| 123 | 123
|
| 123 | 123
|
||||||
| 123 | 123
|
| 123 | 123
|
||||||
| 4567890123456789 | 4567890123456789
|
| 4567890123456789 | 4567890123456789
|
||||||
@ -93,9 +97,9 @@ five| q1| two coercions
|
|||||||
| 4567890123456789 | 4567890123456789
|
| 4567890123456789 | 4567890123456789
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, 2 * q1 AS "twice int4" FROM INT8_TBL;
|
SELECT '' AS five, 2 * q1 AS "twice int4" FROM INT8_TBL;
|
||||||
five | twice int4
|
five | twice int4
|
||||||
----+----------------
|
------+------------------
|
||||||
| 246
|
| 246
|
||||||
| 246
|
| 246
|
||||||
| 9135780246913578
|
| 9135780246913578
|
||||||
@ -103,9 +107,9 @@ five| twice int4
|
|||||||
| 9135780246913578
|
| 9135780246913578
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, q1 * 2 AS "twice int4" FROM INT8_TBL;
|
SELECT '' AS five, q1 * 2 AS "twice int4" FROM INT8_TBL;
|
||||||
five | twice int4
|
five | twice int4
|
||||||
----+----------------
|
------+------------------
|
||||||
| 246
|
| 246
|
||||||
| 246
|
| 246
|
||||||
| 9135780246913578
|
| 9135780246913578
|
||||||
|
@ -1,26 +1,34 @@
|
|||||||
QUERY: SELECT 'name string'::name = 'name string'::name AS "True";
|
--
|
||||||
|
-- NAME
|
||||||
|
-- all inputs are silently truncated at NAMEDATALEN (32) characters
|
||||||
|
--
|
||||||
|
-- fixed-length by reference
|
||||||
|
SELECT name 'name string' = name 'name string' AS "True";
|
||||||
True
|
True
|
||||||
----
|
------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 'name string'::name = 'name string '::name AS "False";
|
SELECT name 'name string' = name 'name string ' AS "False";
|
||||||
False
|
False
|
||||||
-----
|
-------
|
||||||
f
|
f
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: CREATE TABLE NAME_TBL(f1 name);
|
--
|
||||||
QUERY: INSERT INTO NAME_TBL(f1) VALUES ('ABCDEFGHIJKLMNOP');
|
--
|
||||||
QUERY: INSERT INTO NAME_TBL(f1) VALUES ('abcdefghijklmnop');
|
--
|
||||||
QUERY: INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;');
|
CREATE TABLE NAME_TBL(f1 name);
|
||||||
QUERY: INSERT INTO NAME_TBL(f1) VALUES ('343f%2a');
|
INSERT INTO NAME_TBL(f1) VALUES ('ABCDEFGHIJKLMNOP');
|
||||||
QUERY: INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf');
|
INSERT INTO NAME_TBL(f1) VALUES ('abcdefghijklmnop');
|
||||||
QUERY: INSERT INTO NAME_TBL(f1) VALUES ('');
|
INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;');
|
||||||
QUERY: INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ');
|
INSERT INTO NAME_TBL(f1) VALUES ('343f%2a');
|
||||||
QUERY: SELECT '' AS seven, NAME_TBL.*;
|
INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf');
|
||||||
|
INSERT INTO NAME_TBL(f1) VALUES ('');
|
||||||
|
INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ');
|
||||||
|
SELECT '' AS seven, NAME_TBL.*;
|
||||||
seven | f1
|
seven | f1
|
||||||
-----+-------------------------------
|
-------+---------------------------------
|
||||||
| ABCDEFGHIJKLMNOP
|
| ABCDEFGHIJKLMNOP
|
||||||
| abcdefghijklmnop
|
| abcdefghijklmnop
|
||||||
| asdfghjkl;
|
| asdfghjkl;
|
||||||
@ -30,9 +38,9 @@ seven|f1
|
|||||||
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
||||||
(7 rows)
|
(7 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> 'ABCDEFGHIJKLMNOP';
|
SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> 'ABCDEFGHIJKLMNOP';
|
||||||
six | f1
|
six | f1
|
||||||
---+-------------------------------
|
-----+---------------------------------
|
||||||
| abcdefghijklmnop
|
| abcdefghijklmnop
|
||||||
| asdfghjkl;
|
| asdfghjkl;
|
||||||
| 343f%2a
|
| 343f%2a
|
||||||
@ -41,49 +49,49 @@ six|f1
|
|||||||
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
||||||
(6 rows)
|
(6 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = 'ABCDEFGHIJKLMNOP';
|
SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = 'ABCDEFGHIJKLMNOP';
|
||||||
one | f1
|
one | f1
|
||||||
---+----------------
|
-----+------------------
|
||||||
| ABCDEFGHIJKLMNOP
|
| ABCDEFGHIJKLMNOP
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < 'ABCDEFGHIJKLMNOP';
|
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < 'ABCDEFGHIJKLMNOP';
|
||||||
three | f1
|
three | f1
|
||||||
-----+-------------------------------
|
-------+---------------------------------
|
||||||
| 343f%2a
|
| 343f%2a
|
||||||
|
|
|
|
||||||
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= 'ABCDEFGHIJKLMNOP';
|
SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= 'ABCDEFGHIJKLMNOP';
|
||||||
four | f1
|
four | f1
|
||||||
----+-------------------------------
|
------+---------------------------------
|
||||||
| ABCDEFGHIJKLMNOP
|
| ABCDEFGHIJKLMNOP
|
||||||
| 343f%2a
|
| 343f%2a
|
||||||
|
|
|
|
||||||
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > 'ABCDEFGHIJKLMNOP';
|
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > 'ABCDEFGHIJKLMNOP';
|
||||||
three | f1
|
three | f1
|
||||||
-----+----------------
|
-------+------------------
|
||||||
| abcdefghijklmnop
|
| abcdefghijklmnop
|
||||||
| asdfghjkl;
|
| asdfghjkl;
|
||||||
| d34aaasdf
|
| d34aaasdf
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= 'ABCDEFGHIJKLMNOP';
|
SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= 'ABCDEFGHIJKLMNOP';
|
||||||
four | f1
|
four | f1
|
||||||
----+----------------
|
------+------------------
|
||||||
| ABCDEFGHIJKLMNOP
|
| ABCDEFGHIJKLMNOP
|
||||||
| abcdefghijklmnop
|
| abcdefghijklmnop
|
||||||
| asdfghjkl;
|
| asdfghjkl;
|
||||||
| d34aaasdf
|
| d34aaasdf
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
|
SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
|
||||||
seven | f1
|
seven | f1
|
||||||
-----+-------------------------------
|
-------+---------------------------------
|
||||||
| ABCDEFGHIJKLMNOP
|
| ABCDEFGHIJKLMNOP
|
||||||
| abcdefghijklmnop
|
| abcdefghijklmnop
|
||||||
| asdfghjkl;
|
| asdfghjkl;
|
||||||
@ -93,24 +101,24 @@ seven|f1
|
|||||||
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
||||||
(7 rows)
|
(7 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
|
SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
|
||||||
zero | f1
|
zero | f1
|
||||||
----+--
|
------+----
|
||||||
(0 rows)
|
(0 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
|
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
|
||||||
three | f1
|
three | f1
|
||||||
-----+-------------------------------
|
-------+---------------------------------
|
||||||
| 343f%2a
|
| 343f%2a
|
||||||
| d34aaasdf
|
| d34aaasdf
|
||||||
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
| 1234567890ABCDEFGHIJKLMNOPQRSTU
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
|
SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
|
||||||
two | f1
|
two | f1
|
||||||
---+----------
|
-----+------------
|
||||||
| asdfghjkl;
|
| asdfghjkl;
|
||||||
| d34aaasdf
|
| d34aaasdf
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: DROP TABLE NAME_TBL;
|
DROP TABLE NAME_TBL;
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
QUERY: CREATE TABLE OID_TBL(f1 oid);
|
--
|
||||||
QUERY: INSERT INTO OID_TBL(f1) VALUES ('1234');
|
-- OID
|
||||||
QUERY: INSERT INTO OID_TBL(f1) VALUES ('1235');
|
--
|
||||||
QUERY: INSERT INTO OID_TBL(f1) VALUES ('987');
|
CREATE TABLE OID_TBL(f1 oid);
|
||||||
QUERY: INSERT INTO OID_TBL(f1) VALUES ('-1040');
|
INSERT INTO OID_TBL(f1) VALUES ('1234');
|
||||||
QUERY: INSERT INTO OID_TBL(f1) VALUES ('');
|
INSERT INTO OID_TBL(f1) VALUES ('1235');
|
||||||
QUERY: INSERT INTO OID_TBL(f1) VALUES ('asdfasd');
|
INSERT INTO OID_TBL(f1) VALUES ('987');
|
||||||
|
INSERT INTO OID_TBL(f1) VALUES ('-1040');
|
||||||
|
INSERT INTO OID_TBL(f1) VALUES ('');
|
||||||
|
-- bad inputs
|
||||||
|
INSERT INTO OID_TBL(f1) VALUES ('asdfasd');
|
||||||
ERROR: pg_atoi: error in "asdfasd": can't parse "asdfasd"
|
ERROR: pg_atoi: error in "asdfasd": can't parse "asdfasd"
|
||||||
QUERY: SELECT '' AS five, OID_TBL.*;
|
SELECT '' AS five, OID_TBL.*;
|
||||||
five | f1
|
five | f1
|
||||||
----+-----
|
------+-------
|
||||||
| 1234
|
| 1234
|
||||||
| 1235
|
| 1235
|
||||||
| 987
|
| 987
|
||||||
@ -16,49 +20,49 @@ five| f1
|
|||||||
| 0
|
| 0
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, o.* FROM OID_TBL o WHERE o.f1 = '1234'::oid;
|
SELECT '' AS one, o.* FROM OID_TBL o WHERE o.f1 = oid '1234';
|
||||||
one | f1
|
one | f1
|
||||||
---+----
|
-----+------
|
||||||
| 1234
|
| 1234
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, o.* FROM OID_TBL o WHERE o.f1 <> '1234';
|
SELECT '' AS four, o.* FROM OID_TBL o WHERE o.f1 <> '1234';
|
||||||
four | f1
|
four | f1
|
||||||
----+-----
|
------+-------
|
||||||
| 1235
|
| 1235
|
||||||
| 987
|
| 987
|
||||||
| -1040
|
| -1040
|
||||||
| 0
|
| 0
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS four, o.* FROM OID_TBL o WHERE o.f1 <= '1234';
|
SELECT '' AS four, o.* FROM OID_TBL o WHERE o.f1 <= '1234';
|
||||||
four | f1
|
four | f1
|
||||||
----+-----
|
------+-------
|
||||||
| 1234
|
| 1234
|
||||||
| 987
|
| 987
|
||||||
| -1040
|
| -1040
|
||||||
| 0
|
| 0
|
||||||
(4 rows)
|
(4 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS three, o.* FROM OID_TBL o WHERE o.f1 < '1234';
|
SELECT '' AS three, o.* FROM OID_TBL o WHERE o.f1 < '1234';
|
||||||
three | f1
|
three | f1
|
||||||
-----+-----
|
-------+-------
|
||||||
| 987
|
| 987
|
||||||
| -1040
|
| -1040
|
||||||
| 0
|
| 0
|
||||||
(3 rows)
|
(3 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, o.* FROM OID_TBL o WHERE o.f1 >= '1234';
|
SELECT '' AS two, o.* FROM OID_TBL o WHERE o.f1 >= '1234';
|
||||||
two | f1
|
two | f1
|
||||||
---+----
|
-----+------
|
||||||
| 1234
|
| 1234
|
||||||
| 1235
|
| 1235
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, o.* FROM OID_TBL o WHERE o.f1 > '1234';
|
SELECT '' AS one, o.* FROM OID_TBL o WHERE o.f1 > '1234';
|
||||||
one | f1
|
one | f1
|
||||||
---+----
|
-----+------
|
||||||
| 1235
|
| 1235
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: DROP TABLE OID_TBL;
|
DROP TABLE OID_TBL;
|
||||||
|
@ -1,21 +1,24 @@
|
|||||||
QUERY: SELECT 'this is a text string'::text = 'this is a text string'::text AS true;
|
--
|
||||||
|
-- TEXT
|
||||||
|
--
|
||||||
|
SELECT text 'this is a text string' = text 'this is a text string' AS true;
|
||||||
true
|
true
|
||||||
----
|
------
|
||||||
t
|
t
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT 'this is a text string'::text = 'this is a text strin'::text AS false;
|
SELECT text 'this is a text string' = text 'this is a text strin' AS false;
|
||||||
false
|
false
|
||||||
-----
|
-------
|
||||||
f
|
f
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: CREATE TABLE TEXT_TBL (f1 text);
|
CREATE TABLE TEXT_TBL (f1 text);
|
||||||
QUERY: INSERT INTO TEXT_TBL VALUES ('doh!');
|
INSERT INTO TEXT_TBL VALUES ('doh!');
|
||||||
QUERY: INSERT INTO TEXT_TBL VALUES ('hi de ho neighbor');
|
INSERT INTO TEXT_TBL VALUES ('hi de ho neighbor');
|
||||||
QUERY: SELECT '' AS two, * FROM TEXT_TBL;
|
SELECT '' AS two, * FROM TEXT_TBL;
|
||||||
two | f1
|
two | f1
|
||||||
---+-----------------
|
-----+-------------------
|
||||||
| doh!
|
| doh!
|
||||||
| hi de ho neighbor
|
| hi de ho neighbor
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
@ -1,14 +1,20 @@
|
|||||||
QUERY: CREATE TABLE VARCHAR_TBL(f1 varchar(1));
|
--
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
|
-- VARCHAR
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('A');
|
--
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('1');
|
CREATE TABLE VARCHAR_TBL(f1 varchar(1));
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES (2);
|
INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('3');
|
INSERT INTO VARCHAR_TBL (f1) VALUES ('A');
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('');
|
-- any of the following three input formats are acceptable
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
|
INSERT INTO VARCHAR_TBL (f1) VALUES ('1');
|
||||||
QUERY: SELECT '' AS seven, VARCHAR_TBL.*;
|
INSERT INTO VARCHAR_TBL (f1) VALUES (2);
|
||||||
|
INSERT INTO VARCHAR_TBL (f1) VALUES ('3');
|
||||||
|
-- zero-length char
|
||||||
|
INSERT INTO VARCHAR_TBL (f1) VALUES ('');
|
||||||
|
-- try varchar's of greater than 1 length
|
||||||
|
INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
|
||||||
|
SELECT '' AS seven, VARCHAR_TBL.*;
|
||||||
seven | f1
|
seven | f1
|
||||||
-----+--
|
-------+----
|
||||||
| a
|
| a
|
||||||
| A
|
| A
|
||||||
| 1
|
| 1
|
||||||
@ -18,11 +24,11 @@ seven|f1
|
|||||||
| c
|
| c
|
||||||
(7 rows)
|
(7 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS six, c.*
|
SELECT '' AS six, c.*
|
||||||
FROM VARCHAR_TBL c
|
FROM VARCHAR_TBL c
|
||||||
WHERE c.f1 <> 'a';
|
WHERE c.f1 <> 'a';
|
||||||
six | f1
|
six | f1
|
||||||
---+--
|
-----+----
|
||||||
| A
|
| A
|
||||||
| 1
|
| 1
|
||||||
| 2
|
| 2
|
||||||
@ -31,19 +37,19 @@ six|f1
|
|||||||
| c
|
| c
|
||||||
(6 rows)
|
(6 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, c.*
|
SELECT '' AS one, c.*
|
||||||
FROM VARCHAR_TBL c
|
FROM VARCHAR_TBL c
|
||||||
WHERE c.f1 = 'a';
|
WHERE c.f1 = 'a';
|
||||||
one | f1
|
one | f1
|
||||||
---+--
|
-----+----
|
||||||
| a
|
| a
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS five, c.*
|
SELECT '' AS five, c.*
|
||||||
FROM VARCHAR_TBL c
|
FROM VARCHAR_TBL c
|
||||||
WHERE c.f1 < 'a';
|
WHERE c.f1 < 'a';
|
||||||
five | f1
|
five | f1
|
||||||
----+--
|
------+----
|
||||||
| A
|
| A
|
||||||
| 1
|
| 1
|
||||||
| 2
|
| 2
|
||||||
@ -51,11 +57,11 @@ five|f1
|
|||||||
|
|
|
|
||||||
(5 rows)
|
(5 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS six, c.*
|
SELECT '' AS six, c.*
|
||||||
FROM VARCHAR_TBL c
|
FROM VARCHAR_TBL c
|
||||||
WHERE c.f1 <= 'a';
|
WHERE c.f1 <= 'a';
|
||||||
six | f1
|
six | f1
|
||||||
---+--
|
-----+----
|
||||||
| a
|
| a
|
||||||
| A
|
| A
|
||||||
| 1
|
| 1
|
||||||
@ -64,32 +70,35 @@ six|f1
|
|||||||
|
|
|
|
||||||
(6 rows)
|
(6 rows)
|
||||||
|
|
||||||
QUERY: SELECT '' AS one, c.*
|
SELECT '' AS one, c.*
|
||||||
FROM VARCHAR_TBL c
|
FROM VARCHAR_TBL c
|
||||||
WHERE c.f1 > 'a';
|
WHERE c.f1 > 'a';
|
||||||
one | f1
|
one | f1
|
||||||
---+--
|
-----+----
|
||||||
| c
|
| c
|
||||||
(1 row)
|
(1 row)
|
||||||
|
|
||||||
QUERY: SELECT '' AS two, c.*
|
SELECT '' AS two, c.*
|
||||||
FROM VARCHAR_TBL c
|
FROM VARCHAR_TBL c
|
||||||
WHERE c.f1 >= 'a';
|
WHERE c.f1 >= 'a';
|
||||||
two | f1
|
two | f1
|
||||||
---+--
|
-----+----
|
||||||
| a
|
| a
|
||||||
| c
|
| c
|
||||||
(2 rows)
|
(2 rows)
|
||||||
|
|
||||||
QUERY: DROP TABLE VARCHAR_TBL;
|
DROP TABLE VARCHAR_TBL;
|
||||||
QUERY: CREATE TABLE VARCHAR_TBL(f1 varchar(4));
|
--
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
|
-- Now test longer arrays of char
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('ab');
|
--
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
|
CREATE TABLE VARCHAR_TBL(f1 varchar(4));
|
||||||
QUERY: INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
|
INSERT INTO VARCHAR_TBL (f1) VALUES ('a');
|
||||||
QUERY: SELECT '' AS four, VARCHAR_TBL.*;
|
INSERT INTO VARCHAR_TBL (f1) VALUES ('ab');
|
||||||
|
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
|
||||||
|
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
|
||||||
|
SELECT '' AS four, VARCHAR_TBL.*;
|
||||||
four | f1
|
four | f1
|
||||||
----+----
|
------+------
|
||||||
| a
|
| a
|
||||||
| ab
|
| ab
|
||||||
| abcd
|
| abcd
|
||||||
|
Reference in New Issue
Block a user