Clean up ancient test style

Many older tests where written in a style like

    SELECT '' AS two, i.* FROM INT2_TBL

where the first column indicated the number of expected result rows.
This has gotten increasingly out of date, as the test data fixtures
have expanded, so a lot of these were wrong and misleading.  Moreover,
this style isn't really necessary, since the psql output already shows
the number of result rows.

To clean this up, remove all those extra columns.

Discussion: https://www.postgresql.org/message-id/flat/1a25312b-2686-380d-3c67-7a69094a999f%40enterprisedb.com
This commit is contained in:
Peter Eisentraut 2020-12-15 21:54:06 +01:00
parent b3817f5f77
commit c06d6aa4c3
61 changed files with 9225 additions and 9225 deletions

View File

@ -226,48 +226,48 @@ INSERT INTO BOOLTBL1 (f1) VALUES (bool 't');
INSERT INTO BOOLTBL1 (f1) VALUES (bool 'True');
INSERT INTO BOOLTBL1 (f1) VALUES (bool 'true');
-- BOOLTBL1 should be full of true's at this point
SELECT '' AS t_3, BOOLTBL1.* FROM BOOLTBL1;
t_3 | f1
-----+----
| t
| t
| t
SELECT BOOLTBL1.* FROM BOOLTBL1;
f1
----
t
t
t
(3 rows)
SELECT '' AS t_3, BOOLTBL1.*
SELECT BOOLTBL1.*
FROM BOOLTBL1
WHERE f1 = bool 'true';
t_3 | f1
-----+----
| t
| t
| t
f1
----
t
t
t
(3 rows)
SELECT '' AS t_3, BOOLTBL1.*
SELECT BOOLTBL1.*
FROM BOOLTBL1
WHERE f1 <> bool 'false';
t_3 | f1
-----+----
| t
| t
| t
f1
----
t
t
t
(3 rows)
SELECT '' AS zero, BOOLTBL1.*
SELECT BOOLTBL1.*
FROM BOOLTBL1
WHERE booleq(bool 'false', f1);
zero | f1
------+----
f1
----
(0 rows)
INSERT INTO BOOLTBL1 (f1) VALUES (bool 'f');
SELECT '' AS f_1, BOOLTBL1.*
SELECT BOOLTBL1.*
FROM BOOLTBL1
WHERE f1 = bool 'false';
f_1 | f1
-----+----
| f
f1
----
f
(1 row)
CREATE TABLE BOOLTBL2 (f1 bool);
@ -283,86 +283,86 @@ ERROR: invalid input syntax for type boolean: "XXX"
LINE 2: VALUES (bool 'XXX');
^
-- BOOLTBL2 should be full of false's at this point
SELECT '' AS f_4, BOOLTBL2.* FROM BOOLTBL2;
f_4 | f1
-----+----
| f
| f
| f
| f
SELECT BOOLTBL2.* FROM BOOLTBL2;
f1
----
f
f
f
f
(4 rows)
SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
SELECT BOOLTBL1.*, BOOLTBL2.*
FROM BOOLTBL1, BOOLTBL2
WHERE BOOLTBL2.f1 <> BOOLTBL1.f1;
tf_12 | f1 | f1
-------+----+----
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
f1 | f1
----+----
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
(12 rows)
SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
SELECT BOOLTBL1.*, BOOLTBL2.*
FROM BOOLTBL1, BOOLTBL2
WHERE boolne(BOOLTBL2.f1,BOOLTBL1.f1);
tf_12 | f1 | f1
-------+----+----
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
f1 | f1
----+----
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
(12 rows)
SELECT '' AS ff_4, BOOLTBL1.*, BOOLTBL2.*
SELECT BOOLTBL1.*, BOOLTBL2.*
FROM BOOLTBL1, BOOLTBL2
WHERE BOOLTBL2.f1 = BOOLTBL1.f1 and BOOLTBL1.f1 = bool 'false';
ff_4 | f1 | f1
------+----+----
| f | f
| f | f
| f | f
| f | f
f1 | f1
----+----
f | f
f | f
f | f
f | f
(4 rows)
SELECT '' AS tf_12_ff_4, BOOLTBL1.*, BOOLTBL2.*
SELECT BOOLTBL1.*, BOOLTBL2.*
FROM BOOLTBL1, BOOLTBL2
WHERE BOOLTBL2.f1 = BOOLTBL1.f1 or BOOLTBL1.f1 = bool 'true'
ORDER BY BOOLTBL1.f1, BOOLTBL2.f1;
tf_12_ff_4 | f1 | f1
------------+----+----
| f | f
| f | f
| f | f
| f | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
| t | f
f1 | f1
----+----
f | f
f | f
f | f
f | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
t | f
(16 rows)
--
@ -370,76 +370,76 @@ SELECT '' AS tf_12_ff_4, BOOLTBL1.*, BOOLTBL2.*
-- Try all combinations to ensure that we get nothing when we expect nothing
-- - thomas 2000-01-04
--
SELECT '' AS "True", f1
SELECT f1
FROM BOOLTBL1
WHERE f1 IS TRUE;
True | f1
------+----
| t
| t
| t
f1
----
t
t
t
(3 rows)
SELECT '' AS "Not False", f1
SELECT f1
FROM BOOLTBL1
WHERE f1 IS NOT FALSE;
Not False | f1
-----------+----
| t
| t
| t
f1
----
t
t
t
(3 rows)
SELECT '' AS "False", f1
SELECT f1
FROM BOOLTBL1
WHERE f1 IS FALSE;
False | f1
-------+----
| f
f1
----
f
(1 row)
SELECT '' AS "Not True", f1
SELECT f1
FROM BOOLTBL1
WHERE f1 IS NOT TRUE;
Not True | f1
----------+----
| f
f1
----
f
(1 row)
SELECT '' AS "True", f1
SELECT f1
FROM BOOLTBL2
WHERE f1 IS TRUE;
True | f1
------+----
f1
----
(0 rows)
SELECT '' AS "Not False", f1
SELECT f1
FROM BOOLTBL2
WHERE f1 IS NOT FALSE;
Not False | f1
-----------+----
f1
----
(0 rows)
SELECT '' AS "False", f1
SELECT f1
FROM BOOLTBL2
WHERE f1 IS FALSE;
False | f1
-------+----
| f
| f
| f
| f
f1
----
f
f
f
f
(4 rows)
SELECT '' AS "Not True", f1
SELECT f1
FROM BOOLTBL2
WHERE f1 IS NOT TRUE;
Not True | f1
----------+----
| f
| f
| f
| f
f1
----
f
f
f
f
(4 rows)
--

View File

@ -44,197 +44,197 @@ INSERT INTO BOX_TBL (f1) VALUES ('asdfasdf(ad');
ERROR: invalid input syntax for type box: "asdfasdf(ad"
LINE 1: INSERT INTO BOX_TBL (f1) VALUES ('asdfasdf(ad');
^
SELECT '' AS four, * FROM BOX_TBL;
four | f1
------+---------------------
| (2,2),(0,0)
| (3,3),(1,1)
| (-2,2),(-8,-10)
| (2.5,3.5),(2.5,2.5)
| (3,3),(3,3)
SELECT * FROM BOX_TBL;
f1
---------------------
(2,2),(0,0)
(3,3),(1,1)
(-2,2),(-8,-10)
(2.5,3.5),(2.5,2.5)
(3,3),(3,3)
(5 rows)
SELECT '' AS four, b.*, area(b.f1) as barea
SELECT b.*, area(b.f1) as barea
FROM BOX_TBL b;
four | f1 | barea
------+---------------------+-------
| (2,2),(0,0) | 4
| (3,3),(1,1) | 4
| (-2,2),(-8,-10) | 72
| (2.5,3.5),(2.5,2.5) | 0
| (3,3),(3,3) | 0
f1 | barea
---------------------+-------
(2,2),(0,0) | 4
(3,3),(1,1) | 4
(-2,2),(-8,-10) | 72
(2.5,3.5),(2.5,2.5) | 0
(3,3),(3,3) | 0
(5 rows)
-- overlap
SELECT '' AS three, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 && box '(2.5,2.5,1.0,1.0)';
three | f1
-------+---------------------
| (2,2),(0,0)
| (3,3),(1,1)
| (2.5,3.5),(2.5,2.5)
f1
---------------------
(2,2),(0,0)
(3,3),(1,1)
(2.5,3.5),(2.5,2.5)
(3 rows)
-- left-or-overlap (x only)
SELECT '' AS two, b1.*
SELECT b1.*
FROM BOX_TBL b1
WHERE b1.f1 &< box '(2.0,2.0,2.5,2.5)';
two | f1
-----+---------------------
| (2,2),(0,0)
| (-2,2),(-8,-10)
| (2.5,3.5),(2.5,2.5)
f1
---------------------
(2,2),(0,0)
(-2,2),(-8,-10)
(2.5,3.5),(2.5,2.5)
(3 rows)
-- right-or-overlap (x only)
SELECT '' AS two, b1.*
SELECT b1.*
FROM BOX_TBL b1
WHERE b1.f1 &> box '(2.0,2.0,2.5,2.5)';
two | f1
-----+---------------------
| (2.5,3.5),(2.5,2.5)
| (3,3),(3,3)
f1
---------------------
(2.5,3.5),(2.5,2.5)
(3,3),(3,3)
(2 rows)
-- left of
SELECT '' AS two, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 << box '(3.0,3.0,5.0,5.0)';
two | f1
-----+---------------------
| (2,2),(0,0)
| (-2,2),(-8,-10)
| (2.5,3.5),(2.5,2.5)
f1
---------------------
(2,2),(0,0)
(-2,2),(-8,-10)
(2.5,3.5),(2.5,2.5)
(3 rows)
-- area <=
SELECT '' AS four, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 <= box '(3.0,3.0,5.0,5.0)';
four | f1
------+---------------------
| (2,2),(0,0)
| (3,3),(1,1)
| (2.5,3.5),(2.5,2.5)
| (3,3),(3,3)
f1
---------------------
(2,2),(0,0)
(3,3),(1,1)
(2.5,3.5),(2.5,2.5)
(3,3),(3,3)
(4 rows)
-- area <
SELECT '' AS two, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 < box '(3.0,3.0,5.0,5.0)';
two | f1
-----+---------------------
| (2.5,3.5),(2.5,2.5)
| (3,3),(3,3)
f1
---------------------
(2.5,3.5),(2.5,2.5)
(3,3),(3,3)
(2 rows)
-- area =
SELECT '' AS two, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 = box '(3.0,3.0,5.0,5.0)';
two | f1
-----+-------------
| (2,2),(0,0)
| (3,3),(1,1)
f1
-------------
(2,2),(0,0)
(3,3),(1,1)
(2 rows)
-- area >
SELECT '' AS two, b.f1
SELECT b.f1
FROM BOX_TBL b -- zero area
WHERE b.f1 > box '(3.5,3.0,4.5,3.0)';
two | f1
-----+-----------------
| (2,2),(0,0)
| (3,3),(1,1)
| (-2,2),(-8,-10)
f1
-----------------
(2,2),(0,0)
(3,3),(1,1)
(-2,2),(-8,-10)
(3 rows)
-- area >=
SELECT '' AS four, b.f1
SELECT b.f1
FROM BOX_TBL b -- zero area
WHERE b.f1 >= box '(3.5,3.0,4.5,3.0)';
four | f1
------+---------------------
| (2,2),(0,0)
| (3,3),(1,1)
| (-2,2),(-8,-10)
| (2.5,3.5),(2.5,2.5)
| (3,3),(3,3)
f1
---------------------
(2,2),(0,0)
(3,3),(1,1)
(-2,2),(-8,-10)
(2.5,3.5),(2.5,2.5)
(3,3),(3,3)
(5 rows)
-- right of
SELECT '' AS two, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE box '(3.0,3.0,5.0,5.0)' >> b.f1;
two | f1
-----+---------------------
| (2,2),(0,0)
| (-2,2),(-8,-10)
| (2.5,3.5),(2.5,2.5)
f1
---------------------
(2,2),(0,0)
(-2,2),(-8,-10)
(2.5,3.5),(2.5,2.5)
(3 rows)
-- contained in
SELECT '' AS three, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 <@ box '(0,0,3,3)';
three | f1
-------+-------------
| (2,2),(0,0)
| (3,3),(1,1)
| (3,3),(3,3)
f1
-------------
(2,2),(0,0)
(3,3),(1,1)
(3,3),(3,3)
(3 rows)
-- contains
SELECT '' AS three, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE box '(0,0,3,3)' @> b.f1;
three | f1
-------+-------------
| (2,2),(0,0)
| (3,3),(1,1)
| (3,3),(3,3)
f1
-------------
(2,2),(0,0)
(3,3),(1,1)
(3,3),(3,3)
(3 rows)
-- box equality
SELECT '' AS one, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE box '(1,1,3,3)' ~= b.f1;
one | f1
-----+-------------
| (3,3),(1,1)
f1
-------------
(3,3),(1,1)
(1 row)
-- center of box, left unary operator
SELECT '' AS four, @@(b1.f1) AS p
SELECT @@(b1.f1) AS p
FROM BOX_TBL b1;
four | p
------+---------
| (1,1)
| (2,2)
| (-5,-4)
| (2.5,3)
| (3,3)
p
---------
(1,1)
(2,2)
(-5,-4)
(2.5,3)
(3,3)
(5 rows)
-- wholly-contained
SELECT '' AS one, b1.*, b2.*
SELECT b1.*, b2.*
FROM BOX_TBL b1, BOX_TBL b2
WHERE b1.f1 @> b2.f1 and not b1.f1 ~= b2.f1;
one | f1 | f1
-----+-------------+-------------
| (3,3),(1,1) | (3,3),(3,3)
f1 | f1
-------------+-------------
(3,3),(1,1) | (3,3),(3,3)
(1 row)
SELECT '' AS four, height(f1), width(f1) FROM BOX_TBL;
four | height | width
------+--------+-------
| 2 | 2
| 2 | 2
| 12 | 6
| 1 | 0
| 0 | 0
SELECT height(f1), width(f1) FROM BOX_TBL;
height | width
--------+-------
2 | 2
2 | 2
12 | 6
1 | 0
0 | 0
(5 rows)
--

View File

@ -107,33 +107,33 @@ SELECT CASE 'a' WHEN 'a' THEN 1 ELSE 2 END;
--
-- Examples of targets involving tables
--
SELECT '' AS "Five",
SELECT
CASE
WHEN i >= 3 THEN i
END AS ">= 3 or Null"
FROM CASE_TBL;
Five | >= 3 or Null
------+--------------
|
|
| 3
| 4
>= 3 or Null
--------------
3
4
(4 rows)
SELECT '' AS "Five",
SELECT
CASE WHEN i >= 3 THEN (i + i)
ELSE i
END AS "Simplest Math"
FROM CASE_TBL;
Five | Simplest Math
------+---------------
| 1
| 2
| 6
| 8
Simplest Math
---------------
1
2
6
8
(4 rows)
SELECT '' AS "Five", i AS "Value",
SELECT i AS "Value",
CASE WHEN (i < 0) THEN 'small'
WHEN (i = 0) THEN 'zero'
WHEN (i = 1) THEN 'one'
@ -141,15 +141,15 @@ SELECT '' AS "Five", i AS "Value",
ELSE 'big'
END AS "Category"
FROM CASE_TBL;
Five | Value | Category
------+-------+----------
| 1 | one
| 2 | two
| 3 | big
| 4 | big
Value | Category
-------+----------
1 | one
2 | two
3 | big
4 | big
(4 rows)
SELECT '' AS "Five",
SELECT
CASE WHEN ((i < 0) or (i < 0)) THEN 'small'
WHEN ((i = 0) or (i = 0)) THEN 'zero'
WHEN ((i = 1) or (i = 1)) THEN 'one'
@ -157,12 +157,12 @@ SELECT '' AS "Five",
ELSE 'big'
END AS "Category"
FROM CASE_TBL;
Five | Category
------+----------
| one
| two
| big
| big
Category
----------
one
two
big
big
(4 rows)
--
@ -223,44 +223,44 @@ SELECT *
4 | | 2 | -4
(2 rows)
SELECT '' AS Five, NULLIF(a.i,b.i) AS "NULLIF(a.i,b.i)",
SELECT NULLIF(a.i,b.i) AS "NULLIF(a.i,b.i)",
NULLIF(b.i, 4) AS "NULLIF(b.i,4)"
FROM CASE_TBL a, CASE2_TBL b;
five | NULLIF(a.i,b.i) | NULLIF(b.i,4)
------+-----------------+---------------
| | 1
| 2 | 1
| 3 | 1
| 4 | 1
| 1 | 2
| | 2
| 3 | 2
| 4 | 2
| 1 | 3
| 2 | 3
| | 3
| 4 | 3
| 1 | 2
| | 2
| 3 | 2
| 4 | 2
| | 1
| 2 | 1
| 3 | 1
| 4 | 1
| 1 |
| 2 |
| 3 |
| 4 |
NULLIF(a.i,b.i) | NULLIF(b.i,4)
-----------------+---------------
| 1
2 | 1
3 | 1
4 | 1
1 | 2
| 2
3 | 2
4 | 2
1 | 3
2 | 3
| 3
4 | 3
1 | 2
| 2
3 | 2
4 | 2
| 1
2 | 1
3 | 1
4 | 1
1 |
2 |
3 |
4 |
(24 rows)
SELECT '' AS "Two", *
SELECT *
FROM CASE_TBL a, CASE2_TBL b
WHERE COALESCE(f,b.i) = 2;
Two | i | f | i | j
-----+---+---+---+----
| 4 | | 2 | -2
| 4 | | 2 | -4
i | f | i | j
---+---+---+----
4 | | 2 | -2
4 | | 2 | -4
(2 rows)
--

View File

@ -25,79 +25,79 @@ INSERT INTO CHAR_TBL (f1) VALUES ('');
INSERT INTO CHAR_TBL (f1) VALUES ('cd');
ERROR: value too long for type character(1)
INSERT INTO CHAR_TBL (f1) VALUES ('c ');
SELECT '' AS seven, * FROM CHAR_TBL;
seven | f1
-------+----
| a
| A
| 1
| 2
| 3
|
| c
SELECT * FROM CHAR_TBL;
f1
----
a
A
1
2
3
c
(7 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 <> 'a';
six | f1
-----+----
| A
| 1
| 2
| 3
|
| c
f1
----
A
1
2
3
c
(6 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 = 'a';
one | f1
-----+----
| a
f1
----
a
(1 row)
SELECT '' AS five, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 < 'a';
five | f1
------+----
| A
| 1
| 2
| 3
|
f1
----
A
1
2
3
(5 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 <= 'a';
six | f1
-----+----
| a
| A
| 1
| 2
| 3
|
f1
----
a
A
1
2
3
(6 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 > 'a';
one | f1
-----+----
| c
f1
----
c
(1 row)
SELECT '' AS two, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 >= 'a';
two | f1
-----+----
| a
| c
f1
----
a
c
(2 rows)
DROP TABLE CHAR_TBL;
@ -111,12 +111,12 @@ INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
ERROR: value too long for type character(4)
INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
SELECT '' AS four, * FROM CHAR_TBL;
four | f1
------+------
| a
| ab
| abcd
| abcd
SELECT * FROM CHAR_TBL;
f1
------
a
ab
abcd
abcd
(4 rows)

View File

@ -25,79 +25,79 @@ INSERT INTO CHAR_TBL (f1) VALUES ('');
INSERT INTO CHAR_TBL (f1) VALUES ('cd');
ERROR: value too long for type character(1)
INSERT INTO CHAR_TBL (f1) VALUES ('c ');
SELECT '' AS seven, * FROM CHAR_TBL;
seven | f1
-------+----
| a
| A
| 1
| 2
| 3
|
| c
SELECT * FROM CHAR_TBL;
f1
----
a
A
1
2
3
c
(7 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 <> 'a';
six | f1
-----+----
| A
| 1
| 2
| 3
|
| c
f1
----
A
1
2
3
c
(6 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 = 'a';
one | f1
-----+----
| a
f1
----
a
(1 row)
SELECT '' AS five, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 < 'a';
five | f1
------+----
| 1
| 2
| 3
|
f1
----
1
2
3
(4 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 <= 'a';
six | f1
-----+----
| a
| 1
| 2
| 3
|
f1
----
a
1
2
3
(5 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 > 'a';
one | f1
-----+----
| A
| c
f1
----
A
c
(2 rows)
SELECT '' AS two, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 >= 'a';
two | f1
-----+----
| a
| A
| c
f1
----
a
A
c
(3 rows)
DROP TABLE CHAR_TBL;
@ -111,12 +111,12 @@ INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
ERROR: value too long for type character(4)
INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
SELECT '' AS four, * FROM CHAR_TBL;
four | f1
------+------
| a
| ab
| abcd
| abcd
SELECT * FROM CHAR_TBL;
f1
------
a
ab
abcd
abcd
(4 rows)

View File

@ -25,79 +25,79 @@ INSERT INTO CHAR_TBL (f1) VALUES ('');
INSERT INTO CHAR_TBL (f1) VALUES ('cd');
ERROR: value too long for type character(1)
INSERT INTO CHAR_TBL (f1) VALUES ('c ');
SELECT '' AS seven, * FROM CHAR_TBL;
seven | f1
-------+----
| a
| A
| 1
| 2
| 3
|
| c
SELECT * FROM CHAR_TBL;
f1
----
a
A
1
2
3
c
(7 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 <> 'a';
six | f1
-----+----
| A
| 1
| 2
| 3
|
| c
f1
----
A
1
2
3
c
(6 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 = 'a';
one | f1
-----+----
| a
f1
----
a
(1 row)
SELECT '' AS five, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 < 'a';
five | f1
------+----
|
f1
----
(1 row)
SELECT '' AS six, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 <= 'a';
six | f1
-----+----
| a
|
f1
----
a
(2 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 > 'a';
one | f1
-----+----
| A
| 1
| 2
| 3
| c
f1
----
A
1
2
3
c
(5 rows)
SELECT '' AS two, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 >= 'a';
two | f1
-----+----
| a
| A
| 1
| 2
| 3
| c
f1
----
a
A
1
2
3
c
(6 rows)
DROP TABLE CHAR_TBL;
@ -111,12 +111,12 @@ INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
ERROR: value too long for type character(4)
INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
SELECT '' AS four, * FROM CHAR_TBL;
four | f1
------+------
| a
| ab
| abcd
| abcd
SELECT * FROM CHAR_TBL;
f1
------
a
ab
abcd
abcd
(4 rows)

View File

@ -47,79 +47,79 @@ SELECT * FROM CIRCLE_TBL;
<(3,5),NaN>
(8 rows)
SELECT '' AS six, center(f1) AS center
SELECT center(f1) AS center
FROM CIRCLE_TBL;
six | center
-----+-----------
| (5,1)
| (1,2)
| (1,3)
| (1,2)
| (100,200)
| (100,1)
| (3,5)
| (3,5)
center
-----------
(5,1)
(1,2)
(1,3)
(1,2)
(100,200)
(100,1)
(3,5)
(3,5)
(8 rows)
SELECT '' AS six, radius(f1) AS radius
SELECT radius(f1) AS radius
FROM CIRCLE_TBL;
six | radius
-----+--------
| 3
| 100
| 5
| 3
| 10
| 115
| 0
| NaN
radius
--------
3
100
5
3
10
115
0
NaN
(8 rows)
SELECT '' AS six, diameter(f1) AS diameter
SELECT diameter(f1) AS diameter
FROM CIRCLE_TBL;
six | diameter
-----+----------
| 6
| 200
| 10
| 6
| 20
| 230
| 0
| NaN
diameter
----------
6
200
10
6
20
230
0
NaN
(8 rows)
SELECT '' AS two, f1 FROM CIRCLE_TBL WHERE radius(f1) < 5;
two | f1
-----+-----------
| <(5,1),3>
| <(1,2),3>
| <(3,5),0>
SELECT f1 FROM CIRCLE_TBL WHERE radius(f1) < 5;
f1
-----------
<(5,1),3>
<(1,2),3>
<(3,5),0>
(3 rows)
SELECT '' AS four, f1 FROM CIRCLE_TBL WHERE diameter(f1) >= 10;
four | f1
------+----------------
| <(1,2),100>
| <(1,3),5>
| <(100,200),10>
| <(100,1),115>
| <(3,5),NaN>
SELECT f1 FROM CIRCLE_TBL WHERE diameter(f1) >= 10;
f1
----------------
<(1,2),100>
<(1,3),5>
<(100,200),10>
<(100,1),115>
<(3,5),NaN>
(5 rows)
SELECT '' as five, c1.f1 AS one, c2.f1 AS two, (c1.f1 <-> c2.f1) AS distance
SELECT c1.f1 AS one, c2.f1 AS two, (c1.f1 <-> c2.f1) AS distance
FROM CIRCLE_TBL c1, CIRCLE_TBL c2
WHERE (c1.f1 < c2.f1) AND ((c1.f1 <-> c2.f1) > 0)
ORDER BY distance, area(c1.f1), area(c2.f1);
five | one | two | distance
------+----------------+----------------+------------------
| <(3,5),0> | <(1,2),3> | 0.60555127546399
| <(3,5),0> | <(5,1),3> | 1.4721359549996
| <(100,200),10> | <(100,1),115> | 74
| <(100,200),10> | <(1,2),100> | 111.37072977248
| <(1,3),5> | <(100,200),10> | 205.4767561445
| <(5,1),3> | <(100,200),10> | 207.51303816328
| <(3,5),0> | <(100,200),10> | 207.79348015953
| <(1,2),3> | <(100,200),10> | 208.37072977248
one | two | distance
----------------+----------------+------------------
<(3,5),0> | <(1,2),3> | 0.60555127546399
<(3,5),0> | <(5,1),3> | 1.4721359549996
<(100,200),10> | <(100,1),115> | 74
<(100,200),10> | <(1,2),100> | 111.37072977248
<(1,3),5> | <(100,200),10> | 205.4767561445
<(5,1),3> | <(100,200),10> | 207.51303816328
<(3,5),0> | <(100,200),10> | 207.79348015953
<(1,2),3> | <(100,200),10> | 208.37072977248
(8 rows)

View File

@ -161,136 +161,136 @@ SELECT 'nan'::numeric::float4;
NaN
(1 row)
SELECT '' AS five, * FROM FLOAT4_TBL;
five | f1
------+---------------
| 0
| 1004.3
| -34.84
| 1.2345679e+20
| 1.2345679e-20
SELECT * FROM FLOAT4_TBL;
f1
---------------
0
1004.3
-34.84
1.2345679e+20
1.2345679e-20
(5 rows)
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
four | f1
------+---------------
| 0
| -34.84
| 1.2345679e+20
| 1.2345679e-20
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
f1
---------------
0
-34.84
1.2345679e+20
1.2345679e-20
(4 rows)
SELECT '' AS one, f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
one | f1
-----+--------
| 1004.3
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
f1
--------
1004.3
(1 row)
SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
three | f1
-------+---------------
| 0
| -34.84
| 1.2345679e-20
SELECT f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
f1
---------------
0
-34.84
1.2345679e-20
(3 rows)
SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE f.f1 < '1004.3';
three | f1
-------+---------------
| 0
| -34.84
| 1.2345679e-20
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 < '1004.3';
f1
---------------
0
-34.84
1.2345679e-20
(3 rows)
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
four | f1
------+---------------
| 0
| 1004.3
| -34.84
| 1.2345679e-20
SELECT f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
f1
---------------
0
1004.3
-34.84
1.2345679e-20
(4 rows)
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <= '1004.3';
four | f1
------+---------------
| 0
| 1004.3
| -34.84
| 1.2345679e-20
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 <= '1004.3';
f1
---------------
0
1004.3
-34.84
1.2345679e-20
(4 rows)
SELECT '' AS three, f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+---------------+----------------
| 1004.3 | -10043
| 1.2345679e+20 | -1.2345678e+21
| 1.2345679e-20 | -1.2345678e-19
f1 | x
---------------+----------------
1004.3 | -10043
1.2345679e+20 | -1.2345678e+21
1.2345679e-20 | -1.2345678e-19
(3 rows)
SELECT '' AS three, f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+---------------+---------------
| 1004.3 | 994.3
| 1.2345679e+20 | 1.2345679e+20
| 1.2345679e-20 | -10
f1 | x
---------------+---------------
1004.3 | 994.3
1.2345679e+20 | 1.2345679e+20
1.2345679e-20 | -10
(3 rows)
SELECT '' AS three, f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+---------------+----------------
| 1004.3 | -100.43
| 1.2345679e+20 | -1.2345679e+19
| 1.2345679e-20 | -1.2345679e-21
f1 | x
---------------+----------------
1004.3 | -100.43
1.2345679e+20 | -1.2345679e+19
1.2345679e-20 | -1.2345679e-21
(3 rows)
SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+---------------+---------------
| 1004.3 | 1014.3
| 1.2345679e+20 | 1.2345679e+20
| 1.2345679e-20 | 10
f1 | x
---------------+---------------
1004.3 | 1014.3
1.2345679e+20 | 1.2345679e+20
1.2345679e-20 | 10
(3 rows)
-- test divide by zero
SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
SELECT f.f1 / '0.0' from FLOAT4_TBL f;
ERROR: division by zero
SELECT '' AS five, * FROM FLOAT4_TBL;
five | f1
------+---------------
| 0
| 1004.3
| -34.84
| 1.2345679e+20
| 1.2345679e-20
SELECT * FROM FLOAT4_TBL;
f1
---------------
0
1004.3
-34.84
1.2345679e+20
1.2345679e-20
(5 rows)
-- test the unary float4abs operator
SELECT '' AS five, f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
five | f1 | abs_f1
------+---------------+---------------
| 0 | 0
| 1004.3 | 1004.3
| -34.84 | 34.84
| 1.2345679e+20 | 1.2345679e+20
| 1.2345679e-20 | 1.2345679e-20
SELECT f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
f1 | abs_f1
---------------+---------------
0 | 0
1004.3 | 1004.3
-34.84 | 34.84
1.2345679e+20 | 1.2345679e+20
1.2345679e-20 | 1.2345679e-20
(5 rows)
UPDATE FLOAT4_TBL
SET f1 = FLOAT4_TBL.f1 * '-1'
WHERE FLOAT4_TBL.f1 > '0.0';
SELECT '' AS five, * FROM FLOAT4_TBL;
five | f1
------+----------------
| 0
| -34.84
| -1004.3
| -1.2345679e+20
| -1.2345679e-20
SELECT * FROM FLOAT4_TBL;
f1
----------------
0
-34.84
-1004.3
-1.2345679e+20
-1.2345679e-20
(5 rows)
-- test edge-case coercions to integer

View File

@ -161,136 +161,136 @@ SELECT 'nan'::numeric::float4;
NaN
(1 row)
SELECT '' AS five, * FROM FLOAT4_TBL;
five | f1
------+---------------
| 0
| 1004.3
| -34.84
| 1.2345679e+20
| 1.2345679e-20
SELECT * FROM FLOAT4_TBL;
f1
---------------
0
1004.3
-34.84
1.2345679e+20
1.2345679e-20
(5 rows)
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
four | f1
------+---------------
| 0
| -34.84
| 1.2345679e+20
| 1.2345679e-20
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
f1
---------------
0
-34.84
1.2345679e+20
1.2345679e-20
(4 rows)
SELECT '' AS one, f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
one | f1
-----+--------
| 1004.3
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
f1
--------
1004.3
(1 row)
SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
three | f1
-------+---------------
| 0
| -34.84
| 1.2345679e-20
SELECT f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
f1
---------------
0
-34.84
1.2345679e-20
(3 rows)
SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE f.f1 < '1004.3';
three | f1
-------+---------------
| 0
| -34.84
| 1.2345679e-20
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 < '1004.3';
f1
---------------
0
-34.84
1.2345679e-20
(3 rows)
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
four | f1
------+---------------
| 0
| 1004.3
| -34.84
| 1.2345679e-20
SELECT f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
f1
---------------
0
1004.3
-34.84
1.2345679e-20
(4 rows)
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <= '1004.3';
four | f1
------+---------------
| 0
| 1004.3
| -34.84
| 1.2345679e-20
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 <= '1004.3';
f1
---------------
0
1004.3
-34.84
1.2345679e-20
(4 rows)
SELECT '' AS three, f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+---------------+----------------
| 1004.3 | -10043
| 1.2345679e+20 | -1.2345678e+21
| 1.2345679e-20 | -1.2345678e-19
f1 | x
---------------+----------------
1004.3 | -10043
1.2345679e+20 | -1.2345678e+21
1.2345679e-20 | -1.2345678e-19
(3 rows)
SELECT '' AS three, f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+---------------+---------------
| 1004.3 | 994.3
| 1.2345679e+20 | 1.2345679e+20
| 1.2345679e-20 | -10
f1 | x
---------------+---------------
1004.3 | 994.3
1.2345679e+20 | 1.2345679e+20
1.2345679e-20 | -10
(3 rows)
SELECT '' AS three, f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+---------------+----------------
| 1004.3 | -100.43
| 1.2345679e+20 | -1.2345679e+19
| 1.2345679e-20 | -1.2345679e-21
f1 | x
---------------+----------------
1004.3 | -100.43
1.2345679e+20 | -1.2345679e+19
1.2345679e-20 | -1.2345679e-21
(3 rows)
SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+---------------+---------------
| 1004.3 | 1014.3
| 1.2345679e+20 | 1.2345679e+20
| 1.2345679e-20 | 10
f1 | x
---------------+---------------
1004.3 | 1014.3
1.2345679e+20 | 1.2345679e+20
1.2345679e-20 | 10
(3 rows)
-- test divide by zero
SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
SELECT f.f1 / '0.0' from FLOAT4_TBL f;
ERROR: division by zero
SELECT '' AS five, * FROM FLOAT4_TBL;
five | f1
------+---------------
| 0
| 1004.3
| -34.84
| 1.2345679e+20
| 1.2345679e-20
SELECT * FROM FLOAT4_TBL;
f1
---------------
0
1004.3
-34.84
1.2345679e+20
1.2345679e-20
(5 rows)
-- test the unary float4abs operator
SELECT '' AS five, f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
five | f1 | abs_f1
------+---------------+---------------
| 0 | 0
| 1004.3 | 1004.3
| -34.84 | 34.84
| 1.2345679e+20 | 1.2345679e+20
| 1.2345679e-20 | 1.2345679e-20
SELECT f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
f1 | abs_f1
---------------+---------------
0 | 0
1004.3 | 1004.3
-34.84 | 34.84
1.2345679e+20 | 1.2345679e+20
1.2345679e-20 | 1.2345679e-20
(5 rows)
UPDATE FLOAT4_TBL
SET f1 = FLOAT4_TBL.f1 * '-1'
WHERE FLOAT4_TBL.f1 > '0.0';
SELECT '' AS five, * FROM FLOAT4_TBL;
five | f1
------+----------------
| 0
| -34.84
| -1004.3
| -1.2345679e+20
| -1.2345679e-20
SELECT * FROM FLOAT4_TBL;
f1
----------------
0
-34.84
-1004.3
-1.2345679e+20
-1.2345679e-20
(5 rows)
-- test edge-case coercions to integer

View File

@ -144,146 +144,146 @@ SELECT 'nan'::numeric::float8;
NaN
(1 row)
SELECT '' AS five, * FROM FLOAT8_TBL;
five | f1
------+----------------------
| 0
| 1004.3
| -34.84
| 1.2345678901234e+200
| 1.2345678901234e-200
SELECT * FROM FLOAT8_TBL;
f1
----------------------
0
1004.3
-34.84
1.2345678901234e+200
1.2345678901234e-200
(5 rows)
SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <> '1004.3';
four | f1
------+----------------------
| 0
| -34.84
| 1.2345678901234e+200
| 1.2345678901234e-200
SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 <> '1004.3';
f1
----------------------
0
-34.84
1.2345678901234e+200
1.2345678901234e-200
(4 rows)
SELECT '' AS one, f.* FROM FLOAT8_TBL f WHERE f.f1 = '1004.3';
one | f1
-----+--------
| 1004.3
SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 = '1004.3';
f1
--------
1004.3
(1 row)
SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE '1004.3' > f.f1;
three | f1
-------+----------------------
| 0
| -34.84
| 1.2345678901234e-200
SELECT f.* FROM FLOAT8_TBL f WHERE '1004.3' > f.f1;
f1
----------------------
0
-34.84
1.2345678901234e-200
(3 rows)
SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE f.f1 < '1004.3';
three | f1
-------+----------------------
| 0
| -34.84
| 1.2345678901234e-200
SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 < '1004.3';
f1
----------------------
0
-34.84
1.2345678901234e-200
(3 rows)
SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE '1004.3' >= f.f1;
four | f1
------+----------------------
| 0
| 1004.3
| -34.84
| 1.2345678901234e-200
SELECT f.* FROM FLOAT8_TBL f WHERE '1004.3' >= f.f1;
f1
----------------------
0
1004.3
-34.84
1.2345678901234e-200
(4 rows)
SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <= '1004.3';
four | f1
------+----------------------
| 0
| 1004.3
| -34.84
| 1.2345678901234e-200
SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 <= '1004.3';
f1
----------------------
0
1004.3
-34.84
1.2345678901234e-200
(4 rows)
SELECT '' AS three, f.f1, f.f1 * '-10' AS x
SELECT f.f1, f.f1 * '-10' AS x
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+----------------------+-----------------------
| 1004.3 | -10043
| 1.2345678901234e+200 | -1.2345678901234e+201
| 1.2345678901234e-200 | -1.2345678901234e-199
f1 | x
----------------------+-----------------------
1004.3 | -10043
1.2345678901234e+200 | -1.2345678901234e+201
1.2345678901234e-200 | -1.2345678901234e-199
(3 rows)
SELECT '' AS three, f.f1, f.f1 + '-10' AS x
SELECT f.f1, f.f1 + '-10' AS x
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+----------------------+----------------------
| 1004.3 | 994.3
| 1.2345678901234e+200 | 1.2345678901234e+200
| 1.2345678901234e-200 | -10
f1 | x
----------------------+----------------------
1004.3 | 994.3
1.2345678901234e+200 | 1.2345678901234e+200
1.2345678901234e-200 | -10
(3 rows)
SELECT '' AS three, f.f1, f.f1 / '-10' AS x
SELECT f.f1, f.f1 / '-10' AS x
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+----------------------+-----------------------
| 1004.3 | -100.42999999999999
| 1.2345678901234e+200 | -1.2345678901234e+199
| 1.2345678901234e-200 | -1.2345678901234e-201
f1 | x
----------------------+-----------------------
1004.3 | -100.42999999999999
1.2345678901234e+200 | -1.2345678901234e+199
1.2345678901234e-200 | -1.2345678901234e-201
(3 rows)
SELECT '' AS three, f.f1, f.f1 - '-10' AS x
SELECT f.f1, f.f1 - '-10' AS x
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
three | f1 | x
-------+----------------------+----------------------
| 1004.3 | 1014.3
| 1.2345678901234e+200 | 1.2345678901234e+200
| 1.2345678901234e-200 | 10
f1 | x
----------------------+----------------------
1004.3 | 1014.3
1.2345678901234e+200 | 1.2345678901234e+200
1.2345678901234e-200 | 10
(3 rows)
SELECT '' AS one, f.f1 ^ '2.0' AS square_f1
SELECT f.f1 ^ '2.0' AS square_f1
FROM FLOAT8_TBL f where f.f1 = '1004.3';
one | square_f1
-----+--------------------
| 1008618.4899999999
square_f1
--------------------
1008618.4899999999
(1 row)
-- absolute value
SELECT '' AS five, f.f1, @f.f1 AS abs_f1
SELECT f.f1, @f.f1 AS abs_f1
FROM FLOAT8_TBL f;
five | f1 | abs_f1
------+----------------------+----------------------
| 0 | 0
| 1004.3 | 1004.3
| -34.84 | 34.84
| 1.2345678901234e+200 | 1.2345678901234e+200
| 1.2345678901234e-200 | 1.2345678901234e-200
f1 | abs_f1
----------------------+----------------------
0 | 0
1004.3 | 1004.3
-34.84 | 34.84
1.2345678901234e+200 | 1.2345678901234e+200
1.2345678901234e-200 | 1.2345678901234e-200
(5 rows)
-- truncate
SELECT '' AS five, f.f1, trunc(f.f1) AS trunc_f1
SELECT f.f1, trunc(f.f1) AS trunc_f1
FROM FLOAT8_TBL f;
five | f1 | trunc_f1
------+----------------------+----------------------
| 0 | 0
| 1004.3 | 1004
| -34.84 | -34
| 1.2345678901234e+200 | 1.2345678901234e+200
| 1.2345678901234e-200 | 0
f1 | trunc_f1
----------------------+----------------------
0 | 0
1004.3 | 1004
-34.84 | -34
1.2345678901234e+200 | 1.2345678901234e+200
1.2345678901234e-200 | 0
(5 rows)
-- round
SELECT '' AS five, f.f1, round(f.f1) AS round_f1
SELECT f.f1, round(f.f1) AS round_f1
FROM FLOAT8_TBL f;
five | f1 | round_f1
------+----------------------+----------------------
| 0 | 0
| 1004.3 | 1004
| -34.84 | -35
| 1.2345678901234e+200 | 1.2345678901234e+200
| 1.2345678901234e-200 | 0
f1 | round_f1
----------------------+----------------------
0 | 0
1004.3 | 1004
-34.84 | -35
1.2345678901234e+200 | 1.2345678901234e+200
1.2345678901234e-200 | 0
(5 rows)
-- ceil / ceiling
@ -344,14 +344,14 @@ SELECT |/ float8 '64' AS eight;
8
(1 row)
SELECT '' AS three, f.f1, |/f.f1 AS sqrt_f1
SELECT f.f1, |/f.f1 AS sqrt_f1
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
three | f1 | sqrt_f1
-------+----------------------+-----------------------
| 1004.3 | 31.6906926399535
| 1.2345678901234e+200 | 1.11111110611109e+100
| 1.2345678901234e-200 | 1.11111110611109e-100
f1 | sqrt_f1
----------------------+-----------------------
1004.3 | 31.6906926399535
1.2345678901234e+200 | 1.11111110611109e+100
1.2345678901234e-200 | 1.11111110611109e-100
(3 rows)
-- power
@ -554,14 +554,14 @@ SELECT power(float8 '-inf', float8 '-inf');
(1 row)
-- take exp of ln(f.f1)
SELECT '' AS three, f.f1, exp(ln(f.f1)) AS exp_ln_f1
SELECT f.f1, exp(ln(f.f1)) AS exp_ln_f1
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
three | f1 | exp_ln_f1
-------+----------------------+-----------------------
| 1004.3 | 1004.3
| 1.2345678901234e+200 | 1.23456789012338e+200
| 1.2345678901234e-200 | 1.23456789012339e-200
f1 | exp_ln_f1
----------------------+-----------------------
1004.3 | 1004.3
1.2345678901234e+200 | 1.23456789012338e+200
1.2345678901234e-200 | 1.23456789012339e-200
(3 rows)
-- check edge cases for exp
@ -578,32 +578,32 @@ SELECT ||/ float8 '27' AS three;
3
(1 row)
SELECT '' AS five, f.f1, ||/f.f1 AS cbrt_f1 FROM FLOAT8_TBL f;
five | f1 | cbrt_f1
------+----------------------+----------------------
| 0 | 0
| 1004.3 | 10.014312837827
| -34.84 | -3.26607421344208
| 1.2345678901234e+200 | 4.97933859234765e+66
| 1.2345678901234e-200 | 2.3112042409018e-67
SELECT f.f1, ||/f.f1 AS cbrt_f1 FROM FLOAT8_TBL f;
f1 | cbrt_f1
----------------------+----------------------
0 | 0
1004.3 | 10.014312837827
-34.84 | -3.26607421344208
1.2345678901234e+200 | 4.97933859234765e+66
1.2345678901234e-200 | 2.3112042409018e-67
(5 rows)
SELECT '' AS five, * FROM FLOAT8_TBL;
five | f1
------+----------------------
| 0
| 1004.3
| -34.84
| 1.2345678901234e+200
| 1.2345678901234e-200
SELECT * FROM FLOAT8_TBL;
f1
----------------------
0
1004.3
-34.84
1.2345678901234e+200
1.2345678901234e-200
(5 rows)
UPDATE FLOAT8_TBL
SET f1 = FLOAT8_TBL.f1 * '-1'
WHERE FLOAT8_TBL.f1 > '0.0';
SELECT '' AS bad, f.f1 * '1e200' from FLOAT8_TBL f;
SELECT f.f1 * '1e200' from FLOAT8_TBL f;
ERROR: value out of range: overflow
SELECT '' AS bad, f.f1 ^ '1e200' from FLOAT8_TBL f;
SELECT f.f1 ^ '1e200' from FLOAT8_TBL f;
ERROR: value out of range: overflow
SELECT 0 ^ 0 + 0 ^ 1 + 0 ^ 0.0 + 0 ^ 0.5;
?column?
@ -611,22 +611,22 @@ SELECT 0 ^ 0 + 0 ^ 1 + 0 ^ 0.0 + 0 ^ 0.5;
2
(1 row)
SELECT '' AS bad, ln(f.f1) from FLOAT8_TBL f where f.f1 = '0.0' ;
SELECT ln(f.f1) from FLOAT8_TBL f where f.f1 = '0.0' ;
ERROR: cannot take logarithm of zero
SELECT '' AS bad, ln(f.f1) from FLOAT8_TBL f where f.f1 < '0.0' ;
SELECT ln(f.f1) from FLOAT8_TBL f where f.f1 < '0.0' ;
ERROR: cannot take logarithm of a negative number
SELECT '' AS bad, exp(f.f1) from FLOAT8_TBL f;
SELECT exp(f.f1) from FLOAT8_TBL f;
ERROR: value out of range: underflow
SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f;
SELECT f.f1 / '0.0' from FLOAT8_TBL f;
ERROR: division by zero
SELECT '' AS five, * FROM FLOAT8_TBL;
five | f1
------+-----------------------
| 0
| -34.84
| -1004.3
| -1.2345678901234e+200
| -1.2345678901234e-200
SELECT * FROM FLOAT8_TBL;
f1
-----------------------
0
-34.84
-1004.3
-1.2345678901234e+200
-1.2345678901234e-200
(5 rows)
-- hyperbolic functions
@ -787,14 +787,14 @@ INSERT INTO FLOAT8_TBL(f1) VALUES ('-34.84');
INSERT INTO FLOAT8_TBL(f1) VALUES ('-1004.30');
INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e+200');
INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e-200');
SELECT '' AS five, * FROM FLOAT8_TBL;
five | f1
------+-----------------------
| 0
| -34.84
| -1004.3
| -1.2345678901234e+200
| -1.2345678901234e-200
SELECT * FROM FLOAT8_TBL;
f1
-----------------------
0
-34.84
-1004.3
-1.2345678901234e+200
-1.2345678901234e-200
(5 rows)
-- test edge-case coercions to integer

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -43,165 +43,165 @@ ERROR: invalid cidr value: "ffff:ffff:ffff:ffff::/24"
LINE 1: INSERT INTO INET_TBL (c, i) VALUES (cidr('ffff:ffff:ffff:fff...
^
DETAIL: Value has bits set to right of mask.
SELECT '' AS ten, c AS cidr, i AS inet FROM INET_TBL;
ten | cidr | inet
-----+--------------------+------------------
| 192.168.1.0/24 | 192.168.1.226/24
| 192.168.1.0/26 | 192.168.1.226
| 192.168.1.0/24 | 192.168.1.0/24
| 192.168.1.0/24 | 192.168.1.0/25
| 192.168.1.0/24 | 192.168.1.255/24
| 192.168.1.0/24 | 192.168.1.255/25
| 10.0.0.0/8 | 10.1.2.3/8
| 10.0.0.0/32 | 10.1.2.3/8
| 10.1.2.3/32 | 10.1.2.3
| 10.1.2.0/24 | 10.1.2.3/24
| 10.1.0.0/16 | 10.1.2.3/16
| 10.0.0.0/8 | 10.1.2.3/8
| 10.0.0.0/8 | 11.1.2.3/8
| 10.0.0.0/8 | 9.1.2.3/8
| 10:23::f1/128 | 10:23::f1/64
| 10:23::8000/113 | 10:23::ffff
| ::ffff:1.2.3.4/128 | ::4.3.2.1/24
SELECT c AS cidr, i AS inet FROM INET_TBL;
cidr | inet
--------------------+------------------
192.168.1.0/24 | 192.168.1.226/24
192.168.1.0/26 | 192.168.1.226
192.168.1.0/24 | 192.168.1.0/24
192.168.1.0/24 | 192.168.1.0/25
192.168.1.0/24 | 192.168.1.255/24
192.168.1.0/24 | 192.168.1.255/25
10.0.0.0/8 | 10.1.2.3/8
10.0.0.0/32 | 10.1.2.3/8
10.1.2.3/32 | 10.1.2.3
10.1.2.0/24 | 10.1.2.3/24
10.1.0.0/16 | 10.1.2.3/16
10.0.0.0/8 | 10.1.2.3/8
10.0.0.0/8 | 11.1.2.3/8
10.0.0.0/8 | 9.1.2.3/8
10:23::f1/128 | 10:23::f1/64
10:23::8000/113 | 10:23::ffff
::ffff:1.2.3.4/128 | ::4.3.2.1/24
(17 rows)
-- now test some support functions
SELECT '' AS ten, i AS inet, host(i), text(i), family(i) FROM INET_TBL;
ten | inet | host | text | family
-----+------------------+---------------+------------------+--------
| 192.168.1.226/24 | 192.168.1.226 | 192.168.1.226/24 | 4
| 192.168.1.226 | 192.168.1.226 | 192.168.1.226/32 | 4
| 192.168.1.0/24 | 192.168.1.0 | 192.168.1.0/24 | 4
| 192.168.1.0/25 | 192.168.1.0 | 192.168.1.0/25 | 4
| 192.168.1.255/24 | 192.168.1.255 | 192.168.1.255/24 | 4
| 192.168.1.255/25 | 192.168.1.255 | 192.168.1.255/25 | 4
| 10.1.2.3/8 | 10.1.2.3 | 10.1.2.3/8 | 4
| 10.1.2.3/8 | 10.1.2.3 | 10.1.2.3/8 | 4
| 10.1.2.3 | 10.1.2.3 | 10.1.2.3/32 | 4
| 10.1.2.3/24 | 10.1.2.3 | 10.1.2.3/24 | 4
| 10.1.2.3/16 | 10.1.2.3 | 10.1.2.3/16 | 4
| 10.1.2.3/8 | 10.1.2.3 | 10.1.2.3/8 | 4
| 11.1.2.3/8 | 11.1.2.3 | 11.1.2.3/8 | 4
| 9.1.2.3/8 | 9.1.2.3 | 9.1.2.3/8 | 4
| 10:23::f1/64 | 10:23::f1 | 10:23::f1/64 | 6
| 10:23::ffff | 10:23::ffff | 10:23::ffff/128 | 6
| ::4.3.2.1/24 | ::4.3.2.1 | ::4.3.2.1/24 | 6
SELECT i AS inet, host(i), text(i), family(i) FROM INET_TBL;
inet | host | text | family
------------------+---------------+------------------+--------
192.168.1.226/24 | 192.168.1.226 | 192.168.1.226/24 | 4
192.168.1.226 | 192.168.1.226 | 192.168.1.226/32 | 4
192.168.1.0/24 | 192.168.1.0 | 192.168.1.0/24 | 4
192.168.1.0/25 | 192.168.1.0 | 192.168.1.0/25 | 4
192.168.1.255/24 | 192.168.1.255 | 192.168.1.255/24 | 4
192.168.1.255/25 | 192.168.1.255 | 192.168.1.255/25 | 4
10.1.2.3/8 | 10.1.2.3 | 10.1.2.3/8 | 4
10.1.2.3/8 | 10.1.2.3 | 10.1.2.3/8 | 4
10.1.2.3 | 10.1.2.3 | 10.1.2.3/32 | 4
10.1.2.3/24 | 10.1.2.3 | 10.1.2.3/24 | 4
10.1.2.3/16 | 10.1.2.3 | 10.1.2.3/16 | 4
10.1.2.3/8 | 10.1.2.3 | 10.1.2.3/8 | 4
11.1.2.3/8 | 11.1.2.3 | 11.1.2.3/8 | 4
9.1.2.3/8 | 9.1.2.3 | 9.1.2.3/8 | 4
10:23::f1/64 | 10:23::f1 | 10:23::f1/64 | 6
10:23::ffff | 10:23::ffff | 10:23::ffff/128 | 6
::4.3.2.1/24 | ::4.3.2.1 | ::4.3.2.1/24 | 6
(17 rows)
SELECT '' AS ten, c AS cidr, broadcast(c),
SELECT c AS cidr, broadcast(c),
i AS inet, broadcast(i) FROM INET_TBL;
ten | cidr | broadcast | inet | broadcast
-----+--------------------+------------------+------------------+---------------------------------------
| 192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.226/24 | 192.168.1.255/24
| 192.168.1.0/26 | 192.168.1.63/26 | 192.168.1.226 | 192.168.1.226
| 192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.0/24 | 192.168.1.255/24
| 192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.0/25 | 192.168.1.127/25
| 192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.255/24 | 192.168.1.255/24
| 192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.255/25 | 192.168.1.255/25
| 10.0.0.0/8 | 10.255.255.255/8 | 10.1.2.3/8 | 10.255.255.255/8
| 10.0.0.0/32 | 10.0.0.0 | 10.1.2.3/8 | 10.255.255.255/8
| 10.1.2.3/32 | 10.1.2.3 | 10.1.2.3 | 10.1.2.3
| 10.1.2.0/24 | 10.1.2.255/24 | 10.1.2.3/24 | 10.1.2.255/24
| 10.1.0.0/16 | 10.1.255.255/16 | 10.1.2.3/16 | 10.1.255.255/16
| 10.0.0.0/8 | 10.255.255.255/8 | 10.1.2.3/8 | 10.255.255.255/8
| 10.0.0.0/8 | 10.255.255.255/8 | 11.1.2.3/8 | 11.255.255.255/8
| 10.0.0.0/8 | 10.255.255.255/8 | 9.1.2.3/8 | 9.255.255.255/8
| 10:23::f1/128 | 10:23::f1 | 10:23::f1/64 | 10:23::ffff:ffff:ffff:ffff/64
| 10:23::8000/113 | 10:23::ffff/113 | 10:23::ffff | 10:23::ffff
| ::ffff:1.2.3.4/128 | ::ffff:1.2.3.4 | ::4.3.2.1/24 | 0:ff:ffff:ffff:ffff:ffff:ffff:ffff/24
cidr | broadcast | inet | broadcast
--------------------+------------------+------------------+---------------------------------------
192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.226/24 | 192.168.1.255/24
192.168.1.0/26 | 192.168.1.63/26 | 192.168.1.226 | 192.168.1.226
192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.0/24 | 192.168.1.255/24
192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.0/25 | 192.168.1.127/25
192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.255/24 | 192.168.1.255/24
192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.255/25 | 192.168.1.255/25
10.0.0.0/8 | 10.255.255.255/8 | 10.1.2.3/8 | 10.255.255.255/8
10.0.0.0/32 | 10.0.0.0 | 10.1.2.3/8 | 10.255.255.255/8
10.1.2.3/32 | 10.1.2.3 | 10.1.2.3 | 10.1.2.3
10.1.2.0/24 | 10.1.2.255/24 | 10.1.2.3/24 | 10.1.2.255/24
10.1.0.0/16 | 10.1.255.255/16 | 10.1.2.3/16 | 10.1.255.255/16
10.0.0.0/8 | 10.255.255.255/8 | 10.1.2.3/8 | 10.255.255.255/8
10.0.0.0/8 | 10.255.255.255/8 | 11.1.2.3/8 | 11.255.255.255/8
10.0.0.0/8 | 10.255.255.255/8 | 9.1.2.3/8 | 9.255.255.255/8
10:23::f1/128 | 10:23::f1 | 10:23::f1/64 | 10:23::ffff:ffff:ffff:ffff/64
10:23::8000/113 | 10:23::ffff/113 | 10:23::ffff | 10:23::ffff
::ffff:1.2.3.4/128 | ::ffff:1.2.3.4 | ::4.3.2.1/24 | 0:ff:ffff:ffff:ffff:ffff:ffff:ffff/24
(17 rows)
SELECT '' AS ten, c AS cidr, network(c) AS "network(cidr)",
SELECT c AS cidr, network(c) AS "network(cidr)",
i AS inet, network(i) AS "network(inet)" FROM INET_TBL;
ten | cidr | network(cidr) | inet | network(inet)
-----+--------------------+--------------------+------------------+------------------
| 192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.226/24 | 192.168.1.0/24
| 192.168.1.0/26 | 192.168.1.0/26 | 192.168.1.226 | 192.168.1.226/32
| 192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.0/24
| 192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.0/25 | 192.168.1.0/25
| 192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.0/24
| 192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.255/25 | 192.168.1.128/25
| 10.0.0.0/8 | 10.0.0.0/8 | 10.1.2.3/8 | 10.0.0.0/8
| 10.0.0.0/32 | 10.0.0.0/32 | 10.1.2.3/8 | 10.0.0.0/8
| 10.1.2.3/32 | 10.1.2.3/32 | 10.1.2.3 | 10.1.2.3/32
| 10.1.2.0/24 | 10.1.2.0/24 | 10.1.2.3/24 | 10.1.2.0/24
| 10.1.0.0/16 | 10.1.0.0/16 | 10.1.2.3/16 | 10.1.0.0/16
| 10.0.0.0/8 | 10.0.0.0/8 | 10.1.2.3/8 | 10.0.0.0/8
| 10.0.0.0/8 | 10.0.0.0/8 | 11.1.2.3/8 | 11.0.0.0/8
| 10.0.0.0/8 | 10.0.0.0/8 | 9.1.2.3/8 | 9.0.0.0/8
| 10:23::f1/128 | 10:23::f1/128 | 10:23::f1/64 | 10:23::/64
| 10:23::8000/113 | 10:23::8000/113 | 10:23::ffff | 10:23::ffff/128
| ::ffff:1.2.3.4/128 | ::ffff:1.2.3.4/128 | ::4.3.2.1/24 | ::/24
cidr | network(cidr) | inet | network(inet)
--------------------+--------------------+------------------+------------------
192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.226/24 | 192.168.1.0/24
192.168.1.0/26 | 192.168.1.0/26 | 192.168.1.226 | 192.168.1.226/32
192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.0/24
192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.0/25 | 192.168.1.0/25
192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.255/24 | 192.168.1.0/24
192.168.1.0/24 | 192.168.1.0/24 | 192.168.1.255/25 | 192.168.1.128/25
10.0.0.0/8 | 10.0.0.0/8 | 10.1.2.3/8 | 10.0.0.0/8
10.0.0.0/32 | 10.0.0.0/32 | 10.1.2.3/8 | 10.0.0.0/8
10.1.2.3/32 | 10.1.2.3/32 | 10.1.2.3 | 10.1.2.3/32
10.1.2.0/24 | 10.1.2.0/24 | 10.1.2.3/24 | 10.1.2.0/24
10.1.0.0/16 | 10.1.0.0/16 | 10.1.2.3/16 | 10.1.0.0/16
10.0.0.0/8 | 10.0.0.0/8 | 10.1.2.3/8 | 10.0.0.0/8
10.0.0.0/8 | 10.0.0.0/8 | 11.1.2.3/8 | 11.0.0.0/8
10.0.0.0/8 | 10.0.0.0/8 | 9.1.2.3/8 | 9.0.0.0/8
10:23::f1/128 | 10:23::f1/128 | 10:23::f1/64 | 10:23::/64
10:23::8000/113 | 10:23::8000/113 | 10:23::ffff | 10:23::ffff/128
::ffff:1.2.3.4/128 | ::ffff:1.2.3.4/128 | ::4.3.2.1/24 | ::/24
(17 rows)
SELECT '' AS ten, c AS cidr, masklen(c) AS "masklen(cidr)",
SELECT c AS cidr, masklen(c) AS "masklen(cidr)",
i AS inet, masklen(i) AS "masklen(inet)" FROM INET_TBL;
ten | cidr | masklen(cidr) | inet | masklen(inet)
-----+--------------------+---------------+------------------+---------------
| 192.168.1.0/24 | 24 | 192.168.1.226/24 | 24
| 192.168.1.0/26 | 26 | 192.168.1.226 | 32
| 192.168.1.0/24 | 24 | 192.168.1.0/24 | 24
| 192.168.1.0/24 | 24 | 192.168.1.0/25 | 25
| 192.168.1.0/24 | 24 | 192.168.1.255/24 | 24
| 192.168.1.0/24 | 24 | 192.168.1.255/25 | 25
| 10.0.0.0/8 | 8 | 10.1.2.3/8 | 8
| 10.0.0.0/32 | 32 | 10.1.2.3/8 | 8
| 10.1.2.3/32 | 32 | 10.1.2.3 | 32
| 10.1.2.0/24 | 24 | 10.1.2.3/24 | 24
| 10.1.0.0/16 | 16 | 10.1.2.3/16 | 16
| 10.0.0.0/8 | 8 | 10.1.2.3/8 | 8
| 10.0.0.0/8 | 8 | 11.1.2.3/8 | 8
| 10.0.0.0/8 | 8 | 9.1.2.3/8 | 8
| 10:23::f1/128 | 128 | 10:23::f1/64 | 64
| 10:23::8000/113 | 113 | 10:23::ffff | 128
| ::ffff:1.2.3.4/128 | 128 | ::4.3.2.1/24 | 24
cidr | masklen(cidr) | inet | masklen(inet)
--------------------+---------------+------------------+---------------
192.168.1.0/24 | 24 | 192.168.1.226/24 | 24
192.168.1.0/26 | 26 | 192.168.1.226 | 32
192.168.1.0/24 | 24 | 192.168.1.0/24 | 24
192.168.1.0/24 | 24 | 192.168.1.0/25 | 25
192.168.1.0/24 | 24 | 192.168.1.255/24 | 24
192.168.1.0/24 | 24 | 192.168.1.255/25 | 25
10.0.0.0/8 | 8 | 10.1.2.3/8 | 8
10.0.0.0/32 | 32 | 10.1.2.3/8 | 8
10.1.2.3/32 | 32 | 10.1.2.3 | 32
10.1.2.0/24 | 24 | 10.1.2.3/24 | 24
10.1.0.0/16 | 16 | 10.1.2.3/16 | 16
10.0.0.0/8 | 8 | 10.1.2.3/8 | 8
10.0.0.0/8 | 8 | 11.1.2.3/8 | 8
10.0.0.0/8 | 8 | 9.1.2.3/8 | 8
10:23::f1/128 | 128 | 10:23::f1/64 | 64
10:23::8000/113 | 113 | 10:23::ffff | 128
::ffff:1.2.3.4/128 | 128 | ::4.3.2.1/24 | 24
(17 rows)
SELECT '' AS four, c AS cidr, masklen(c) AS "masklen(cidr)",
SELECT c AS cidr, masklen(c) AS "masklen(cidr)",
i AS inet, masklen(i) AS "masklen(inet)" FROM INET_TBL
WHERE masklen(c) <= 8;
four | cidr | masklen(cidr) | inet | masklen(inet)
------+------------+---------------+------------+---------------
| 10.0.0.0/8 | 8 | 10.1.2.3/8 | 8
| 10.0.0.0/8 | 8 | 10.1.2.3/8 | 8
| 10.0.0.0/8 | 8 | 11.1.2.3/8 | 8
| 10.0.0.0/8 | 8 | 9.1.2.3/8 | 8
cidr | masklen(cidr) | inet | masklen(inet)
------------+---------------+------------+---------------
10.0.0.0/8 | 8 | 10.1.2.3/8 | 8
10.0.0.0/8 | 8 | 10.1.2.3/8 | 8
10.0.0.0/8 | 8 | 11.1.2.3/8 | 8
10.0.0.0/8 | 8 | 9.1.2.3/8 | 8
(4 rows)
SELECT '' AS six, c AS cidr, i AS inet FROM INET_TBL
SELECT c AS cidr, i AS inet FROM INET_TBL
WHERE c = i;
six | cidr | inet
-----+----------------+----------------
| 192.168.1.0/24 | 192.168.1.0/24
| 10.1.2.3/32 | 10.1.2.3
cidr | inet
----------------+----------------
192.168.1.0/24 | 192.168.1.0/24
10.1.2.3/32 | 10.1.2.3
(2 rows)
SELECT '' AS ten, i, c,
SELECT i, c,
i < c AS lt, i <= c AS le, i = c AS eq,
i >= c AS ge, i > c AS gt, i <> c AS ne,
i << c AS sb, i <<= c AS sbe,
i >> c AS sup, i >>= c AS spe,
i && c AS ovr
FROM INET_TBL;
ten | i | c | lt | le | eq | ge | gt | ne | sb | sbe | sup | spe | ovr
-----+------------------+--------------------+----+----+----+----+----+----+----+-----+-----+-----+-----
| 192.168.1.226/24 | 192.168.1.0/24 | f | f | f | t | t | t | f | t | f | t | t
| 192.168.1.226 | 192.168.1.0/26 | f | f | f | t | t | t | f | f | f | f | f
| 192.168.1.0/24 | 192.168.1.0/24 | f | t | t | t | f | f | f | t | f | t | t
| 192.168.1.0/25 | 192.168.1.0/24 | f | f | f | t | t | t | t | t | f | f | t
| 192.168.1.255/24 | 192.168.1.0/24 | f | f | f | t | t | t | f | t | f | t | t
| 192.168.1.255/25 | 192.168.1.0/24 | f | f | f | t | t | t | t | t | f | f | t
| 10.1.2.3/8 | 10.0.0.0/8 | f | f | f | t | t | t | f | t | f | t | t
| 10.1.2.3/8 | 10.0.0.0/32 | t | t | f | f | f | t | f | f | t | t | t
| 10.1.2.3 | 10.1.2.3/32 | f | t | t | t | f | f | f | t | f | t | t
| 10.1.2.3/24 | 10.1.2.0/24 | f | f | f | t | t | t | f | t | f | t | t
| 10.1.2.3/16 | 10.1.0.0/16 | f | f | f | t | t | t | f | t | f | t | t
| 10.1.2.3/8 | 10.0.0.0/8 | f | f | f | t | t | t | f | t | f | t | t
| 11.1.2.3/8 | 10.0.0.0/8 | f | f | f | t | t | t | f | f | f | f | f
| 9.1.2.3/8 | 10.0.0.0/8 | t | t | f | f | f | t | f | f | f | f | f
| 10:23::f1/64 | 10:23::f1/128 | t | t | f | f | f | t | f | f | t | t | t
| 10:23::ffff | 10:23::8000/113 | f | f | f | t | t | t | t | t | f | f | t
| ::4.3.2.1/24 | ::ffff:1.2.3.4/128 | t | t | f | f | f | t | f | f | t | t | t
i | c | lt | le | eq | ge | gt | ne | sb | sbe | sup | spe | ovr
------------------+--------------------+----+----+----+----+----+----+----+-----+-----+-----+-----
192.168.1.226/24 | 192.168.1.0/24 | f | f | f | t | t | t | f | t | f | t | t
192.168.1.226 | 192.168.1.0/26 | f | f | f | t | t | t | f | f | f | f | f
192.168.1.0/24 | 192.168.1.0/24 | f | t | t | t | f | f | f | t | f | t | t
192.168.1.0/25 | 192.168.1.0/24 | f | f | f | t | t | t | t | t | f | f | t
192.168.1.255/24 | 192.168.1.0/24 | f | f | f | t | t | t | f | t | f | t | t
192.168.1.255/25 | 192.168.1.0/24 | f | f | f | t | t | t | t | t | f | f | t
10.1.2.3/8 | 10.0.0.0/8 | f | f | f | t | t | t | f | t | f | t | t
10.1.2.3/8 | 10.0.0.0/32 | t | t | f | f | f | t | f | f | t | t | t
10.1.2.3 | 10.1.2.3/32 | f | t | t | t | f | f | f | t | f | t | t
10.1.2.3/24 | 10.1.2.0/24 | f | f | f | t | t | t | f | t | f | t | t
10.1.2.3/16 | 10.1.0.0/16 | f | f | f | t | t | t | f | t | f | t | t
10.1.2.3/8 | 10.0.0.0/8 | f | f | f | t | t | t | f | t | f | t | t
11.1.2.3/8 | 10.0.0.0/8 | f | f | f | t | t | t | f | f | f | f | f
9.1.2.3/8 | 10.0.0.0/8 | t | t | f | f | f | t | f | f | f | f | f
10:23::f1/64 | 10:23::f1/128 | t | t | f | f | f | t | f | f | t | t | t
10:23::ffff | 10:23::8000/113 | f | f | f | t | t | t | t | t | f | f | t
::4.3.2.1/24 | ::ffff:1.2.3.4/128 | t | t | f | f | f | t | f | f | t | t | t
(17 rows)
SELECT max(i) AS max, min(i) AS min FROM INET_TBL;
@ -217,26 +217,26 @@ SELECT max(c) AS max, min(c) AS min FROM INET_TBL;
(1 row)
-- check the conversion to/from text and set_netmask
SELECT '' AS ten, set_masklen(inet(text(i)), 24) FROM INET_TBL;
ten | set_masklen
-----+------------------
| 192.168.1.226/24
| 192.168.1.226/24
| 192.168.1.0/24
| 192.168.1.0/24
| 192.168.1.255/24
| 192.168.1.255/24
| 10.1.2.3/24
| 10.1.2.3/24
| 10.1.2.3/24
| 10.1.2.3/24
| 10.1.2.3/24
| 10.1.2.3/24
| 11.1.2.3/24
| 9.1.2.3/24
| 10:23::f1/24
| 10:23::ffff/24
| ::4.3.2.1/24
SELECT set_masklen(inet(text(i)), 24) FROM INET_TBL;
set_masklen
------------------
192.168.1.226/24
192.168.1.226/24
192.168.1.0/24
192.168.1.0/24
192.168.1.255/24
192.168.1.255/24
10.1.2.3/24
10.1.2.3/24
10.1.2.3/24
10.1.2.3/24
10.1.2.3/24
10.1.2.3/24
11.1.2.3/24
9.1.2.3/24
10:23::f1/24
10:23::ffff/24
::4.3.2.1/24
(17 rows)
-- check that btree index works correctly

View File

@ -41,205 +41,205 @@ INSERT INTO INT2_TBL(f1) VALUES ('');
ERROR: invalid input syntax for type smallint: ""
LINE 1: INSERT INTO INT2_TBL(f1) VALUES ('');
^
SELECT '' AS five, * FROM INT2_TBL;
five | f1
------+--------
| 0
| 1234
| -1234
| 32767
| -32767
SELECT * FROM INT2_TBL;
f1
--------
0
1234
-1234
32767
-32767
(5 rows)
SELECT '' AS four, i.* FROM INT2_TBL i WHERE i.f1 <> int2 '0';
four | f1
------+--------
| 1234
| -1234
| 32767
| -32767
SELECT i.* FROM INT2_TBL i WHERE i.f1 <> int2 '0';
f1
--------
1234
-1234
32767
-32767
(4 rows)
SELECT '' AS four, i.* FROM INT2_TBL i WHERE i.f1 <> int4 '0';
four | f1
------+--------
| 1234
| -1234
| 32767
| -32767
SELECT i.* FROM INT2_TBL i WHERE i.f1 <> int4 '0';
f1
--------
1234
-1234
32767
-32767
(4 rows)
SELECT '' AS one, i.* FROM INT2_TBL i WHERE i.f1 = int2 '0';
one | f1
-----+----
| 0
SELECT i.* FROM INT2_TBL i WHERE i.f1 = int2 '0';
f1
----
0
(1 row)
SELECT '' AS one, i.* FROM INT2_TBL i WHERE i.f1 = int4 '0';
one | f1
-----+----
| 0
SELECT i.* FROM INT2_TBL i WHERE i.f1 = int4 '0';
f1
----
0
(1 row)
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 < int2 '0';
two | f1
-----+--------
| -1234
| -32767
SELECT i.* FROM INT2_TBL i WHERE i.f1 < int2 '0';
f1
--------
-1234
-32767
(2 rows)
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 < int4 '0';
two | f1
-----+--------
| -1234
| -32767
SELECT i.* FROM INT2_TBL i WHERE i.f1 < int4 '0';
f1
--------
-1234
-32767
(2 rows)
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 <= int2 '0';
three | f1
-------+--------
| 0
| -1234
| -32767
SELECT i.* FROM INT2_TBL i WHERE i.f1 <= int2 '0';
f1
--------
0
-1234
-32767
(3 rows)
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 <= int4 '0';
three | f1
-------+--------
| 0
| -1234
| -32767
SELECT i.* FROM INT2_TBL i WHERE i.f1 <= int4 '0';
f1
--------
0
-1234
-32767
(3 rows)
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 > int2 '0';
two | f1
-----+-------
| 1234
| 32767
SELECT i.* FROM INT2_TBL i WHERE i.f1 > int2 '0';
f1
-------
1234
32767
(2 rows)
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 > int4 '0';
two | f1
-----+-------
| 1234
| 32767
SELECT i.* FROM INT2_TBL i WHERE i.f1 > int4 '0';
f1
-------
1234
32767
(2 rows)
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 >= int2 '0';
three | f1
-------+-------
| 0
| 1234
| 32767
SELECT i.* FROM INT2_TBL i WHERE i.f1 >= int2 '0';
f1
-------
0
1234
32767
(3 rows)
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 >= int4 '0';
three | f1
-------+-------
| 0
| 1234
| 32767
SELECT i.* FROM INT2_TBL i WHERE i.f1 >= int4 '0';
f1
-------
0
1234
32767
(3 rows)
-- positive odds
SELECT '' AS one, i.* FROM INT2_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
one | f1
-----+-------
| 32767
SELECT i.* FROM INT2_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
f1
-------
32767
(1 row)
-- any evens
SELECT '' AS three, i.* FROM INT2_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
three | f1
-------+-------
| 0
| 1234
| -1234
SELECT i.* FROM INT2_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
f1
-------
0
1234
-1234
(3 rows)
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 * int2 '2' AS x FROM INT2_TBL i;
ERROR: smallint out of range
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT2_TBL i
SELECT i.f1, i.f1 * int2 '2' AS x FROM INT2_TBL i
WHERE abs(f1) < 16384;
five | f1 | x
------+-------+-------
| 0 | 0
| 1234 | 2468
| -1234 | -2468
f1 | x
-------+-------
0 | 0
1234 | 2468
-1234 | -2468
(3 rows)
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT2_TBL i;
five | f1 | x
------+--------+--------
| 0 | 0
| 1234 | 2468
| -1234 | -2468
| 32767 | 65534
| -32767 | -65534
SELECT i.f1, i.f1 * int4 '2' AS x FROM INT2_TBL i;
f1 | x
--------+--------
0 | 0
1234 | 2468
-1234 | -2468
32767 | 65534
-32767 | -65534
(5 rows)
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 + int2 '2' AS x FROM INT2_TBL i;
ERROR: smallint out of range
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT2_TBL i
SELECT i.f1, i.f1 + int2 '2' AS x FROM INT2_TBL i
WHERE f1 < 32766;
five | f1 | x
------+--------+--------
| 0 | 2
| 1234 | 1236
| -1234 | -1232
| -32767 | -32765
f1 | x
--------+--------
0 | 2
1234 | 1236
-1234 | -1232
-32767 | -32765
(4 rows)
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT2_TBL i;
five | f1 | x
------+--------+--------
| 0 | 2
| 1234 | 1236
| -1234 | -1232
| 32767 | 32769
| -32767 | -32765
SELECT i.f1, i.f1 + int4 '2' AS x FROM INT2_TBL i;
f1 | x
--------+--------
0 | 2
1234 | 1236
-1234 | -1232
32767 | 32769
-32767 | -32765
(5 rows)
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 - int2 '2' AS x FROM INT2_TBL i;
ERROR: smallint out of range
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT2_TBL i
SELECT i.f1, i.f1 - int2 '2' AS x FROM INT2_TBL i
WHERE f1 > -32767;
five | f1 | x
------+-------+-------
| 0 | -2
| 1234 | 1232
| -1234 | -1236
| 32767 | 32765
f1 | x
-------+-------
0 | -2
1234 | 1232
-1234 | -1236
32767 | 32765
(4 rows)
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT2_TBL i;
five | f1 | x
------+--------+--------
| 0 | -2
| 1234 | 1232
| -1234 | -1236
| 32767 | 32765
| -32767 | -32769
SELECT i.f1, i.f1 - int4 '2' AS x FROM INT2_TBL i;
f1 | x
--------+--------
0 | -2
1234 | 1232
-1234 | -1236
32767 | 32765
-32767 | -32769
(5 rows)
SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT2_TBL i;
five | f1 | x
------+--------+--------
| 0 | 0
| 1234 | 617
| -1234 | -617
| 32767 | 16383
| -32767 | -16383
SELECT i.f1, i.f1 / int2 '2' AS x FROM INT2_TBL i;
f1 | x
--------+--------
0 | 0
1234 | 617
-1234 | -617
32767 | 16383
-32767 | -16383
(5 rows)
SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT2_TBL i;
five | f1 | x
------+--------+--------
| 0 | 0
| 1234 | 617
| -1234 | -617
| 32767 | 16383
| -32767 | -16383
SELECT i.f1, i.f1 / int4 '2' AS x FROM INT2_TBL i;
f1 | x
--------+--------
0 | 0
1234 | 617
-1234 | -617
32767 | 16383
-32767 | -16383
(5 rows)
-- corner cases

View File

@ -41,210 +41,210 @@ INSERT INTO INT4_TBL(f1) VALUES ('');
ERROR: invalid input syntax for type integer: ""
LINE 1: INSERT INTO INT4_TBL(f1) VALUES ('');
^
SELECT '' AS five, * FROM INT4_TBL;
five | f1
------+-------------
| 0
| 123456
| -123456
| 2147483647
| -2147483647
SELECT * FROM INT4_TBL;
f1
-------------
0
123456
-123456
2147483647
-2147483647
(5 rows)
SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int2 '0';
four | f1
------+-------------
| 123456
| -123456
| 2147483647
| -2147483647
SELECT i.* FROM INT4_TBL i WHERE i.f1 <> int2 '0';
f1
-------------
123456
-123456
2147483647
-2147483647
(4 rows)
SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int4 '0';
four | f1
------+-------------
| 123456
| -123456
| 2147483647
| -2147483647
SELECT i.* FROM INT4_TBL i WHERE i.f1 <> int4 '0';
f1
-------------
123456
-123456
2147483647
-2147483647
(4 rows)
SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int2 '0';
one | f1
-----+----
| 0
SELECT i.* FROM INT4_TBL i WHERE i.f1 = int2 '0';
f1
----
0
(1 row)
SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int4 '0';
one | f1
-----+----
| 0
SELECT i.* FROM INT4_TBL i WHERE i.f1 = int4 '0';
f1
----
0
(1 row)
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int2 '0';
two | f1
-----+-------------
| -123456
| -2147483647
SELECT i.* FROM INT4_TBL i WHERE i.f1 < int2 '0';
f1
-------------
-123456
-2147483647
(2 rows)
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int4 '0';
two | f1
-----+-------------
| -123456
| -2147483647
SELECT i.* FROM INT4_TBL i WHERE i.f1 < int4 '0';
f1
-------------
-123456
-2147483647
(2 rows)
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int2 '0';
three | f1
-------+-------------
| 0
| -123456
| -2147483647
SELECT i.* FROM INT4_TBL i WHERE i.f1 <= int2 '0';
f1
-------------
0
-123456
-2147483647
(3 rows)
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int4 '0';
three | f1
-------+-------------
| 0
| -123456
| -2147483647
SELECT i.* FROM INT4_TBL i WHERE i.f1 <= int4 '0';
f1
-------------
0
-123456
-2147483647
(3 rows)
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int2 '0';
two | f1
-----+------------
| 123456
| 2147483647
SELECT i.* FROM INT4_TBL i WHERE i.f1 > int2 '0';
f1
------------
123456
2147483647
(2 rows)
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int4 '0';
two | f1
-----+------------
| 123456
| 2147483647
SELECT i.* FROM INT4_TBL i WHERE i.f1 > int4 '0';
f1
------------
123456
2147483647
(2 rows)
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int2 '0';
three | f1
-------+------------
| 0
| 123456
| 2147483647
SELECT i.* FROM INT4_TBL i WHERE i.f1 >= int2 '0';
f1
------------
0
123456
2147483647
(3 rows)
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int4 '0';
three | f1
-------+------------
| 0
| 123456
| 2147483647
SELECT i.* FROM INT4_TBL i WHERE i.f1 >= int4 '0';
f1
------------
0
123456
2147483647
(3 rows)
-- positive odds
SELECT '' AS one, i.* FROM INT4_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
one | f1
-----+------------
| 2147483647
SELECT i.* FROM INT4_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
f1
------------
2147483647
(1 row)
-- any evens
SELECT '' AS three, i.* FROM INT4_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
three | f1
-------+---------
| 0
| 123456
| -123456
SELECT i.* FROM INT4_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
f1
---------
0
123456
-123456
(3 rows)
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i;
ERROR: integer out of range
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i
WHERE abs(f1) < 1073741824;
five | f1 | x
------+---------+---------
| 0 | 0
| 123456 | 246912
| -123456 | -246912
f1 | x
---------+---------
0 | 0
123456 | 246912
-123456 | -246912
(3 rows)
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i;
ERROR: integer out of range
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i
WHERE abs(f1) < 1073741824;
five | f1 | x
------+---------+---------
| 0 | 0
| 123456 | 246912
| -123456 | -246912
f1 | x
---------+---------
0 | 0
123456 | 246912
-123456 | -246912
(3 rows)
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i;
ERROR: integer out of range
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i
WHERE f1 < 2147483646;
five | f1 | x
------+-------------+-------------
| 0 | 2
| 123456 | 123458
| -123456 | -123454
| -2147483647 | -2147483645
f1 | x
-------------+-------------
0 | 2
123456 | 123458
-123456 | -123454
-2147483647 | -2147483645
(4 rows)
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i;
ERROR: integer out of range
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i
WHERE f1 < 2147483646;
five | f1 | x
------+-------------+-------------
| 0 | 2
| 123456 | 123458
| -123456 | -123454
| -2147483647 | -2147483645
f1 | x
-------------+-------------
0 | 2
123456 | 123458
-123456 | -123454
-2147483647 | -2147483645
(4 rows)
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i;
ERROR: integer out of range
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i
WHERE f1 > -2147483647;
five | f1 | x
------+------------+------------
| 0 | -2
| 123456 | 123454
| -123456 | -123458
| 2147483647 | 2147483645
f1 | x
------------+------------
0 | -2
123456 | 123454
-123456 | -123458
2147483647 | 2147483645
(4 rows)
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i;
ERROR: integer out of range
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i
WHERE f1 > -2147483647;
five | f1 | x
------+------------+------------
| 0 | -2
| 123456 | 123454
| -123456 | -123458
| 2147483647 | 2147483645
f1 | x
------------+------------
0 | -2
123456 | 123454
-123456 | -123458
2147483647 | 2147483645
(4 rows)
SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT4_TBL i;
five | f1 | x
------+-------------+-------------
| 0 | 0
| 123456 | 61728
| -123456 | -61728
| 2147483647 | 1073741823
| -2147483647 | -1073741823
SELECT i.f1, i.f1 / int2 '2' AS x FROM INT4_TBL i;
f1 | x
-------------+-------------
0 | 0
123456 | 61728
-123456 | -61728
2147483647 | 1073741823
-2147483647 | -1073741823
(5 rows)
SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT4_TBL i;
five | f1 | x
------+-------------+-------------
| 0 | 0
| 123456 | 61728
| -123456 | -61728
| 2147483647 | 1073741823
| -2147483647 | -1073741823
SELECT i.f1, i.f1 / int4 '2' AS x FROM INT4_TBL i;
f1 | x
-------------+-------------
0 | 0
123456 | 61728
-123456 | -61728
2147483647 | 1073741823
-2147483647 | -1073741823
(5 rows)
--

View File

@ -277,75 +277,75 @@ SELECT * FROM INT8_TBL WHERE '123'::int2 >= q1;
123 | 4567890123456789
(2 rows)
SELECT '' AS five, q1 AS plus, -q1 AS minus FROM INT8_TBL;
five | plus | minus
------+------------------+-------------------
| 123 | -123
| 123 | -123
| 4567890123456789 | -4567890123456789
| 4567890123456789 | -4567890123456789
| 4567890123456789 | -4567890123456789
SELECT q1 AS plus, -q1 AS minus FROM INT8_TBL;
plus | minus
------------------+-------------------
123 | -123
123 | -123
4567890123456789 | -4567890123456789
4567890123456789 | -4567890123456789
4567890123456789 | -4567890123456789
(5 rows)
SELECT '' AS five, q1, q2, q1 + q2 AS plus FROM INT8_TBL;
five | q1 | q2 | plus
------+------------------+-------------------+------------------
| 123 | 456 | 579
| 123 | 4567890123456789 | 4567890123456912
| 4567890123456789 | 123 | 4567890123456912
| 4567890123456789 | 4567890123456789 | 9135780246913578
| 4567890123456789 | -4567890123456789 | 0
SELECT q1, q2, q1 + q2 AS plus FROM INT8_TBL;
q1 | q2 | plus
------------------+-------------------+------------------
123 | 456 | 579
123 | 4567890123456789 | 4567890123456912
4567890123456789 | 123 | 4567890123456912
4567890123456789 | 4567890123456789 | 9135780246913578
4567890123456789 | -4567890123456789 | 0
(5 rows)
SELECT '' AS five, q1, q2, q1 - q2 AS minus FROM INT8_TBL;
five | q1 | q2 | minus
------+------------------+-------------------+-------------------
| 123 | 456 | -333
| 123 | 4567890123456789 | -4567890123456666
| 4567890123456789 | 123 | 4567890123456666
| 4567890123456789 | 4567890123456789 | 0
| 4567890123456789 | -4567890123456789 | 9135780246913578
SELECT q1, q2, q1 - q2 AS minus FROM INT8_TBL;
q1 | q2 | minus
------------------+-------------------+-------------------
123 | 456 | -333
123 | 4567890123456789 | -4567890123456666
4567890123456789 | 123 | 4567890123456666
4567890123456789 | 4567890123456789 | 0
4567890123456789 | -4567890123456789 | 9135780246913578
(5 rows)
SELECT '' AS three, q1, q2, q1 * q2 AS multiply FROM INT8_TBL;
SELECT q1, q2, q1 * q2 AS multiply FROM INT8_TBL;
ERROR: bigint out of range
SELECT '' AS three, q1, q2, q1 * q2 AS multiply FROM INT8_TBL
SELECT q1, q2, q1 * q2 AS multiply FROM INT8_TBL
WHERE q1 < 1000 or (q2 > 0 and q2 < 1000);
three | q1 | q2 | multiply
-------+------------------+------------------+--------------------
| 123 | 456 | 56088
| 123 | 4567890123456789 | 561850485185185047
| 4567890123456789 | 123 | 561850485185185047
q1 | q2 | multiply
------------------+------------------+--------------------
123 | 456 | 56088
123 | 4567890123456789 | 561850485185185047
4567890123456789 | 123 | 561850485185185047
(3 rows)
SELECT '' AS five, q1, q2, q1 / q2 AS divide, q1 % q2 AS mod FROM INT8_TBL;
five | q1 | q2 | divide | mod
------+------------------+-------------------+----------------+-----
| 123 | 456 | 0 | 123
| 123 | 4567890123456789 | 0 | 123
| 4567890123456789 | 123 | 37137318076884 | 57
| 4567890123456789 | 4567890123456789 | 1 | 0
| 4567890123456789 | -4567890123456789 | -1 | 0
SELECT q1, q2, q1 / q2 AS divide, q1 % q2 AS mod FROM INT8_TBL;
q1 | q2 | divide | mod
------------------+-------------------+----------------+-----
123 | 456 | 0 | 123
123 | 4567890123456789 | 0 | 123
4567890123456789 | 123 | 37137318076884 | 57
4567890123456789 | 4567890123456789 | 1 | 0
4567890123456789 | -4567890123456789 | -1 | 0
(5 rows)
SELECT '' AS five, q1, float8(q1) FROM INT8_TBL;
five | q1 | float8
------+------------------+-----------------------
| 123 | 123
| 123 | 123
| 4567890123456789 | 4.567890123456789e+15
| 4567890123456789 | 4.567890123456789e+15
| 4567890123456789 | 4.567890123456789e+15
SELECT q1, float8(q1) FROM INT8_TBL;
q1 | float8
------------------+-----------------------
123 | 123
123 | 123
4567890123456789 | 4.567890123456789e+15
4567890123456789 | 4.567890123456789e+15
4567890123456789 | 4.567890123456789e+15
(5 rows)
SELECT '' AS five, q2, float8(q2) FROM INT8_TBL;
five | q2 | float8
------+-------------------+------------------------
| 456 | 456
| 4567890123456789 | 4.567890123456789e+15
| 123 | 123
| 4567890123456789 | 4.567890123456789e+15
| -4567890123456789 | -4.567890123456789e+15
SELECT q2, float8(q2) FROM INT8_TBL;
q2 | float8
-------------------+------------------------
456 | 456
4567890123456789 | 4.567890123456789e+15
123 | 123
4567890123456789 | 4.567890123456789e+15
-4567890123456789 | -4.567890123456789e+15
(5 rows)
SELECT 37 + q1 AS plus4 FROM INT8_TBL;
@ -368,24 +368,24 @@ SELECT 37 - q1 AS minus4 FROM INT8_TBL;
-4567890123456752
(5 rows)
SELECT '' AS five, 2 * q1 AS "twice int4" FROM INT8_TBL;
five | twice int4
------+------------------
| 246
| 246
| 9135780246913578
| 9135780246913578
| 9135780246913578
SELECT 2 * q1 AS "twice int4" FROM INT8_TBL;
twice int4
------------------
246
246
9135780246913578
9135780246913578
9135780246913578
(5 rows)
SELECT '' AS five, q1 * 2 AS "twice int4" FROM INT8_TBL;
five | twice int4
------+------------------
| 246
| 246
| 9135780246913578
| 9135780246913578
| 9135780246913578
SELECT q1 * 2 AS "twice int4" FROM INT8_TBL;
twice int4
------------------
246
246
9135780246913578
9135780246913578
9135780246913578
(5 rows)
-- int8 op int4
@ -456,178 +456,178 @@ SELECT max(q1), max(q2) FROM INT8_TBL;
-- TO_CHAR()
--
SELECT '' AS to_char_1, to_char(q1, '9G999G999G999G999G999'), to_char(q2, '9,999,999,999,999,999')
SELECT to_char(q1, '9G999G999G999G999G999'), to_char(q2, '9,999,999,999,999,999')
FROM INT8_TBL;
to_char_1 | to_char | to_char
-----------+------------------------+------------------------
| 123 | 456
| 123 | 4,567,890,123,456,789
| 4,567,890,123,456,789 | 123
| 4,567,890,123,456,789 | 4,567,890,123,456,789
| 4,567,890,123,456,789 | -4,567,890,123,456,789
to_char | to_char
------------------------+------------------------
123 | 456
123 | 4,567,890,123,456,789
4,567,890,123,456,789 | 123
4,567,890,123,456,789 | 4,567,890,123,456,789
4,567,890,123,456,789 | -4,567,890,123,456,789
(5 rows)
SELECT '' AS to_char_2, to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999')
SELECT to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999')
FROM INT8_TBL;
to_char_2 | to_char | to_char
-----------+--------------------------------+--------------------------------
| 123.000,000 | 456.000,000
| 123.000,000 | 4,567,890,123,456,789.000,000
| 4,567,890,123,456,789.000,000 | 123.000,000
| 4,567,890,123,456,789.000,000 | 4,567,890,123,456,789.000,000
| 4,567,890,123,456,789.000,000 | -4,567,890,123,456,789.000,000
to_char | to_char
--------------------------------+--------------------------------
123.000,000 | 456.000,000
123.000,000 | 4,567,890,123,456,789.000,000
4,567,890,123,456,789.000,000 | 123.000,000
4,567,890,123,456,789.000,000 | 4,567,890,123,456,789.000,000
4,567,890,123,456,789.000,000 | -4,567,890,123,456,789.000,000
(5 rows)
SELECT '' AS to_char_3, to_char( (q1 * -1), '9999999999999999PR'), to_char( (q2 * -1), '9999999999999999.999PR')
SELECT to_char( (q1 * -1), '9999999999999999PR'), to_char( (q2 * -1), '9999999999999999.999PR')
FROM INT8_TBL;
to_char_3 | to_char | to_char
-----------+--------------------+------------------------
| <123> | <456.000>
| <123> | <4567890123456789.000>
| <4567890123456789> | <123.000>
| <4567890123456789> | <4567890123456789.000>
| <4567890123456789> | 4567890123456789.000
to_char | to_char
--------------------+------------------------
<123> | <456.000>
<123> | <4567890123456789.000>
<4567890123456789> | <123.000>
<4567890123456789> | <4567890123456789.000>
<4567890123456789> | 4567890123456789.000
(5 rows)
SELECT '' AS to_char_4, to_char( (q1 * -1), '9999999999999999S'), to_char( (q2 * -1), 'S9999999999999999')
SELECT to_char( (q1 * -1), '9999999999999999S'), to_char( (q2 * -1), 'S9999999999999999')
FROM INT8_TBL;
to_char_4 | to_char | to_char
-----------+-------------------+-------------------
| 123- | -456
| 123- | -4567890123456789
| 4567890123456789- | -123
| 4567890123456789- | -4567890123456789
| 4567890123456789- | +4567890123456789
to_char | to_char
-------------------+-------------------
123- | -456
123- | -4567890123456789
4567890123456789- | -123
4567890123456789- | -4567890123456789
4567890123456789- | +4567890123456789
(5 rows)
SELECT '' AS to_char_5, to_char(q2, 'MI9999999999999999') FROM INT8_TBL;
to_char_5 | to_char
-----------+-------------------
| 456
| 4567890123456789
| 123
| 4567890123456789
| -4567890123456789
SELECT to_char(q2, 'MI9999999999999999') FROM INT8_TBL;
to_char
-------------------
456
4567890123456789
123
4567890123456789
-4567890123456789
(5 rows)
SELECT '' AS to_char_6, to_char(q2, 'FMS9999999999999999') FROM INT8_TBL;
to_char_6 | to_char
-----------+-------------------
| +456
| +4567890123456789
| +123
| +4567890123456789
| -4567890123456789
SELECT to_char(q2, 'FMS9999999999999999') FROM INT8_TBL;
to_char
-------------------
+456
+4567890123456789
+123
+4567890123456789
-4567890123456789
(5 rows)
SELECT '' AS to_char_7, to_char(q2, 'FM9999999999999999THPR') FROM INT8_TBL;
to_char_7 | to_char
-----------+--------------------
| 456TH
| 4567890123456789TH
| 123RD
| 4567890123456789TH
| <4567890123456789>
SELECT to_char(q2, 'FM9999999999999999THPR') FROM INT8_TBL;
to_char
--------------------
456TH
4567890123456789TH
123RD
4567890123456789TH
<4567890123456789>
(5 rows)
SELECT '' AS to_char_8, to_char(q2, 'SG9999999999999999th') FROM INT8_TBL;
to_char_8 | to_char
-----------+---------------------
| + 456th
| +4567890123456789th
| + 123rd
| +4567890123456789th
| -4567890123456789
SELECT to_char(q2, 'SG9999999999999999th') FROM INT8_TBL;
to_char
---------------------
+ 456th
+4567890123456789th
+ 123rd
+4567890123456789th
-4567890123456789
(5 rows)
SELECT '' AS to_char_9, to_char(q2, '0999999999999999') FROM INT8_TBL;
to_char_9 | to_char
-----------+-------------------
| 0000000000000456
| 4567890123456789
| 0000000000000123
| 4567890123456789
| -4567890123456789
SELECT to_char(q2, '0999999999999999') FROM INT8_TBL;
to_char
-------------------
0000000000000456
4567890123456789
0000000000000123
4567890123456789
-4567890123456789
(5 rows)
SELECT '' AS to_char_10, to_char(q2, 'S0999999999999999') FROM INT8_TBL;
to_char_10 | to_char
------------+-------------------
| +0000000000000456
| +4567890123456789
| +0000000000000123
| +4567890123456789
| -4567890123456789
SELECT to_char(q2, 'S0999999999999999') FROM INT8_TBL;
to_char
-------------------
+0000000000000456
+4567890123456789
+0000000000000123
+4567890123456789
-4567890123456789
(5 rows)
SELECT '' AS to_char_11, to_char(q2, 'FM0999999999999999') FROM INT8_TBL;
to_char_11 | to_char
------------+-------------------
| 0000000000000456
| 4567890123456789
| 0000000000000123
| 4567890123456789
| -4567890123456789
SELECT to_char(q2, 'FM0999999999999999') FROM INT8_TBL;
to_char
-------------------
0000000000000456
4567890123456789
0000000000000123
4567890123456789
-4567890123456789
(5 rows)
SELECT '' AS to_char_12, to_char(q2, 'FM9999999999999999.000') FROM INT8_TBL;
to_char_12 | to_char
------------+-----------------------
| 456.000
| 4567890123456789.000
| 123.000
| 4567890123456789.000
| -4567890123456789.000
SELECT to_char(q2, 'FM9999999999999999.000') FROM INT8_TBL;
to_char
-----------------------
456.000
4567890123456789.000
123.000
4567890123456789.000
-4567890123456789.000
(5 rows)
SELECT '' AS to_char_13, to_char(q2, 'L9999999999999999.000') FROM INT8_TBL;
to_char_13 | to_char
------------+------------------------
| 456.000
| 4567890123456789.000
| 123.000
| 4567890123456789.000
| -4567890123456789.000
SELECT to_char(q2, 'L9999999999999999.000') FROM INT8_TBL;
to_char
------------------------
456.000
4567890123456789.000
123.000
4567890123456789.000
-4567890123456789.000
(5 rows)
SELECT '' AS to_char_14, to_char(q2, 'FM9999999999999999.999') FROM INT8_TBL;
to_char_14 | to_char
------------+--------------------
| 456.
| 4567890123456789.
| 123.
| 4567890123456789.
| -4567890123456789.
SELECT to_char(q2, 'FM9999999999999999.999') FROM INT8_TBL;
to_char
--------------------
456.
4567890123456789.
123.
4567890123456789.
-4567890123456789.
(5 rows)
SELECT '' AS to_char_15, to_char(q2, 'S 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . 9 9 9') FROM INT8_TBL;
to_char_15 | to_char
------------+-------------------------------------------
| +4 5 6 . 0 0 0
| +4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 . 0 0 0
| +1 2 3 . 0 0 0
| +4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 . 0 0 0
| -4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 . 0 0 0
SELECT to_char(q2, 'S 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . 9 9 9') FROM INT8_TBL;
to_char
-------------------------------------------
+4 5 6 . 0 0 0
+4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 . 0 0 0
+1 2 3 . 0 0 0
+4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 . 0 0 0
-4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 . 0 0 0
(5 rows)
SELECT '' AS to_char_16, to_char(q2, E'99999 "text" 9999 "9999" 999 "\\"text between quote marks\\"" 9999') FROM INT8_TBL;
to_char_16 | to_char
------------+-----------------------------------------------------------
| text 9999 "text between quote marks" 456
| 45678 text 9012 9999 345 "text between quote marks" 6789
| text 9999 "text between quote marks" 123
| 45678 text 9012 9999 345 "text between quote marks" 6789
| -45678 text 9012 9999 345 "text between quote marks" 6789
SELECT to_char(q2, E'99999 "text" 9999 "9999" 999 "\\"text between quote marks\\"" 9999') FROM INT8_TBL;
to_char
-----------------------------------------------------------
text 9999 "text between quote marks" 456
45678 text 9012 9999 345 "text between quote marks" 6789
text 9999 "text between quote marks" 123
45678 text 9012 9999 345 "text between quote marks" 6789
-45678 text 9012 9999 345 "text between quote marks" 6789
(5 rows)
SELECT '' AS to_char_17, to_char(q2, '999999SG9999999999') FROM INT8_TBL;
to_char_17 | to_char
------------+-------------------
| + 456
| 456789+0123456789
| + 123
| 456789+0123456789
| 456789-0123456789
SELECT to_char(q2, '999999SG9999999999') FROM INT8_TBL;
to_char
-------------------
+ 456
456789+0123456789
+ 123
456789+0123456789
456789-0123456789
(5 rows)
-- check min/max values and overflow behavior

View File

@ -73,138 +73,138 @@ ERROR: invalid input syntax for type interval: "@ 30 eons ago"
LINE 1: INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 30 eons ago');
^
-- test interval operators
SELECT '' AS ten, * FROM INTERVAL_TBL;
ten | f1
-----+-----------------
| 00:01:00
| 05:00:00
| 10 days
| 34 years
| 3 mons
| -00:00:14
| 1 day 02:03:04
| 6 years
| 5 mons
| 5 mons 12:00:00
SELECT * FROM INTERVAL_TBL;
f1
-----------------
00:01:00
05:00:00
10 days
34 years
3 mons
-00:00:14
1 day 02:03:04
6 years
5 mons
5 mons 12:00:00
(10 rows)
SELECT '' AS nine, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 <> interval '@ 10 days';
nine | f1
------+-----------------
| 00:01:00
| 05:00:00
| 34 years
| 3 mons
| -00:00:14
| 1 day 02:03:04
| 6 years
| 5 mons
| 5 mons 12:00:00
f1
-----------------
00:01:00
05:00:00
34 years
3 mons
-00:00:14
1 day 02:03:04
6 years
5 mons
5 mons 12:00:00
(9 rows)
SELECT '' AS three, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 <= interval '@ 5 hours';
three | f1
-------+-----------
| 00:01:00
| 05:00:00
| -00:00:14
f1
-----------
00:01:00
05:00:00
-00:00:14
(3 rows)
SELECT '' AS three, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 < interval '@ 1 day';
three | f1
-------+-----------
| 00:01:00
| 05:00:00
| -00:00:14
f1
-----------
00:01:00
05:00:00
-00:00:14
(3 rows)
SELECT '' AS one, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 = interval '@ 34 years';
one | f1
-----+----------
| 34 years
f1
----------
34 years
(1 row)
SELECT '' AS five, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 >= interval '@ 1 month';
five | f1
------+-----------------
| 34 years
| 3 mons
| 6 years
| 5 mons
| 5 mons 12:00:00
f1
-----------------
34 years
3 mons
6 years
5 mons
5 mons 12:00:00
(5 rows)
SELECT '' AS nine, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 > interval '@ 3 seconds ago';
nine | f1
------+-----------------
| 00:01:00
| 05:00:00
| 10 days
| 34 years
| 3 mons
| 1 day 02:03:04
| 6 years
| 5 mons
| 5 mons 12:00:00
f1
-----------------
00:01:00
05:00:00
10 days
34 years
3 mons
1 day 02:03:04
6 years
5 mons
5 mons 12:00:00
(9 rows)
SELECT '' AS fortyfive, r1.*, r2.*
SELECT r1.*, r2.*
FROM INTERVAL_TBL r1, INTERVAL_TBL r2
WHERE r1.f1 > r2.f1
ORDER BY r1.f1, r2.f1;
fortyfive | f1 | f1
-----------+-----------------+-----------------
| 00:01:00 | -00:00:14
| 05:00:00 | -00:00:14
| 05:00:00 | 00:01:00
| 1 day 02:03:04 | -00:00:14
| 1 day 02:03:04 | 00:01:00
| 1 day 02:03:04 | 05:00:00
| 10 days | -00:00:14
| 10 days | 00:01:00
| 10 days | 05:00:00
| 10 days | 1 day 02:03:04
| 3 mons | -00:00:14
| 3 mons | 00:01:00
| 3 mons | 05:00:00
| 3 mons | 1 day 02:03:04
| 3 mons | 10 days
| 5 mons | -00:00:14
| 5 mons | 00:01:00
| 5 mons | 05:00:00
| 5 mons | 1 day 02:03:04
| 5 mons | 10 days
| 5 mons | 3 mons
| 5 mons 12:00:00 | -00:00:14
| 5 mons 12:00:00 | 00:01:00
| 5 mons 12:00:00 | 05:00:00
| 5 mons 12:00:00 | 1 day 02:03:04
| 5 mons 12:00:00 | 10 days
| 5 mons 12:00:00 | 3 mons
| 5 mons 12:00:00 | 5 mons
| 6 years | -00:00:14
| 6 years | 00:01:00
| 6 years | 05:00:00
| 6 years | 1 day 02:03:04
| 6 years | 10 days
| 6 years | 3 mons
| 6 years | 5 mons
| 6 years | 5 mons 12:00:00
| 34 years | -00:00:14
| 34 years | 00:01:00
| 34 years | 05:00:00
| 34 years | 1 day 02:03:04
| 34 years | 10 days
| 34 years | 3 mons
| 34 years | 5 mons
| 34 years | 5 mons 12:00:00
| 34 years | 6 years
f1 | f1
-----------------+-----------------
00:01:00 | -00:00:14
05:00:00 | -00:00:14
05:00:00 | 00:01:00
1 day 02:03:04 | -00:00:14
1 day 02:03:04 | 00:01:00
1 day 02:03:04 | 05:00:00
10 days | -00:00:14
10 days | 00:01:00
10 days | 05:00:00
10 days | 1 day 02:03:04
3 mons | -00:00:14
3 mons | 00:01:00
3 mons | 05:00:00
3 mons | 1 day 02:03:04
3 mons | 10 days
5 mons | -00:00:14
5 mons | 00:01:00
5 mons | 05:00:00
5 mons | 1 day 02:03:04
5 mons | 10 days
5 mons | 3 mons
5 mons 12:00:00 | -00:00:14
5 mons 12:00:00 | 00:01:00
5 mons 12:00:00 | 05:00:00
5 mons 12:00:00 | 1 day 02:03:04
5 mons 12:00:00 | 10 days
5 mons 12:00:00 | 3 mons
5 mons 12:00:00 | 5 mons
6 years | -00:00:14
6 years | 00:01:00
6 years | 05:00:00
6 years | 1 day 02:03:04
6 years | 10 days
6 years | 3 mons
6 years | 5 mons
6 years | 5 mons 12:00:00
34 years | -00:00:14
34 years | 00:01:00
34 years | 05:00:00
34 years | 1 day 02:03:04
34 years | 10 days
34 years | 3 mons
34 years | 5 mons
34 years | 5 mons 12:00:00
34 years | 6 years
(45 rows)
-- Test intervals that are large enough to overflow 64 bits in comparisons
@ -342,19 +342,19 @@ FROM INTERVAL_MULDIV_TBL;
DROP TABLE INTERVAL_MULDIV_TBL;
SET DATESTYLE = 'postgres';
SET IntervalStyle to postgres_verbose;
SELECT '' AS ten, * FROM INTERVAL_TBL;
ten | f1
-----+-------------------------------
| @ 1 min
| @ 5 hours
| @ 10 days
| @ 34 years
| @ 3 mons
| @ 14 secs ago
| @ 1 day 2 hours 3 mins 4 secs
| @ 6 years
| @ 5 mons
| @ 5 mons 12 hours
SELECT * FROM INTERVAL_TBL;
f1
-------------------------------
@ 1 min
@ 5 hours
@ 10 days
@ 34 years
@ 3 mons
@ 14 secs ago
@ 1 day 2 hours 3 mins 4 secs
@ 6 years
@ 5 mons
@ 5 mons 12 hours
(10 rows)
-- test avg(interval), which is somewhat fragile since people have been

File diff suppressed because it is too large Load Diff

View File

@ -26,101 +26,101 @@ INSERT INTO NAME_TBL(f1) VALUES ('343f%2a');
INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf');
INSERT INTO NAME_TBL(f1) VALUES ('');
INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ');
SELECT '' AS seven, * FROM NAME_TBL;
seven | f1
-------+-----------------------------------------------------------------
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
| asdfghjkl;
| 343f%2a
| d34aaasdf
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
SELECT * FROM NAME_TBL;
f1
-----------------------------------------------------------------
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
asdfghjkl;
343f%2a
d34aaasdf
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
(7 rows)
SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
six | f1
-----+-----------------------------------------------------------------
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
| asdfghjkl;
| 343f%2a
| d34aaasdf
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 <> '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
f1
-----------------------------------------------------------------
1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
asdfghjkl;
343f%2a
d34aaasdf
(5 rows)
SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
one | f1
-----+-----------------------------------------------------------------
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
f1
-----------------------------------------------------------------
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
(2 rows)
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
three | f1
-------+----
|
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 < '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
f1
----
(1 row)
SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
four | f1
------+-----------------------------------------------------------------
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 <= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
f1
-----------------------------------------------------------------
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
(3 rows)
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
three | f1
-------+-----------------------------------------------------------------
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
| asdfghjkl;
| 343f%2a
| d34aaasdf
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 > '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
f1
-----------------------------------------------------------------
1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
asdfghjkl;
343f%2a
d34aaasdf
(4 rows)
SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
four | f1
------+-----------------------------------------------------------------
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
| asdfghjkl;
| 343f%2a
| d34aaasdf
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 >= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
f1
-----------------------------------------------------------------
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
asdfghjkl;
343f%2a
d34aaasdf
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
(6 rows)
SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
seven | f1
-------+-----------------------------------------------------------------
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
| asdfghjkl;
| 343f%2a
| d34aaasdf
|
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
f1
-----------------------------------------------------------------
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
asdfghjkl;
343f%2a
d34aaasdf
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
(7 rows)
SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
zero | f1
------+----
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
f1
----
(0 rows)
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
three | f1
-------+-----------------------------------------------------------------
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
| 1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
| 343f%2a
| d34aaasdf
| 1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
f1
-----------------------------------------------------------------
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
1234567890abcdefghijklmnopqrstuvwxyz1234567890abcdefghijklmnopq
343f%2a
d34aaasdf
1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQ
(5 rows)
SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
two | f1
-----+------------
| asdfghjkl;
| d34aaasdf
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
f1
------------
asdfghjkl;
d34aaasdf
(2 rows)
DROP TABLE NAME_TBL;

File diff suppressed because it is too large Load Diff

View File

@ -12,20 +12,20 @@ INSERT INTO TEMP_FLOAT (f1)
SELECT float8(f1) FROM INT4_TBL;
INSERT INTO TEMP_FLOAT (f1)
SELECT float8(f1) FROM INT2_TBL;
SELECT '' AS ten, f1 FROM TEMP_FLOAT
SELECT f1 FROM TEMP_FLOAT
ORDER BY f1;
ten | f1
-----+-------------
| -2147483647
| -123456
| -32767
| -1234
| 0
| 0
| 1234
| 32767
| 123456
| 2147483647
f1
-------------
-2147483647
-123456
-32767
-1234
0
0
1234
32767
123456
2147483647
(10 rows)
-- int4
@ -35,19 +35,19 @@ INSERT INTO TEMP_INT4 (f1)
WHERE (f1 > -2147483647) AND (f1 < 2147483647);
INSERT INTO TEMP_INT4 (f1)
SELECT int4(f1) FROM INT2_TBL;
SELECT '' AS nine, f1 FROM TEMP_INT4
SELECT f1 FROM TEMP_INT4
ORDER BY f1;
nine | f1
------+--------
| -32767
| -1234
| -1004
| -35
| 0
| 0
| 0
| 1234
| 32767
f1
--------
-32767
-1234
-1004
-35
0
0
0
1234
32767
(9 rows)
-- int2
@ -58,15 +58,15 @@ INSERT INTO TEMP_INT2 (f1)
INSERT INTO TEMP_INT2 (f1)
SELECT int2(f1) FROM INT4_TBL
WHERE (f1 >= -32767) AND (f1 <= 32767);
SELECT '' AS five, f1 FROM TEMP_INT2
SELECT f1 FROM TEMP_INT2
ORDER BY f1;
five | f1
------+-------
| -1004
| -35
| 0
| 0
| 0
f1
-------
-1004
-35
0
0
0
(5 rows)
--

View File

@ -52,71 +52,71 @@ INSERT INTO OID_TBL(f1) VALUES ('-23582358720398502385');
ERROR: value "-23582358720398502385" is out of range for type oid
LINE 1: INSERT INTO OID_TBL(f1) VALUES ('-23582358720398502385');
^
SELECT '' AS six, * FROM OID_TBL;
six | f1
-----+------------
| 1234
| 1235
| 987
| 4294966256
| 99999999
| 5
| 10
| 15
SELECT * FROM OID_TBL;
f1
------------
1234
1235
987
4294966256
99999999
5
10
15
(8 rows)
SELECT '' AS one, o.* FROM OID_TBL o WHERE o.f1 = 1234;
one | f1
-----+------
| 1234
SELECT o.* FROM OID_TBL o WHERE o.f1 = 1234;
f1
------
1234
(1 row)
SELECT '' AS five, o.* FROM OID_TBL o WHERE o.f1 <> '1234';
five | f1
------+------------
| 1235
| 987
| 4294966256
| 99999999
| 5
| 10
| 15
SELECT o.* FROM OID_TBL o WHERE o.f1 <> '1234';
f1
------------
1235
987
4294966256
99999999
5
10
15
(7 rows)
SELECT '' AS three, o.* FROM OID_TBL o WHERE o.f1 <= '1234';
three | f1
-------+------
| 1234
| 987
| 5
| 10
| 15
SELECT o.* FROM OID_TBL o WHERE o.f1 <= '1234';
f1
------
1234
987
5
10
15
(5 rows)
SELECT '' AS two, o.* FROM OID_TBL o WHERE o.f1 < '1234';
two | f1
-----+-----
| 987
| 5
| 10
| 15
SELECT o.* FROM OID_TBL o WHERE o.f1 < '1234';
f1
-----
987
5
10
15
(4 rows)
SELECT '' AS four, o.* FROM OID_TBL o WHERE o.f1 >= '1234';
four | f1
------+------------
| 1234
| 1235
| 4294966256
| 99999999
SELECT o.* FROM OID_TBL o WHERE o.f1 >= '1234';
f1
------------
1234
1235
4294966256
99999999
(4 rows)
SELECT '' AS three, o.* FROM OID_TBL o WHERE o.f1 > '1234';
three | f1
-------+------------
| 1235
| 4294966256
| 99999999
SELECT o.* FROM OID_TBL o WHERE o.f1 > '1234';
f1
------------
1235
4294966256
99999999
(3 rows)
DROP TABLE OID_TBL;

View File

@ -33,50 +33,50 @@ INSERT INTO PATH_TBL VALUES ('(1,2),(3,4)]');
ERROR: invalid input syntax for type path: "(1,2),(3,4)]"
LINE 1: INSERT INTO PATH_TBL VALUES ('(1,2),(3,4)]');
^
SELECT '' AS count, f1 AS open_path FROM PATH_TBL WHERE isopen(f1);
count | open_path
-------+---------------------------
| [(1,2),(3,4)]
| [(0,0),(3,0),(4,5),(1,6)]
| [(1,2),(3,4)]
| [(11,12),(13,14)]
SELECT f1 AS open_path FROM PATH_TBL WHERE isopen(f1);
open_path
---------------------------
[(1,2),(3,4)]
[(0,0),(3,0),(4,5),(1,6)]
[(1,2),(3,4)]
[(11,12),(13,14)]
(4 rows)
SELECT '' AS count, f1 AS closed_path FROM PATH_TBL WHERE isclosed(f1);
count | closed_path
-------+-------------------
| ((1,2),(3,4))
| ((1,2),(3,4))
| ((1,2),(3,4))
| ((10,20))
| ((11,12),(13,14))
SELECT f1 AS closed_path FROM PATH_TBL WHERE isclosed(f1);
closed_path
-------------------
((1,2),(3,4))
((1,2),(3,4))
((1,2),(3,4))
((10,20))
((11,12),(13,14))
(5 rows)
SELECT '' AS count, pclose(f1) AS closed_path FROM PATH_TBL;
count | closed_path
-------+---------------------------
| ((1,2),(3,4))
| ((1,2),(3,4))
| ((0,0),(3,0),(4,5),(1,6))
| ((1,2),(3,4))
| ((1,2),(3,4))
| ((1,2),(3,4))
| ((10,20))
| ((11,12),(13,14))
| ((11,12),(13,14))
SELECT pclose(f1) AS closed_path FROM PATH_TBL;
closed_path
---------------------------
((1,2),(3,4))
((1,2),(3,4))
((0,0),(3,0),(4,5),(1,6))
((1,2),(3,4))
((1,2),(3,4))
((1,2),(3,4))
((10,20))
((11,12),(13,14))
((11,12),(13,14))
(9 rows)
SELECT '' AS count, popen(f1) AS open_path FROM PATH_TBL;
count | open_path
-------+---------------------------
| [(1,2),(3,4)]
| [(1,2),(3,4)]
| [(0,0),(3,0),(4,5),(1,6)]
| [(1,2),(3,4)]
| [(1,2),(3,4)]
| [(1,2),(3,4)]
| [(10,20)]
| [(11,12),(13,14)]
| [(11,12),(13,14)]
SELECT popen(f1) AS open_path FROM PATH_TBL;
open_path
---------------------------
[(1,2),(3,4)]
[(1,2),(3,4)]
[(0,0),(3,0),(4,5),(1,6)]
[(1,2),(3,4)]
[(1,2),(3,4)]
[(1,2),(3,4)]
[(10,20)]
[(11,12),(13,14)]
[(11,12),(13,14)]
(9 rows)

View File

@ -35,392 +35,392 @@ INSERT INTO POINT_TBL(f1) VALUES ('(10.0, 1e+500)'); -- Out of range
ERROR: "1e+500" is out of range for type double precision
LINE 1: INSERT INTO POINT_TBL(f1) VALUES ('(10.0, 1e+500)');
^
SELECT '' AS six, * FROM POINT_TBL;
six | f1
-----+-------------------
| (0,0)
| (-10,0)
| (-3,4)
| (5.1,34.5)
| (-5,-12)
| (1e-300,-1e-300)
| (1e+300,Infinity)
| (Infinity,1e+300)
| (NaN,NaN)
| (10,10)
SELECT * FROM POINT_TBL;
f1
-------------------
(0,0)
(-10,0)
(-3,4)
(5.1,34.5)
(-5,-12)
(1e-300,-1e-300)
(1e+300,Infinity)
(Infinity,1e+300)
(NaN,NaN)
(10,10)
(10 rows)
-- left of
SELECT '' AS three, p.* FROM POINT_TBL p WHERE p.f1 << '(0.0, 0.0)';
three | f1
-------+----------
| (-10,0)
| (-3,4)
| (-5,-12)
SELECT p.* FROM POINT_TBL p WHERE p.f1 << '(0.0, 0.0)';
f1
----------
(-10,0)
(-3,4)
(-5,-12)
(3 rows)
-- right of
SELECT '' AS three, p.* FROM POINT_TBL p WHERE '(0.0,0.0)' >> p.f1;
three | f1
-------+----------
| (-10,0)
| (-3,4)
| (-5,-12)
SELECT p.* FROM POINT_TBL p WHERE '(0.0,0.0)' >> p.f1;
f1
----------
(-10,0)
(-3,4)
(-5,-12)
(3 rows)
-- above
SELECT '' AS one, p.* FROM POINT_TBL p WHERE '(0.0,0.0)' |>> p.f1;
one | f1
-----+----------
| (-5,-12)
SELECT p.* FROM POINT_TBL p WHERE '(0.0,0.0)' |>> p.f1;
f1
----------
(-5,-12)
(1 row)
-- below
SELECT '' AS one, p.* FROM POINT_TBL p WHERE p.f1 <<| '(0.0, 0.0)';
one | f1
-----+----------
| (-5,-12)
SELECT p.* FROM POINT_TBL p WHERE p.f1 <<| '(0.0, 0.0)';
f1
----------
(-5,-12)
(1 row)
-- equal
SELECT '' AS one, p.* FROM POINT_TBL p WHERE p.f1 ~= '(5.1, 34.5)';
one | f1
-----+------------
| (5.1,34.5)
SELECT p.* FROM POINT_TBL p WHERE p.f1 ~= '(5.1, 34.5)';
f1
------------
(5.1,34.5)
(1 row)
-- point in box
SELECT '' AS three, p.* FROM POINT_TBL p
SELECT p.* FROM POINT_TBL p
WHERE p.f1 <@ box '(0,0,100,100)';
three | f1
-------+------------
| (0,0)
| (5.1,34.5)
| (10,10)
f1
------------
(0,0)
(5.1,34.5)
(10,10)
(3 rows)
SELECT '' AS three, p.* FROM POINT_TBL p
SELECT p.* FROM POINT_TBL p
WHERE box '(0,0,100,100)' @> p.f1;
three | f1
-------+------------
| (0,0)
| (5.1,34.5)
| (10,10)
f1
------------
(0,0)
(5.1,34.5)
(10,10)
(3 rows)
SELECT '' AS three, p.* FROM POINT_TBL p
SELECT p.* FROM POINT_TBL p
WHERE not p.f1 <@ box '(0,0,100,100)';
three | f1
-------+-------------------
| (-10,0)
| (-3,4)
| (-5,-12)
| (1e-300,-1e-300)
| (1e+300,Infinity)
| (Infinity,1e+300)
| (NaN,NaN)
f1
-------------------
(-10,0)
(-3,4)
(-5,-12)
(1e-300,-1e-300)
(1e+300,Infinity)
(Infinity,1e+300)
(NaN,NaN)
(7 rows)
SELECT '' AS two, p.* FROM POINT_TBL p
SELECT p.* FROM POINT_TBL p
WHERE p.f1 <@ path '[(0,0),(-10,0),(-10,10)]';
two | f1
-----+------------------
| (0,0)
| (-10,0)
| (1e-300,-1e-300)
f1
------------------
(0,0)
(-10,0)
(1e-300,-1e-300)
(3 rows)
SELECT '' AS three, p.* FROM POINT_TBL p
SELECT p.* FROM POINT_TBL p
WHERE not box '(0,0,100,100)' @> p.f1;
three | f1
-------+-------------------
| (-10,0)
| (-3,4)
| (-5,-12)
| (1e-300,-1e-300)
| (1e+300,Infinity)
| (Infinity,1e+300)
| (NaN,NaN)
f1
-------------------
(-10,0)
(-3,4)
(-5,-12)
(1e-300,-1e-300)
(1e+300,Infinity)
(Infinity,1e+300)
(NaN,NaN)
(7 rows)
SELECT '' AS six, p.f1, p.f1 <-> point '(0,0)' AS dist
SELECT p.f1, p.f1 <-> point '(0,0)' AS dist
FROM POINT_TBL p
ORDER BY dist;
six | f1 | dist
-----+-------------------+----------------------
| (0,0) | 0
| (1e-300,-1e-300) | 1.4142135623731e-300
| (-3,4) | 5
| (-10,0) | 10
| (-5,-12) | 13
| (10,10) | 14.142135623731
| (5.1,34.5) | 34.8749193547455
| (1e+300,Infinity) | Infinity
| (Infinity,1e+300) | Infinity
| (NaN,NaN) | NaN
f1 | dist
-------------------+----------------------
(0,0) | 0
(1e-300,-1e-300) | 1.4142135623731e-300
(-3,4) | 5
(-10,0) | 10
(-5,-12) | 13
(10,10) | 14.142135623731
(5.1,34.5) | 34.8749193547455
(1e+300,Infinity) | Infinity
(Infinity,1e+300) | Infinity
(NaN,NaN) | NaN
(10 rows)
SELECT '' AS thirtysix, p1.f1 AS point1, p2.f1 AS point2, p1.f1 <-> p2.f1 AS dist
SELECT p1.f1 AS point1, p2.f1 AS point2, p1.f1 <-> p2.f1 AS dist
FROM POINT_TBL p1, POINT_TBL p2
ORDER BY dist, p1.f1[0], p2.f1[0];
thirtysix | point1 | point2 | dist
-----------+-------------------+-------------------+----------------------
| (-10,0) | (-10,0) | 0
| (-5,-12) | (-5,-12) | 0
| (-3,4) | (-3,4) | 0
| (0,0) | (0,0) | 0
| (1e-300,-1e-300) | (1e-300,-1e-300) | 0
| (5.1,34.5) | (5.1,34.5) | 0
| (10,10) | (10,10) | 0
| (0,0) | (1e-300,-1e-300) | 1.4142135623731e-300
| (1e-300,-1e-300) | (0,0) | 1.4142135623731e-300
| (-3,4) | (0,0) | 5
| (-3,4) | (1e-300,-1e-300) | 5
| (0,0) | (-3,4) | 5
| (1e-300,-1e-300) | (-3,4) | 5
| (-10,0) | (-3,4) | 8.06225774829855
| (-3,4) | (-10,0) | 8.06225774829855
| (-10,0) | (0,0) | 10
| (-10,0) | (1e-300,-1e-300) | 10
| (0,0) | (-10,0) | 10
| (1e-300,-1e-300) | (-10,0) | 10
| (-10,0) | (-5,-12) | 13
| (-5,-12) | (-10,0) | 13
| (-5,-12) | (0,0) | 13
| (-5,-12) | (1e-300,-1e-300) | 13
| (0,0) | (-5,-12) | 13
| (1e-300,-1e-300) | (-5,-12) | 13
| (0,0) | (10,10) | 14.142135623731
| (1e-300,-1e-300) | (10,10) | 14.142135623731
| (10,10) | (0,0) | 14.142135623731
| (10,10) | (1e-300,-1e-300) | 14.142135623731
| (-3,4) | (10,10) | 14.3178210632764
| (10,10) | (-3,4) | 14.3178210632764
| (-5,-12) | (-3,4) | 16.1245154965971
| (-3,4) | (-5,-12) | 16.1245154965971
| (-10,0) | (10,10) | 22.3606797749979
| (10,10) | (-10,0) | 22.3606797749979
| (5.1,34.5) | (10,10) | 24.9851956166046
| (10,10) | (5.1,34.5) | 24.9851956166046
| (-5,-12) | (10,10) | 26.6270539113887
| (10,10) | (-5,-12) | 26.6270539113887
| (-3,4) | (5.1,34.5) | 31.5572495632937
| (5.1,34.5) | (-3,4) | 31.5572495632937
| (0,0) | (5.1,34.5) | 34.8749193547455
| (1e-300,-1e-300) | (5.1,34.5) | 34.8749193547455
| (5.1,34.5) | (0,0) | 34.8749193547455
| (5.1,34.5) | (1e-300,-1e-300) | 34.8749193547455
| (-10,0) | (5.1,34.5) | 37.6597928831267
| (5.1,34.5) | (-10,0) | 37.6597928831267
| (-5,-12) | (5.1,34.5) | 47.5842410888311
| (5.1,34.5) | (-5,-12) | 47.5842410888311
| (-10,0) | (1e+300,Infinity) | Infinity
| (-10,0) | (Infinity,1e+300) | Infinity
| (-5,-12) | (1e+300,Infinity) | Infinity
| (-5,-12) | (Infinity,1e+300) | Infinity
| (-3,4) | (1e+300,Infinity) | Infinity
| (-3,4) | (Infinity,1e+300) | Infinity
| (0,0) | (1e+300,Infinity) | Infinity
| (0,0) | (Infinity,1e+300) | Infinity
| (1e-300,-1e-300) | (1e+300,Infinity) | Infinity
| (1e-300,-1e-300) | (Infinity,1e+300) | Infinity
| (5.1,34.5) | (1e+300,Infinity) | Infinity
| (5.1,34.5) | (Infinity,1e+300) | Infinity
| (10,10) | (1e+300,Infinity) | Infinity
| (10,10) | (Infinity,1e+300) | Infinity
| (1e+300,Infinity) | (-10,0) | Infinity
| (1e+300,Infinity) | (-5,-12) | Infinity
| (1e+300,Infinity) | (-3,4) | Infinity
| (1e+300,Infinity) | (0,0) | Infinity
| (1e+300,Infinity) | (1e-300,-1e-300) | Infinity
| (1e+300,Infinity) | (5.1,34.5) | Infinity
| (1e+300,Infinity) | (10,10) | Infinity
| (1e+300,Infinity) | (Infinity,1e+300) | Infinity
| (Infinity,1e+300) | (-10,0) | Infinity
| (Infinity,1e+300) | (-5,-12) | Infinity
| (Infinity,1e+300) | (-3,4) | Infinity
| (Infinity,1e+300) | (0,0) | Infinity
| (Infinity,1e+300) | (1e-300,-1e-300) | Infinity
| (Infinity,1e+300) | (5.1,34.5) | Infinity
| (Infinity,1e+300) | (10,10) | Infinity
| (Infinity,1e+300) | (1e+300,Infinity) | Infinity
| (-10,0) | (NaN,NaN) | NaN
| (-5,-12) | (NaN,NaN) | NaN
| (-3,4) | (NaN,NaN) | NaN
| (0,0) | (NaN,NaN) | NaN
| (1e-300,-1e-300) | (NaN,NaN) | NaN
| (5.1,34.5) | (NaN,NaN) | NaN
| (10,10) | (NaN,NaN) | NaN
| (1e+300,Infinity) | (1e+300,Infinity) | NaN
| (1e+300,Infinity) | (NaN,NaN) | NaN
| (Infinity,1e+300) | (Infinity,1e+300) | NaN
| (Infinity,1e+300) | (NaN,NaN) | NaN
| (NaN,NaN) | (-10,0) | NaN
| (NaN,NaN) | (-5,-12) | NaN
| (NaN,NaN) | (-3,4) | NaN
| (NaN,NaN) | (0,0) | NaN
| (NaN,NaN) | (1e-300,-1e-300) | NaN
| (NaN,NaN) | (5.1,34.5) | NaN
| (NaN,NaN) | (10,10) | NaN
| (NaN,NaN) | (1e+300,Infinity) | NaN
| (NaN,NaN) | (Infinity,1e+300) | NaN
| (NaN,NaN) | (NaN,NaN) | NaN
point1 | point2 | dist
-------------------+-------------------+----------------------
(-10,0) | (-10,0) | 0
(-5,-12) | (-5,-12) | 0
(-3,4) | (-3,4) | 0
(0,0) | (0,0) | 0
(1e-300,-1e-300) | (1e-300,-1e-300) | 0
(5.1,34.5) | (5.1,34.5) | 0
(10,10) | (10,10) | 0
(0,0) | (1e-300,-1e-300) | 1.4142135623731e-300
(1e-300,-1e-300) | (0,0) | 1.4142135623731e-300
(-3,4) | (0,0) | 5
(-3,4) | (1e-300,-1e-300) | 5
(0,0) | (-3,4) | 5
(1e-300,-1e-300) | (-3,4) | 5
(-10,0) | (-3,4) | 8.06225774829855
(-3,4) | (-10,0) | 8.06225774829855
(-10,0) | (0,0) | 10
(-10,0) | (1e-300,-1e-300) | 10
(0,0) | (-10,0) | 10
(1e-300,-1e-300) | (-10,0) | 10
(-10,0) | (-5,-12) | 13
(-5,-12) | (-10,0) | 13
(-5,-12) | (0,0) | 13
(-5,-12) | (1e-300,-1e-300) | 13
(0,0) | (-5,-12) | 13
(1e-300,-1e-300) | (-5,-12) | 13
(0,0) | (10,10) | 14.142135623731
(1e-300,-1e-300) | (10,10) | 14.142135623731
(10,10) | (0,0) | 14.142135623731
(10,10) | (1e-300,-1e-300) | 14.142135623731
(-3,4) | (10,10) | 14.3178210632764
(10,10) | (-3,4) | 14.3178210632764
(-5,-12) | (-3,4) | 16.1245154965971
(-3,4) | (-5,-12) | 16.1245154965971
(-10,0) | (10,10) | 22.3606797749979
(10,10) | (-10,0) | 22.3606797749979
(5.1,34.5) | (10,10) | 24.9851956166046
(10,10) | (5.1,34.5) | 24.9851956166046
(-5,-12) | (10,10) | 26.6270539113887
(10,10) | (-5,-12) | 26.6270539113887
(-3,4) | (5.1,34.5) | 31.5572495632937
(5.1,34.5) | (-3,4) | 31.5572495632937
(0,0) | (5.1,34.5) | 34.8749193547455
(1e-300,-1e-300) | (5.1,34.5) | 34.8749193547455
(5.1,34.5) | (0,0) | 34.8749193547455
(5.1,34.5) | (1e-300,-1e-300) | 34.8749193547455
(-10,0) | (5.1,34.5) | 37.6597928831267
(5.1,34.5) | (-10,0) | 37.6597928831267
(-5,-12) | (5.1,34.5) | 47.5842410888311
(5.1,34.5) | (-5,-12) | 47.5842410888311
(-10,0) | (1e+300,Infinity) | Infinity
(-10,0) | (Infinity,1e+300) | Infinity
(-5,-12) | (1e+300,Infinity) | Infinity
(-5,-12) | (Infinity,1e+300) | Infinity
(-3,4) | (1e+300,Infinity) | Infinity
(-3,4) | (Infinity,1e+300) | Infinity
(0,0) | (1e+300,Infinity) | Infinity
(0,0) | (Infinity,1e+300) | Infinity
(1e-300,-1e-300) | (1e+300,Infinity) | Infinity
(1e-300,-1e-300) | (Infinity,1e+300) | Infinity
(5.1,34.5) | (1e+300,Infinity) | Infinity
(5.1,34.5) | (Infinity,1e+300) | Infinity
(10,10) | (1e+300,Infinity) | Infinity
(10,10) | (Infinity,1e+300) | Infinity
(1e+300,Infinity) | (-10,0) | Infinity
(1e+300,Infinity) | (-5,-12) | Infinity
(1e+300,Infinity) | (-3,4) | Infinity
(1e+300,Infinity) | (0,0) | Infinity
(1e+300,Infinity) | (1e-300,-1e-300) | Infinity
(1e+300,Infinity) | (5.1,34.5) | Infinity
(1e+300,Infinity) | (10,10) | Infinity
(1e+300,Infinity) | (Infinity,1e+300) | Infinity
(Infinity,1e+300) | (-10,0) | Infinity
(Infinity,1e+300) | (-5,-12) | Infinity
(Infinity,1e+300) | (-3,4) | Infinity
(Infinity,1e+300) | (0,0) | Infinity
(Infinity,1e+300) | (1e-300,-1e-300) | Infinity
(Infinity,1e+300) | (5.1,34.5) | Infinity
(Infinity,1e+300) | (10,10) | Infinity
(Infinity,1e+300) | (1e+300,Infinity) | Infinity
(-10,0) | (NaN,NaN) | NaN
(-5,-12) | (NaN,NaN) | NaN
(-3,4) | (NaN,NaN) | NaN
(0,0) | (NaN,NaN) | NaN
(1e-300,-1e-300) | (NaN,NaN) | NaN
(5.1,34.5) | (NaN,NaN) | NaN
(10,10) | (NaN,NaN) | NaN
(1e+300,Infinity) | (1e+300,Infinity) | NaN
(1e+300,Infinity) | (NaN,NaN) | NaN
(Infinity,1e+300) | (Infinity,1e+300) | NaN
(Infinity,1e+300) | (NaN,NaN) | NaN
(NaN,NaN) | (-10,0) | NaN
(NaN,NaN) | (-5,-12) | NaN
(NaN,NaN) | (-3,4) | NaN
(NaN,NaN) | (0,0) | NaN
(NaN,NaN) | (1e-300,-1e-300) | NaN
(NaN,NaN) | (5.1,34.5) | NaN
(NaN,NaN) | (10,10) | NaN
(NaN,NaN) | (1e+300,Infinity) | NaN
(NaN,NaN) | (Infinity,1e+300) | NaN
(NaN,NaN) | (NaN,NaN) | NaN
(100 rows)
SELECT '' AS thirty, p1.f1 AS point1, p2.f1 AS point2
SELECT p1.f1 AS point1, p2.f1 AS point2
FROM POINT_TBL p1, POINT_TBL p2
WHERE (p1.f1 <-> p2.f1) > 3;
thirty | point1 | point2
--------+-------------------+-------------------
| (0,0) | (-10,0)
| (0,0) | (-3,4)
| (0,0) | (5.1,34.5)
| (0,0) | (-5,-12)
| (0,0) | (1e+300,Infinity)
| (0,0) | (Infinity,1e+300)
| (0,0) | (NaN,NaN)
| (0,0) | (10,10)
| (-10,0) | (0,0)
| (-10,0) | (-3,4)
| (-10,0) | (5.1,34.5)
| (-10,0) | (-5,-12)
| (-10,0) | (1e-300,-1e-300)
| (-10,0) | (1e+300,Infinity)
| (-10,0) | (Infinity,1e+300)
| (-10,0) | (NaN,NaN)
| (-10,0) | (10,10)
| (-3,4) | (0,0)
| (-3,4) | (-10,0)
| (-3,4) | (5.1,34.5)
| (-3,4) | (-5,-12)
| (-3,4) | (1e-300,-1e-300)
| (-3,4) | (1e+300,Infinity)
| (-3,4) | (Infinity,1e+300)
| (-3,4) | (NaN,NaN)
| (-3,4) | (10,10)
| (5.1,34.5) | (0,0)
| (5.1,34.5) | (-10,0)
| (5.1,34.5) | (-3,4)
| (5.1,34.5) | (-5,-12)
| (5.1,34.5) | (1e-300,-1e-300)
| (5.1,34.5) | (1e+300,Infinity)
| (5.1,34.5) | (Infinity,1e+300)
| (5.1,34.5) | (NaN,NaN)
| (5.1,34.5) | (10,10)
| (-5,-12) | (0,0)
| (-5,-12) | (-10,0)
| (-5,-12) | (-3,4)
| (-5,-12) | (5.1,34.5)
| (-5,-12) | (1e-300,-1e-300)
| (-5,-12) | (1e+300,Infinity)
| (-5,-12) | (Infinity,1e+300)
| (-5,-12) | (NaN,NaN)
| (-5,-12) | (10,10)
| (1e-300,-1e-300) | (-10,0)
| (1e-300,-1e-300) | (-3,4)
| (1e-300,-1e-300) | (5.1,34.5)
| (1e-300,-1e-300) | (-5,-12)
| (1e-300,-1e-300) | (1e+300,Infinity)
| (1e-300,-1e-300) | (Infinity,1e+300)
| (1e-300,-1e-300) | (NaN,NaN)
| (1e-300,-1e-300) | (10,10)
| (1e+300,Infinity) | (0,0)
| (1e+300,Infinity) | (-10,0)
| (1e+300,Infinity) | (-3,4)
| (1e+300,Infinity) | (5.1,34.5)
| (1e+300,Infinity) | (-5,-12)
| (1e+300,Infinity) | (1e-300,-1e-300)
| (1e+300,Infinity) | (1e+300,Infinity)
| (1e+300,Infinity) | (Infinity,1e+300)
| (1e+300,Infinity) | (NaN,NaN)
| (1e+300,Infinity) | (10,10)
| (Infinity,1e+300) | (0,0)
| (Infinity,1e+300) | (-10,0)
| (Infinity,1e+300) | (-3,4)
| (Infinity,1e+300) | (5.1,34.5)
| (Infinity,1e+300) | (-5,-12)
| (Infinity,1e+300) | (1e-300,-1e-300)
| (Infinity,1e+300) | (1e+300,Infinity)
| (Infinity,1e+300) | (Infinity,1e+300)
| (Infinity,1e+300) | (NaN,NaN)
| (Infinity,1e+300) | (10,10)
| (NaN,NaN) | (0,0)
| (NaN,NaN) | (-10,0)
| (NaN,NaN) | (-3,4)
| (NaN,NaN) | (5.1,34.5)
| (NaN,NaN) | (-5,-12)
| (NaN,NaN) | (1e-300,-1e-300)
| (NaN,NaN) | (1e+300,Infinity)
| (NaN,NaN) | (Infinity,1e+300)
| (NaN,NaN) | (NaN,NaN)
| (NaN,NaN) | (10,10)
| (10,10) | (0,0)
| (10,10) | (-10,0)
| (10,10) | (-3,4)
| (10,10) | (5.1,34.5)
| (10,10) | (-5,-12)
| (10,10) | (1e-300,-1e-300)
| (10,10) | (1e+300,Infinity)
| (10,10) | (Infinity,1e+300)
| (10,10) | (NaN,NaN)
point1 | point2
-------------------+-------------------
(0,0) | (-10,0)
(0,0) | (-3,4)
(0,0) | (5.1,34.5)
(0,0) | (-5,-12)
(0,0) | (1e+300,Infinity)
(0,0) | (Infinity,1e+300)
(0,0) | (NaN,NaN)
(0,0) | (10,10)
(-10,0) | (0,0)
(-10,0) | (-3,4)
(-10,0) | (5.1,34.5)
(-10,0) | (-5,-12)
(-10,0) | (1e-300,-1e-300)
(-10,0) | (1e+300,Infinity)
(-10,0) | (Infinity,1e+300)
(-10,0) | (NaN,NaN)
(-10,0) | (10,10)
(-3,4) | (0,0)
(-3,4) | (-10,0)
(-3,4) | (5.1,34.5)
(-3,4) | (-5,-12)
(-3,4) | (1e-300,-1e-300)
(-3,4) | (1e+300,Infinity)
(-3,4) | (Infinity,1e+300)
(-3,4) | (NaN,NaN)
(-3,4) | (10,10)
(5.1,34.5) | (0,0)
(5.1,34.5) | (-10,0)
(5.1,34.5) | (-3,4)
(5.1,34.5) | (-5,-12)
(5.1,34.5) | (1e-300,-1e-300)
(5.1,34.5) | (1e+300,Infinity)
(5.1,34.5) | (Infinity,1e+300)
(5.1,34.5) | (NaN,NaN)
(5.1,34.5) | (10,10)
(-5,-12) | (0,0)
(-5,-12) | (-10,0)
(-5,-12) | (-3,4)
(-5,-12) | (5.1,34.5)
(-5,-12) | (1e-300,-1e-300)
(-5,-12) | (1e+300,Infinity)
(-5,-12) | (Infinity,1e+300)
(-5,-12) | (NaN,NaN)
(-5,-12) | (10,10)
(1e-300,-1e-300) | (-10,0)
(1e-300,-1e-300) | (-3,4)
(1e-300,-1e-300) | (5.1,34.5)
(1e-300,-1e-300) | (-5,-12)
(1e-300,-1e-300) | (1e+300,Infinity)
(1e-300,-1e-300) | (Infinity,1e+300)
(1e-300,-1e-300) | (NaN,NaN)
(1e-300,-1e-300) | (10,10)
(1e+300,Infinity) | (0,0)
(1e+300,Infinity) | (-10,0)
(1e+300,Infinity) | (-3,4)
(1e+300,Infinity) | (5.1,34.5)
(1e+300,Infinity) | (-5,-12)
(1e+300,Infinity) | (1e-300,-1e-300)
(1e+300,Infinity) | (1e+300,Infinity)
(1e+300,Infinity) | (Infinity,1e+300)
(1e+300,Infinity) | (NaN,NaN)
(1e+300,Infinity) | (10,10)
(Infinity,1e+300) | (0,0)
(Infinity,1e+300) | (-10,0)
(Infinity,1e+300) | (-3,4)
(Infinity,1e+300) | (5.1,34.5)
(Infinity,1e+300) | (-5,-12)
(Infinity,1e+300) | (1e-300,-1e-300)
(Infinity,1e+300) | (1e+300,Infinity)
(Infinity,1e+300) | (Infinity,1e+300)
(Infinity,1e+300) | (NaN,NaN)
(Infinity,1e+300) | (10,10)
(NaN,NaN) | (0,0)
(NaN,NaN) | (-10,0)
(NaN,NaN) | (-3,4)
(NaN,NaN) | (5.1,34.5)
(NaN,NaN) | (-5,-12)
(NaN,NaN) | (1e-300,-1e-300)
(NaN,NaN) | (1e+300,Infinity)
(NaN,NaN) | (Infinity,1e+300)
(NaN,NaN) | (NaN,NaN)
(NaN,NaN) | (10,10)
(10,10) | (0,0)
(10,10) | (-10,0)
(10,10) | (-3,4)
(10,10) | (5.1,34.5)
(10,10) | (-5,-12)
(10,10) | (1e-300,-1e-300)
(10,10) | (1e+300,Infinity)
(10,10) | (Infinity,1e+300)
(10,10) | (NaN,NaN)
(91 rows)
-- put distance result into output to allow sorting with GEQ optimizer - tgl 97/05/10
SELECT '' AS fifteen, p1.f1 AS point1, p2.f1 AS point2, (p1.f1 <-> p2.f1) AS distance
SELECT p1.f1 AS point1, p2.f1 AS point2, (p1.f1 <-> p2.f1) AS distance
FROM POINT_TBL p1, POINT_TBL p2
WHERE (p1.f1 <-> p2.f1) > 3 and p1.f1 << p2.f1
ORDER BY distance, p1.f1[0], p2.f1[0];
fifteen | point1 | point2 | distance
---------+-------------------+-------------------+------------------
| (-3,4) | (0,0) | 5
| (-3,4) | (1e-300,-1e-300) | 5
| (-10,0) | (-3,4) | 8.06225774829855
| (-10,0) | (0,0) | 10
| (-10,0) | (1e-300,-1e-300) | 10
| (-10,0) | (-5,-12) | 13
| (-5,-12) | (0,0) | 13
| (-5,-12) | (1e-300,-1e-300) | 13
| (0,0) | (10,10) | 14.142135623731
| (1e-300,-1e-300) | (10,10) | 14.142135623731
| (-3,4) | (10,10) | 14.3178210632764
| (-5,-12) | (-3,4) | 16.1245154965971
| (-10,0) | (10,10) | 22.3606797749979
| (5.1,34.5) | (10,10) | 24.9851956166046
| (-5,-12) | (10,10) | 26.6270539113887
| (-3,4) | (5.1,34.5) | 31.5572495632937
| (0,0) | (5.1,34.5) | 34.8749193547455
| (1e-300,-1e-300) | (5.1,34.5) | 34.8749193547455
| (-10,0) | (5.1,34.5) | 37.6597928831267
| (-5,-12) | (5.1,34.5) | 47.5842410888311
| (-10,0) | (1e+300,Infinity) | Infinity
| (-10,0) | (Infinity,1e+300) | Infinity
| (-5,-12) | (1e+300,Infinity) | Infinity
| (-5,-12) | (Infinity,1e+300) | Infinity
| (-3,4) | (1e+300,Infinity) | Infinity
| (-3,4) | (Infinity,1e+300) | Infinity
| (0,0) | (1e+300,Infinity) | Infinity
| (0,0) | (Infinity,1e+300) | Infinity
| (1e-300,-1e-300) | (1e+300,Infinity) | Infinity
| (1e-300,-1e-300) | (Infinity,1e+300) | Infinity
| (5.1,34.5) | (1e+300,Infinity) | Infinity
| (5.1,34.5) | (Infinity,1e+300) | Infinity
| (10,10) | (1e+300,Infinity) | Infinity
| (10,10) | (Infinity,1e+300) | Infinity
| (1e+300,Infinity) | (Infinity,1e+300) | Infinity
point1 | point2 | distance
-------------------+-------------------+------------------
(-3,4) | (0,0) | 5
(-3,4) | (1e-300,-1e-300) | 5
(-10,0) | (-3,4) | 8.06225774829855
(-10,0) | (0,0) | 10
(-10,0) | (1e-300,-1e-300) | 10
(-10,0) | (-5,-12) | 13
(-5,-12) | (0,0) | 13
(-5,-12) | (1e-300,-1e-300) | 13
(0,0) | (10,10) | 14.142135623731
(1e-300,-1e-300) | (10,10) | 14.142135623731
(-3,4) | (10,10) | 14.3178210632764
(-5,-12) | (-3,4) | 16.1245154965971
(-10,0) | (10,10) | 22.3606797749979
(5.1,34.5) | (10,10) | 24.9851956166046
(-5,-12) | (10,10) | 26.6270539113887
(-3,4) | (5.1,34.5) | 31.5572495632937
(0,0) | (5.1,34.5) | 34.8749193547455
(1e-300,-1e-300) | (5.1,34.5) | 34.8749193547455
(-10,0) | (5.1,34.5) | 37.6597928831267
(-5,-12) | (5.1,34.5) | 47.5842410888311
(-10,0) | (1e+300,Infinity) | Infinity
(-10,0) | (Infinity,1e+300) | Infinity
(-5,-12) | (1e+300,Infinity) | Infinity
(-5,-12) | (Infinity,1e+300) | Infinity
(-3,4) | (1e+300,Infinity) | Infinity
(-3,4) | (Infinity,1e+300) | Infinity
(0,0) | (1e+300,Infinity) | Infinity
(0,0) | (Infinity,1e+300) | Infinity
(1e-300,-1e-300) | (1e+300,Infinity) | Infinity
(1e-300,-1e-300) | (Infinity,1e+300) | Infinity
(5.1,34.5) | (1e+300,Infinity) | Infinity
(5.1,34.5) | (Infinity,1e+300) | Infinity
(10,10) | (1e+300,Infinity) | Infinity
(10,10) | (Infinity,1e+300) | Infinity
(1e+300,Infinity) | (Infinity,1e+300) | Infinity
(35 rows)
-- put distance result into output to allow sorting with GEQ optimizer - tgl 97/05/10
SELECT '' AS three, p1.f1 AS point1, p2.f1 AS point2, (p1.f1 <-> p2.f1) AS distance
SELECT p1.f1 AS point1, p2.f1 AS point2, (p1.f1 <-> p2.f1) AS distance
FROM POINT_TBL p1, POINT_TBL p2
WHERE (p1.f1 <-> p2.f1) > 3 and p1.f1 << p2.f1 and p1.f1 |>> p2.f1
ORDER BY distance;
three | point1 | point2 | distance
-------+-------------------+-------------------+------------------
| (-3,4) | (0,0) | 5
| (-3,4) | (1e-300,-1e-300) | 5
| (-10,0) | (-5,-12) | 13
| (5.1,34.5) | (10,10) | 24.9851956166046
| (1e+300,Infinity) | (Infinity,1e+300) | Infinity
point1 | point2 | distance
-------------------+-------------------+------------------
(-3,4) | (0,0) | 5
(-3,4) | (1e-300,-1e-300) | 5
(-10,0) | (-5,-12) | 13
(5.1,34.5) | (10,10) | 24.9851956166046
(1e+300,Infinity) | (Infinity,1e+300) | Infinity
(5 rows)
-- Test that GiST indexes provide same behavior as sequential scan

View File

@ -33,16 +33,16 @@ INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');
ERROR: invalid input syntax for type polygon: "asdf"
LINE 1: INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');
^
SELECT '' AS four, * FROM POLYGON_TBL;
four | f1
------+----------------------------
| ((2,0),(2,4),(0,0))
| ((3,1),(3,3),(1,0))
| ((1,2),(3,4),(5,6),(7,8))
| ((7,8),(5,6),(3,4),(1,2))
| ((1,2),(7,8),(5,6),(3,-4))
| ((0,0))
| ((0,1),(0,1))
SELECT * FROM POLYGON_TBL;
f1
----------------------------
((2,0),(2,4),(0,0))
((3,1),(3,3),(1,0))
((1,2),(3,4),(5,6),(7,8))
((7,8),(5,6),(3,4),(1,2))
((1,2),(7,8),(5,6),(3,-4))
((0,0))
((0,1),(0,1))
(7 rows)
--

View File

@ -86,131 +86,131 @@ INSERT INTO SUBSELECT_TBL VALUES (2, 2, 2);
INSERT INTO SUBSELECT_TBL VALUES (3, 3, 3);
INSERT INTO SUBSELECT_TBL VALUES (6, 7, 8);
INSERT INTO SUBSELECT_TBL VALUES (8, 9, NULL);
SELECT '' AS eight, * FROM SUBSELECT_TBL;
eight | f1 | f2 | f3
-------+----+----+----
| 1 | 2 | 3
| 2 | 3 | 4
| 3 | 4 | 5
| 1 | 1 | 1
| 2 | 2 | 2
| 3 | 3 | 3
| 6 | 7 | 8
| 8 | 9 |
SELECT * FROM SUBSELECT_TBL;
f1 | f2 | f3
----+----+----
1 | 2 | 3
2 | 3 | 4
3 | 4 | 5
1 | 1 | 1
2 | 2 | 2
3 | 3 | 3
6 | 7 | 8
8 | 9 |
(8 rows)
-- Uncorrelated subselects
SELECT '' AS two, f1 AS "Constant Select" FROM SUBSELECT_TBL
SELECT f1 AS "Constant Select" FROM SUBSELECT_TBL
WHERE f1 IN (SELECT 1);
two | Constant Select
-----+-----------------
| 1
| 1
Constant Select
-----------------
1
1
(2 rows)
SELECT '' AS six, f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL
SELECT f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL);
six | Uncorrelated Field
-----+--------------------
| 1
| 2
| 3
| 1
| 2
| 3
Uncorrelated Field
--------------------
1
2
3
1
2
3
(6 rows)
SELECT '' AS six, f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL
SELECT f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE
f2 IN (SELECT f1 FROM SUBSELECT_TBL));
six | Uncorrelated Field
-----+--------------------
| 1
| 2
| 3
| 1
| 2
| 3
Uncorrelated Field
--------------------
1
2
3
1
2
3
(6 rows)
SELECT '' AS three, f1, f2
SELECT f1, f2
FROM SUBSELECT_TBL
WHERE (f1, f2) NOT IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL
WHERE f3 IS NOT NULL);
three | f1 | f2
-------+----+----
| 1 | 2
| 6 | 7
| 8 | 9
f1 | f2
----+----
1 | 2
6 | 7
8 | 9
(3 rows)
-- Correlated subselects
SELECT '' AS six, f1 AS "Correlated Field", f2 AS "Second Field"
SELECT f1 AS "Correlated Field", f2 AS "Second Field"
FROM SUBSELECT_TBL upper
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE f1 = upper.f1);
six | Correlated Field | Second Field
-----+------------------+--------------
| 1 | 2
| 2 | 3
| 3 | 4
| 1 | 1
| 2 | 2
| 3 | 3
Correlated Field | Second Field
------------------+--------------
1 | 2
2 | 3
3 | 4
1 | 1
2 | 2
3 | 3
(6 rows)
SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field"
SELECT f1 AS "Correlated Field", f3 AS "Second Field"
FROM SUBSELECT_TBL upper
WHERE f1 IN
(SELECT f2 FROM SUBSELECT_TBL WHERE CAST(upper.f2 AS float) = f3);
six | Correlated Field | Second Field
-----+------------------+--------------
| 2 | 4
| 3 | 5
| 1 | 1
| 2 | 2
| 3 | 3
Correlated Field | Second Field
------------------+--------------
2 | 4
3 | 5
1 | 1
2 | 2
3 | 3
(5 rows)
SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field"
SELECT f1 AS "Correlated Field", f3 AS "Second Field"
FROM SUBSELECT_TBL upper
WHERE f3 IN (SELECT upper.f1 + f2 FROM SUBSELECT_TBL
WHERE f2 = CAST(f3 AS integer));
six | Correlated Field | Second Field
-----+------------------+--------------
| 1 | 3
| 2 | 4
| 3 | 5
| 6 | 8
Correlated Field | Second Field
------------------+--------------
1 | 3
2 | 4
3 | 5
6 | 8
(4 rows)
SELECT '' AS five, f1 AS "Correlated Field"
SELECT f1 AS "Correlated Field"
FROM SUBSELECT_TBL
WHERE (f1, f2) IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL
WHERE f3 IS NOT NULL);
five | Correlated Field
------+------------------
| 2
| 3
| 1
| 2
| 3
Correlated Field
------------------
2
3
1
2
3
(5 rows)
--
-- Use some existing tables in the regression test
--
SELECT '' AS eight, ss.f1 AS "Correlated Field", ss.f3 AS "Second Field"
SELECT ss.f1 AS "Correlated Field", ss.f3 AS "Second Field"
FROM SUBSELECT_TBL ss
WHERE f1 NOT IN (SELECT f1+1 FROM INT4_TBL
WHERE f1 != ss.f1 AND f1 < 2147483647);
eight | Correlated Field | Second Field
-------+------------------+--------------
| 2 | 4
| 3 | 5
| 2 | 2
| 3 | 3
| 6 | 8
| 8 |
Correlated Field | Second Field
------------------+--------------
2 | 4
3 | 5
2 | 2
3 | 3
6 | 8
8 |
(6 rows)
select q1, float8(count(*)) / (select count(*) from int8_tbl)

View File

@ -16,11 +16,11 @@ SELECT text 'this is a text string' = text 'this is a text strin' AS false;
CREATE TABLE TEXT_TBL (f1 text);
INSERT INTO TEXT_TBL VALUES ('doh!');
INSERT INTO TEXT_TBL VALUES ('hi de ho neighbor');
SELECT '' AS two, * FROM TEXT_TBL;
two | f1
-----+-------------------
| doh!
| hi de ho neighbor
SELECT * FROM TEXT_TBL;
f1
-------------------
doh!
hi de ho neighbor
(2 rows)
-- As of 8.3 we have removed most implicit casts to text, so that for example

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -14,79 +14,79 @@ INSERT INTO VARCHAR_TBL (f1) VALUES ('');
INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
ERROR: value too long for type character varying(1)
INSERT INTO VARCHAR_TBL (f1) VALUES ('c ');
SELECT '' AS seven, * FROM VARCHAR_TBL;
seven | f1
-------+----
| a
| A
| 1
| 2
| 3
|
| c
SELECT * FROM VARCHAR_TBL;
f1
----
a
A
1
2
3
c
(7 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 <> 'a';
six | f1
-----+----
| A
| 1
| 2
| 3
|
| c
f1
----
A
1
2
3
c
(6 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 = 'a';
one | f1
-----+----
| a
f1
----
a
(1 row)
SELECT '' AS five, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 < 'a';
five | f1
------+----
| A
| 1
| 2
| 3
|
f1
----
A
1
2
3
(5 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 <= 'a';
six | f1
-----+----
| a
| A
| 1
| 2
| 3
|
f1
----
a
A
1
2
3
(6 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 > 'a';
one | f1
-----+----
| c
f1
----
c
(1 row)
SELECT '' AS two, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 >= 'a';
two | f1
-----+----
| a
| c
f1
----
a
c
(2 rows)
DROP TABLE VARCHAR_TBL;
@ -100,12 +100,12 @@ INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
ERROR: value too long for type character varying(4)
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd ');
SELECT '' AS four, * FROM VARCHAR_TBL;
four | f1
------+------
| a
| ab
| abcd
| abcd
SELECT * FROM VARCHAR_TBL;
f1
------
a
ab
abcd
abcd
(4 rows)

View File

@ -14,79 +14,79 @@ INSERT INTO VARCHAR_TBL (f1) VALUES ('');
INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
ERROR: value too long for type character varying(1)
INSERT INTO VARCHAR_TBL (f1) VALUES ('c ');
SELECT '' AS seven, * FROM VARCHAR_TBL;
seven | f1
-------+----
| a
| A
| 1
| 2
| 3
|
| c
SELECT * FROM VARCHAR_TBL;
f1
----
a
A
1
2
3
c
(7 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 <> 'a';
six | f1
-----+----
| A
| 1
| 2
| 3
|
| c
f1
----
A
1
2
3
c
(6 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 = 'a';
one | f1
-----+----
| a
f1
----
a
(1 row)
SELECT '' AS five, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 < 'a';
five | f1
------+----
| 1
| 2
| 3
|
f1
----
1
2
3
(4 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 <= 'a';
six | f1
-----+----
| a
| 1
| 2
| 3
|
f1
----
a
1
2
3
(5 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 > 'a';
one | f1
-----+----
| A
| c
f1
----
A
c
(2 rows)
SELECT '' AS two, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 >= 'a';
two | f1
-----+----
| a
| A
| c
f1
----
a
A
c
(3 rows)
DROP TABLE VARCHAR_TBL;
@ -100,12 +100,12 @@ INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
ERROR: value too long for type character varying(4)
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd ');
SELECT '' AS four, * FROM VARCHAR_TBL;
four | f1
------+------
| a
| ab
| abcd
| abcd
SELECT * FROM VARCHAR_TBL;
f1
------
a
ab
abcd
abcd
(4 rows)

View File

@ -14,79 +14,79 @@ INSERT INTO VARCHAR_TBL (f1) VALUES ('');
INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
ERROR: value too long for type character varying(1)
INSERT INTO VARCHAR_TBL (f1) VALUES ('c ');
SELECT '' AS seven, * FROM VARCHAR_TBL;
seven | f1
-------+----
| a
| A
| 1
| 2
| 3
|
| c
SELECT * FROM VARCHAR_TBL;
f1
----
a
A
1
2
3
c
(7 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 <> 'a';
six | f1
-----+----
| A
| 1
| 2
| 3
|
| c
f1
----
A
1
2
3
c
(6 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 = 'a';
one | f1
-----+----
| a
f1
----
a
(1 row)
SELECT '' AS five, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 < 'a';
five | f1
------+----
|
(1 row)
f1
----
(1 rows)
SELECT '' AS six, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 <= 'a';
six | f1
-----+----
| a
|
f1
----
a
(2 rows)
SELECT '' AS one, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 > 'a';
one | f1
-----+----
| A
| 1
| 2
| 3
| c
f1
----
A
1
2
3
c
(5 rows)
SELECT '' AS two, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 >= 'a';
two | f1
-----+----
| a
| A
| 1
| 2
| 3
| c
f1
----
a
A
1
2
3
c
(6 rows)
DROP TABLE VARCHAR_TBL;
@ -100,12 +100,12 @@ INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
ERROR: value too long for type character varying(4)
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd ');
SELECT '' AS four, * FROM VARCHAR_TBL;
four | f1
------+------
| a
| ab
| abcd
| abcd
SELECT * FROM VARCHAR_TBL;
f1
------
a
ab
abcd
abcd
(4 rows)

View File

@ -21,7 +21,7 @@ INSERT INTO DEFAULT_TBL (i, f) VALUES (2, 987.654);
INSERT INTO DEFAULT_TBL (x) VALUES ('marc');
INSERT INTO DEFAULT_TBL VALUES (3, null, 1.0);
SELECT '' AS five, * FROM DEFAULT_TBL;
SELECT * FROM DEFAULT_TBL;
CREATE SEQUENCE DEFAULT_SEQ;
@ -33,7 +33,7 @@ INSERT INTO DEFAULTEXPR_TBL (i1) VALUES (-3);
INSERT INTO DEFAULTEXPR_TBL (i2) VALUES (-4);
INSERT INTO DEFAULTEXPR_TBL (i2) VALUES (NULL);
SELECT '' AS four, * FROM DEFAULTEXPR_TBL;
SELECT * FROM DEFAULTEXPR_TBL;
-- syntax errors
-- test for extraneous comma
@ -61,7 +61,7 @@ INSERT INTO CHECK_TBL VALUES (2);
INSERT INTO CHECK_TBL VALUES (6);
INSERT INTO CHECK_TBL VALUES (1);
SELECT '' AS three, * FROM CHECK_TBL;
SELECT * FROM CHECK_TBL;
CREATE SEQUENCE CHECK_SEQ;
@ -76,7 +76,7 @@ INSERT INTO CHECK2_TBL VALUES (0, 'check failed', -2);
INSERT INTO CHECK2_TBL VALUES (6, 'check failed', 11);
INSERT INTO CHECK2_TBL VALUES (7, 'check ok', 7);
SELECT '' AS two, * from CHECK2_TBL;
SELECT * from CHECK2_TBL;
--
-- Check constraints on INSERT
@ -92,7 +92,7 @@ CREATE TABLE INSERT_TBL (x INT DEFAULT nextval('insert_seq'),
INSERT INTO INSERT_TBL(x,z) VALUES (2, -2);
SELECT '' AS zero, * FROM INSERT_TBL;
SELECT * FROM INSERT_TBL;
SELECT 'one' AS one, nextval('insert_seq');
@ -104,14 +104,14 @@ INSERT INTO INSERT_TBL VALUES (5, 'check failed', -5);
INSERT INTO INSERT_TBL VALUES (7, '!check failed', -7);
INSERT INTO INSERT_TBL(y) VALUES ('-!NULL-');
SELECT '' AS four, * FROM INSERT_TBL;
SELECT * FROM INSERT_TBL;
INSERT INTO INSERT_TBL(y,z) VALUES ('check failed', 4);
INSERT INTO INSERT_TBL(x,y) VALUES (5, 'check failed');
INSERT INTO INSERT_TBL(x,y) VALUES (5, '!check failed');
INSERT INTO INSERT_TBL(y) VALUES ('-!NULL-');
SELECT '' AS six, * FROM INSERT_TBL;
SELECT * FROM INSERT_TBL;
SELECT 'seven' AS one, nextval('insert_seq');
@ -124,7 +124,7 @@ SELECT 'eight' AS one, currval('insert_seq');
-- was wrong:
INSERT INTO INSERT_TBL VALUES (null, null, null);
SELECT '' AS nine, * FROM INSERT_TBL;
SELECT * FROM INSERT_TBL;
--
-- Check constraints on system columns
@ -208,13 +208,13 @@ INSERT INTO tmp VALUES (5, '!check failed', null);
INSERT INTO tmp VALUES (null, 'try again', null);
INSERT INTO INSERT_TBL(y) select yd from tmp;
SELECT '' AS three, * FROM INSERT_TBL;
SELECT * FROM INSERT_TBL;
INSERT INTO INSERT_TBL SELECT * FROM tmp WHERE yd = 'try again';
INSERT INTO INSERT_TBL(y,z) SELECT yd, -7 FROM tmp WHERE yd = 'try again';
INSERT INTO INSERT_TBL(y,z) SELECT yd, -8 FROM tmp WHERE yd = 'try again';
SELECT '' AS four, * FROM INSERT_TBL;
SELECT * FROM INSERT_TBL;
DROP TABLE tmp;
@ -241,7 +241,7 @@ CREATE TABLE COPY_TBL (x INT, y TEXT, z INT,
COPY COPY_TBL FROM '@abs_srcdir@/data/constro.data';
SELECT '' AS two, * FROM COPY_TBL;
SELECT * FROM COPY_TBL;
COPY COPY_TBL FROM '@abs_srcdir@/data/constrf.data';
@ -260,7 +260,7 @@ INSERT INTO PRIMARY_TBL VALUES (4, 'three');
INSERT INTO PRIMARY_TBL VALUES (5, 'one');
INSERT INTO PRIMARY_TBL (t) VALUES ('six');
SELECT '' AS four, * FROM PRIMARY_TBL;
SELECT * FROM PRIMARY_TBL;
DROP TABLE PRIMARY_TBL;
@ -274,7 +274,7 @@ INSERT INTO PRIMARY_TBL VALUES (4, 'three');
INSERT INTO PRIMARY_TBL VALUES (5, 'one');
INSERT INTO PRIMARY_TBL (t) VALUES ('six');
SELECT '' AS three, * FROM PRIMARY_TBL;
SELECT * FROM PRIMARY_TBL;
DROP TABLE PRIMARY_TBL;
@ -297,7 +297,7 @@ INSERT INTO UNIQUE_TBL VALUES (6, 'six-upsert-insert') ON CONFLICT (i) DO UPDATE
-- should fail
INSERT INTO UNIQUE_TBL VALUES (1, 'a'), (2, 'b'), (2, 'b') ON CONFLICT (i) DO UPDATE SET t = 'fails';
SELECT '' AS five, * FROM UNIQUE_TBL;
SELECT * FROM UNIQUE_TBL;
DROP TABLE UNIQUE_TBL;
@ -311,7 +311,7 @@ INSERT INTO UNIQUE_TBL VALUES (1, 'one');
INSERT INTO UNIQUE_TBL VALUES (5, 'one');
INSERT INTO UNIQUE_TBL (t) VALUES ('six');
SELECT '' AS five, * FROM UNIQUE_TBL;
SELECT * FROM UNIQUE_TBL;
DROP TABLE UNIQUE_TBL;

View File

@ -17,14 +17,14 @@ INSERT INTO DEFAULT_TBL VALUES (1, 'bruce');
INSERT INTO DEFAULT_TBL (i, f) VALUES (2, 987.654);
INSERT INTO DEFAULT_TBL (x) VALUES ('marc');
INSERT INTO DEFAULT_TBL VALUES (3, null, 1.0);
SELECT '' AS five, * FROM DEFAULT_TBL;
five | i | x | f
------+-----+--------+---------
| 1 | thomas | 57.0613
| 1 | bruce | 123.456
| 2 | vadim | 987.654
| 100 | marc | 123.456
| 3 | | 1
SELECT * FROM DEFAULT_TBL;
i | x | f
-----+--------+---------
1 | thomas | 57.0613
1 | bruce | 123.456
2 | vadim | 987.654
100 | marc | 123.456
3 | | 1
(5 rows)
CREATE SEQUENCE DEFAULT_SEQ;
@ -34,13 +34,13 @@ INSERT INTO DEFAULTEXPR_TBL VALUES (-1, -2);
INSERT INTO DEFAULTEXPR_TBL (i1) VALUES (-3);
INSERT INTO DEFAULTEXPR_TBL (i2) VALUES (-4);
INSERT INTO DEFAULTEXPR_TBL (i2) VALUES (NULL);
SELECT '' AS four, * FROM DEFAULTEXPR_TBL;
four | i1 | i2
------+-----+----
| -1 | -2
| -3 | 1
| 102 | -4
| 102 |
SELECT * FROM DEFAULTEXPR_TBL;
i1 | i2
-----+----
-1 | -2
-3 | 1
102 | -4
102 |
(4 rows)
-- syntax errors
@ -76,12 +76,12 @@ INSERT INTO CHECK_TBL VALUES (6);
INSERT INTO CHECK_TBL VALUES (1);
ERROR: new row for relation "check_tbl" violates check constraint "check_con"
DETAIL: Failing row contains (1).
SELECT '' AS three, * FROM CHECK_TBL;
three | x
-------+---
| 5
| 4
| 6
SELECT * FROM CHECK_TBL;
x
---
5
4
6
(3 rows)
CREATE SEQUENCE CHECK_SEQ;
@ -102,11 +102,11 @@ INSERT INTO CHECK2_TBL VALUES (6, 'check failed', 11);
ERROR: new row for relation "check2_tbl" violates check constraint "sequence_con"
DETAIL: Failing row contains (6, check failed, 11).
INSERT INTO CHECK2_TBL VALUES (7, 'check ok', 7);
SELECT '' AS two, * from CHECK2_TBL;
two | x | y | z
-----+---+----------+----
| 4 | check ok | -2
| 7 | check ok | 7
SELECT * from CHECK2_TBL;
x | y | z
---+----------+----
4 | check ok | -2
7 | check ok | 7
(2 rows)
--
@ -121,9 +121,9 @@ CREATE TABLE INSERT_TBL (x INT DEFAULT nextval('insert_seq'),
INSERT INTO INSERT_TBL(x,z) VALUES (2, -2);
ERROR: new row for relation "insert_tbl" violates check constraint "insert_tbl_con"
DETAIL: Failing row contains (2, -NULL-, -2).
SELECT '' AS zero, * FROM INSERT_TBL;
zero | x | y | z
------+---+---+---
SELECT * FROM INSERT_TBL;
x | y | z
---+---+---
(0 rows)
SELECT 'one' AS one, nextval('insert_seq');
@ -145,13 +145,13 @@ ERROR: new row for relation "insert_tbl" violates check constraint "insert_tbl_
DETAIL: Failing row contains (5, check failed, -5).
INSERT INTO INSERT_TBL VALUES (7, '!check failed', -7);
INSERT INTO INSERT_TBL(y) VALUES ('-!NULL-');
SELECT '' AS four, * FROM INSERT_TBL;
four | x | y | z
------+---+---------------+----
| 3 | Y | -3
| 7 | -NULL- | -7
| 7 | !check failed | -7
| 4 | -!NULL- | -4
SELECT * FROM INSERT_TBL;
x | y | z
---+---------------+----
3 | Y | -3
7 | -NULL- | -7
7 | !check failed | -7
4 | -!NULL- | -4
(4 rows)
INSERT INTO INSERT_TBL(y,z) VALUES ('check failed', 4);
@ -162,15 +162,15 @@ ERROR: new row for relation "insert_tbl" violates check constraint "insert_tbl_
DETAIL: Failing row contains (5, check failed, -5).
INSERT INTO INSERT_TBL(x,y) VALUES (5, '!check failed');
INSERT INTO INSERT_TBL(y) VALUES ('-!NULL-');
SELECT '' AS six, * FROM INSERT_TBL;
six | x | y | z
-----+---+---------------+----
| 3 | Y | -3
| 7 | -NULL- | -7
| 7 | !check failed | -7
| 4 | -!NULL- | -4
| 5 | !check failed | -5
| 6 | -!NULL- | -6
SELECT * FROM INSERT_TBL;
x | y | z
---+---------------+----
3 | Y | -3
7 | -NULL- | -7
7 | !check failed | -7
4 | -!NULL- | -4
5 | !check failed | -5
6 | -!NULL- | -6
(6 rows)
SELECT 'seven' AS one, nextval('insert_seq');
@ -192,16 +192,16 @@ SELECT 'eight' AS one, currval('insert_seq');
-- constraint-condition results. Postgres used to reject this, but it
-- was wrong:
INSERT INTO INSERT_TBL VALUES (null, null, null);
SELECT '' AS nine, * FROM INSERT_TBL;
nine | x | y | z
------+---+---------------+----
| 3 | Y | -3
| 7 | -NULL- | -7
| 7 | !check failed | -7
| 4 | -!NULL- | -4
| 5 | !check failed | -5
| 6 | -!NULL- | -6
| | |
SELECT * FROM INSERT_TBL;
x | y | z
---+---------------+----
3 | Y | -3
7 | -NULL- | -7
7 | !check failed | -7
4 | -!NULL- | -4
5 | !check failed | -5
6 | -!NULL- | -6
| |
(7 rows)
--
@ -296,12 +296,12 @@ INSERT INTO tmp VALUES (null, 'Y', null);
INSERT INTO tmp VALUES (5, '!check failed', null);
INSERT INTO tmp VALUES (null, 'try again', null);
INSERT INTO INSERT_TBL(y) select yd from tmp;
SELECT '' AS three, * FROM INSERT_TBL;
three | x | y | z
-------+---+---------------+----
| 4 | Y | -4
| 5 | !check failed | -5
| 6 | try again | -6
SELECT * FROM INSERT_TBL;
x | y | z
---+---------------+----
4 | Y | -4
5 | !check failed | -5
6 | try again | -6
(3 rows)
INSERT INTO INSERT_TBL SELECT * FROM tmp WHERE yd = 'try again';
@ -309,14 +309,14 @@ INSERT INTO INSERT_TBL(y,z) SELECT yd, -7 FROM tmp WHERE yd = 'try again';
INSERT INTO INSERT_TBL(y,z) SELECT yd, -8 FROM tmp WHERE yd = 'try again';
ERROR: new row for relation "insert_tbl" violates check constraint "insert_tbl_con"
DETAIL: Failing row contains (8, try again, -8).
SELECT '' AS four, * FROM INSERT_TBL;
four | x | y | z
------+---+---------------+----
| 4 | Y | -4
| 5 | !check failed | -5
| 6 | try again | -6
| | try again |
| 7 | try again | -7
SELECT * FROM INSERT_TBL;
x | y | z
---+---------------+----
4 | Y | -4
5 | !check failed | -5
6 | try again | -6
| try again |
7 | try again | -7
(5 rows)
DROP TABLE tmp;
@ -347,11 +347,11 @@ CREATE TABLE COPY_TBL (x INT, y TEXT, z INT,
CONSTRAINT COPY_CON
CHECK (x > 3 AND y <> 'check failed' AND x < 7 ));
COPY COPY_TBL FROM '@abs_srcdir@/data/constro.data';
SELECT '' AS two, * FROM COPY_TBL;
two | x | y | z
-----+---+---------------+---
| 4 | !check failed | 5
| 6 | OK | 4
SELECT * FROM COPY_TBL;
x | y | z
---+---------------+---
4 | !check failed | 5
6 | OK | 4
(2 rows)
COPY COPY_TBL FROM '@abs_srcdir@/data/constrf.data';
@ -379,13 +379,13 @@ INSERT INTO PRIMARY_TBL VALUES (5, 'one');
INSERT INTO PRIMARY_TBL (t) VALUES ('six');
ERROR: null value in column "i" of relation "primary_tbl" violates not-null constraint
DETAIL: Failing row contains (null, six).
SELECT '' AS four, * FROM PRIMARY_TBL;
four | i | t
------+---+-------
| 1 | one
| 2 | two
| 4 | three
| 5 | one
SELECT * FROM PRIMARY_TBL;
i | t
---+-------
1 | one
2 | two
4 | three
5 | one
(4 rows)
DROP TABLE PRIMARY_TBL;
@ -399,14 +399,14 @@ INSERT INTO PRIMARY_TBL VALUES (5, 'one');
INSERT INTO PRIMARY_TBL (t) VALUES ('six');
ERROR: null value in column "i" of relation "primary_tbl" violates not-null constraint
DETAIL: Failing row contains (null, six).
SELECT '' AS three, * FROM PRIMARY_TBL;
three | i | t
-------+---+-------
| 1 | one
| 2 | two
| 1 | three
| 4 | three
| 5 | one
SELECT * FROM PRIMARY_TBL;
i | t
---+-------
1 | one
2 | two
1 | three
4 | three
5 | one
(5 rows)
DROP TABLE PRIMARY_TBL;
@ -429,16 +429,16 @@ INSERT INTO UNIQUE_TBL VALUES (6, 'six-upsert-insert') ON CONFLICT (i) DO UPDATE
INSERT INTO UNIQUE_TBL VALUES (1, 'a'), (2, 'b'), (2, 'b') ON CONFLICT (i) DO UPDATE SET t = 'fails';
ERROR: ON CONFLICT DO UPDATE command cannot affect row a second time
HINT: Ensure that no rows proposed for insertion within the same command have duplicate constrained values.
SELECT '' AS five, * FROM UNIQUE_TBL;
five | i | t
------+---+--------------------
| 1 | one
| 2 | two
| 4 | four
| | six
| | seven
| 5 | five-upsert-update
| 6 | six-upsert-insert
SELECT * FROM UNIQUE_TBL;
i | t
---+--------------------
1 | one
2 | two
4 | four
| six
| seven
5 | five-upsert-update
6 | six-upsert-insert
(7 rows)
DROP TABLE UNIQUE_TBL;
@ -452,14 +452,14 @@ ERROR: duplicate key value violates unique constraint "unique_tbl_i_t_key"
DETAIL: Key (i, t)=(1, one) already exists.
INSERT INTO UNIQUE_TBL VALUES (5, 'one');
INSERT INTO UNIQUE_TBL (t) VALUES ('six');
SELECT '' AS five, * FROM UNIQUE_TBL;
five | i | t
------+---+-------
| 1 | one
| 2 | two
| 1 | three
| 5 | one
| | six
SELECT * FROM UNIQUE_TBL;
i | t
---+-------
1 | one
2 | two
1 | three
5 | one
| six
(5 rows)
DROP TABLE UNIQUE_TBL;

View File

@ -101,25 +101,25 @@ INSERT INTO BOOLTBL1 (f1) VALUES (bool 'true');
-- BOOLTBL1 should be full of true's at this point
SELECT '' AS t_3, BOOLTBL1.* FROM BOOLTBL1;
SELECT BOOLTBL1.* FROM BOOLTBL1;
SELECT '' AS t_3, BOOLTBL1.*
SELECT BOOLTBL1.*
FROM BOOLTBL1
WHERE f1 = bool 'true';
SELECT '' AS t_3, BOOLTBL1.*
SELECT BOOLTBL1.*
FROM BOOLTBL1
WHERE f1 <> bool 'false';
SELECT '' AS zero, BOOLTBL1.*
SELECT BOOLTBL1.*
FROM BOOLTBL1
WHERE booleq(bool 'false', f1);
INSERT INTO BOOLTBL1 (f1) VALUES (bool 'f');
SELECT '' AS f_1, BOOLTBL1.*
SELECT BOOLTBL1.*
FROM BOOLTBL1
WHERE f1 = bool 'false';
@ -140,25 +140,25 @@ INSERT INTO BOOLTBL2 (f1)
VALUES (bool 'XXX');
-- BOOLTBL2 should be full of false's at this point
SELECT '' AS f_4, BOOLTBL2.* FROM BOOLTBL2;
SELECT BOOLTBL2.* FROM BOOLTBL2;
SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
SELECT BOOLTBL1.*, BOOLTBL2.*
FROM BOOLTBL1, BOOLTBL2
WHERE BOOLTBL2.f1 <> BOOLTBL1.f1;
SELECT '' AS tf_12, BOOLTBL1.*, BOOLTBL2.*
SELECT BOOLTBL1.*, BOOLTBL2.*
FROM BOOLTBL1, BOOLTBL2
WHERE boolne(BOOLTBL2.f1,BOOLTBL1.f1);
SELECT '' AS ff_4, BOOLTBL1.*, BOOLTBL2.*
SELECT BOOLTBL1.*, BOOLTBL2.*
FROM BOOLTBL1, BOOLTBL2
WHERE BOOLTBL2.f1 = BOOLTBL1.f1 and BOOLTBL1.f1 = bool 'false';
SELECT '' AS tf_12_ff_4, BOOLTBL1.*, BOOLTBL2.*
SELECT BOOLTBL1.*, BOOLTBL2.*
FROM BOOLTBL1, BOOLTBL2
WHERE BOOLTBL2.f1 = BOOLTBL1.f1 or BOOLTBL1.f1 = bool 'true'
ORDER BY BOOLTBL1.f1, BOOLTBL2.f1;
@ -169,35 +169,35 @@ SELECT '' AS tf_12_ff_4, BOOLTBL1.*, BOOLTBL2.*
-- - thomas 2000-01-04
--
SELECT '' AS "True", f1
SELECT f1
FROM BOOLTBL1
WHERE f1 IS TRUE;
SELECT '' AS "Not False", f1
SELECT f1
FROM BOOLTBL1
WHERE f1 IS NOT FALSE;
SELECT '' AS "False", f1
SELECT f1
FROM BOOLTBL1
WHERE f1 IS FALSE;
SELECT '' AS "Not True", f1
SELECT f1
FROM BOOLTBL1
WHERE f1 IS NOT TRUE;
SELECT '' AS "True", f1
SELECT f1
FROM BOOLTBL2
WHERE f1 IS TRUE;
SELECT '' AS "Not False", f1
SELECT f1
FROM BOOLTBL2
WHERE f1 IS NOT FALSE;
SELECT '' AS "False", f1
SELECT f1
FROM BOOLTBL2
WHERE f1 IS FALSE;
SELECT '' AS "Not True", f1
SELECT f1
FROM BOOLTBL2
WHERE f1 IS NOT TRUE;

View File

@ -46,86 +46,86 @@ INSERT INTO BOX_TBL (f1) VALUES ('(1, 2, 3, 4) x');
INSERT INTO BOX_TBL (f1) VALUES ('asdfasdf(ad');
SELECT '' AS four, * FROM BOX_TBL;
SELECT * FROM BOX_TBL;
SELECT '' AS four, b.*, area(b.f1) as barea
SELECT b.*, area(b.f1) as barea
FROM BOX_TBL b;
-- overlap
SELECT '' AS three, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 && box '(2.5,2.5,1.0,1.0)';
-- left-or-overlap (x only)
SELECT '' AS two, b1.*
SELECT b1.*
FROM BOX_TBL b1
WHERE b1.f1 &< box '(2.0,2.0,2.5,2.5)';
-- right-or-overlap (x only)
SELECT '' AS two, b1.*
SELECT b1.*
FROM BOX_TBL b1
WHERE b1.f1 &> box '(2.0,2.0,2.5,2.5)';
-- left of
SELECT '' AS two, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 << box '(3.0,3.0,5.0,5.0)';
-- area <=
SELECT '' AS four, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 <= box '(3.0,3.0,5.0,5.0)';
-- area <
SELECT '' AS two, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 < box '(3.0,3.0,5.0,5.0)';
-- area =
SELECT '' AS two, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 = box '(3.0,3.0,5.0,5.0)';
-- area >
SELECT '' AS two, b.f1
SELECT b.f1
FROM BOX_TBL b -- zero area
WHERE b.f1 > box '(3.5,3.0,4.5,3.0)';
-- area >=
SELECT '' AS four, b.f1
SELECT b.f1
FROM BOX_TBL b -- zero area
WHERE b.f1 >= box '(3.5,3.0,4.5,3.0)';
-- right of
SELECT '' AS two, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE box '(3.0,3.0,5.0,5.0)' >> b.f1;
-- contained in
SELECT '' AS three, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE b.f1 <@ box '(0,0,3,3)';
-- contains
SELECT '' AS three, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE box '(0,0,3,3)' @> b.f1;
-- box equality
SELECT '' AS one, b.f1
SELECT b.f1
FROM BOX_TBL b
WHERE box '(1,1,3,3)' ~= b.f1;
-- center of box, left unary operator
SELECT '' AS four, @@(b1.f1) AS p
SELECT @@(b1.f1) AS p
FROM BOX_TBL b1;
-- wholly-contained
SELECT '' AS one, b1.*, b2.*
SELECT b1.*, b2.*
FROM BOX_TBL b1, BOX_TBL b2
WHERE b1.f1 @> b2.f1 and not b1.f1 ~= b2.f1;
SELECT '' AS four, height(f1), width(f1) FROM BOX_TBL;
SELECT height(f1), width(f1) FROM BOX_TBL;
--
-- Test the SP-GiST index

View File

@ -78,19 +78,19 @@ SELECT CASE 'a' WHEN 'a' THEN 1 ELSE 2 END;
-- Examples of targets involving tables
--
SELECT '' AS "Five",
SELECT
CASE
WHEN i >= 3 THEN i
END AS ">= 3 or Null"
FROM CASE_TBL;
SELECT '' AS "Five",
SELECT
CASE WHEN i >= 3 THEN (i + i)
ELSE i
END AS "Simplest Math"
FROM CASE_TBL;
SELECT '' AS "Five", i AS "Value",
SELECT i AS "Value",
CASE WHEN (i < 0) THEN 'small'
WHEN (i = 0) THEN 'zero'
WHEN (i = 1) THEN 'one'
@ -99,7 +99,7 @@ SELECT '' AS "Five", i AS "Value",
END AS "Category"
FROM CASE_TBL;
SELECT '' AS "Five",
SELECT
CASE WHEN ((i < 0) or (i < 0)) THEN 'small'
WHEN ((i = 0) or (i = 0)) THEN 'zero'
WHEN ((i = 1) or (i = 1)) THEN 'one'
@ -129,11 +129,11 @@ SELECT *
FROM CASE_TBL a, CASE2_TBL b
WHERE COALESCE(a.f, b.i, b.j) = 2;
SELECT '' AS Five, NULLIF(a.i,b.i) AS "NULLIF(a.i,b.i)",
SELECT NULLIF(a.i,b.i) AS "NULLIF(a.i,b.i)",
NULLIF(b.i, 4) AS "NULLIF(b.i,4)"
FROM CASE_TBL a, CASE2_TBL b;
SELECT '' AS "Two", *
SELECT *
FROM CASE_TBL a, CASE2_TBL b
WHERE COALESCE(f,b.i) = 2;

View File

@ -32,29 +32,29 @@ INSERT INTO CHAR_TBL (f1) VALUES ('cd');
INSERT INTO CHAR_TBL (f1) VALUES ('c ');
SELECT '' AS seven, * FROM CHAR_TBL;
SELECT * FROM CHAR_TBL;
SELECT '' AS six, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 <> 'a';
SELECT '' AS one, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 = 'a';
SELECT '' AS five, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 < 'a';
SELECT '' AS six, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 <= 'a';
SELECT '' AS one, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 > 'a';
SELECT '' AS two, c.*
SELECT c.*
FROM CHAR_TBL c
WHERE c.f1 >= 'a';
@ -72,4 +72,4 @@ INSERT INTO CHAR_TBL (f1) VALUES ('abcd');
INSERT INTO CHAR_TBL (f1) VALUES ('abcde');
INSERT INTO CHAR_TBL (f1) VALUES ('abcd ');
SELECT '' AS four, * FROM CHAR_TBL;
SELECT * FROM CHAR_TBL;

View File

@ -38,20 +38,20 @@ INSERT INTO CIRCLE_TBL VALUES ('(3,(1,2),3)');
SELECT * FROM CIRCLE_TBL;
SELECT '' AS six, center(f1) AS center
SELECT center(f1) AS center
FROM CIRCLE_TBL;
SELECT '' AS six, radius(f1) AS radius
SELECT radius(f1) AS radius
FROM CIRCLE_TBL;
SELECT '' AS six, diameter(f1) AS diameter
SELECT diameter(f1) AS diameter
FROM CIRCLE_TBL;
SELECT '' AS two, f1 FROM CIRCLE_TBL WHERE radius(f1) < 5;
SELECT f1 FROM CIRCLE_TBL WHERE radius(f1) < 5;
SELECT '' AS four, f1 FROM CIRCLE_TBL WHERE diameter(f1) >= 10;
SELECT f1 FROM CIRCLE_TBL WHERE diameter(f1) >= 10;
SELECT '' as five, c1.f1 AS one, c2.f1 AS two, (c1.f1 <-> c2.f1) AS distance
SELECT c1.f1 AS one, c2.f1 AS two, (c1.f1 <-> c2.f1) AS distance
FROM CIRCLE_TBL c1, CIRCLE_TBL c2
WHERE (c1.f1 < c2.f1) AND ((c1.f1 <-> c2.f1) > 0)
ORDER BY distance, area(c1.f1), area(c2.f1);

View File

@ -54,45 +54,45 @@ SELECT 'nan'::float4 / 'nan'::float4;
SELECT 'nan'::float4 / '0'::float4;
SELECT 'nan'::numeric::float4;
SELECT '' AS five, * FROM FLOAT4_TBL;
SELECT * FROM FLOAT4_TBL;
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 <> '1004.3';
SELECT '' AS one, f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 = '1004.3';
SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
SELECT f.* FROM FLOAT4_TBL f WHERE '1004.3' > f.f1;
SELECT '' AS three, f.* FROM FLOAT4_TBL f WHERE f.f1 < '1004.3';
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 < '1004.3';
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
SELECT f.* FROM FLOAT4_TBL f WHERE '1004.3' >= f.f1;
SELECT '' AS four, f.* FROM FLOAT4_TBL f WHERE f.f1 <= '1004.3';
SELECT f.* FROM FLOAT4_TBL f WHERE f.f1 <= '1004.3';
SELECT '' AS three, f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 * '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
SELECT '' AS three, f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 + '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
SELECT '' AS three, f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 / '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
SELECT '' AS three, f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
SELECT f.f1, f.f1 - '-10' AS x FROM FLOAT4_TBL f
WHERE f.f1 > '0.0';
-- test divide by zero
SELECT '' AS bad, f.f1 / '0.0' from FLOAT4_TBL f;
SELECT f.f1 / '0.0' from FLOAT4_TBL f;
SELECT '' AS five, * FROM FLOAT4_TBL;
SELECT * FROM FLOAT4_TBL;
-- test the unary float4abs operator
SELECT '' AS five, f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
SELECT f.f1, @f.f1 AS abs_f1 FROM FLOAT4_TBL f;
UPDATE FLOAT4_TBL
SET f1 = FLOAT4_TBL.f1 * '-1'
WHERE FLOAT4_TBL.f1 > '0.0';
SELECT '' AS five, * FROM FLOAT4_TBL;
SELECT * FROM FLOAT4_TBL;
-- test edge-case coercions to integer
SELECT '32767.4'::float4::int2;

View File

@ -47,49 +47,49 @@ SELECT 'nan'::float8 / 'nan'::float8;
SELECT 'nan'::float8 / '0'::float8;
SELECT 'nan'::numeric::float8;
SELECT '' AS five, * FROM FLOAT8_TBL;
SELECT * FROM FLOAT8_TBL;
SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <> '1004.3';
SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 <> '1004.3';
SELECT '' AS one, f.* FROM FLOAT8_TBL f WHERE f.f1 = '1004.3';
SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 = '1004.3';
SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE '1004.3' > f.f1;
SELECT f.* FROM FLOAT8_TBL f WHERE '1004.3' > f.f1;
SELECT '' AS three, f.* FROM FLOAT8_TBL f WHERE f.f1 < '1004.3';
SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 < '1004.3';
SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE '1004.3' >= f.f1;
SELECT f.* FROM FLOAT8_TBL f WHERE '1004.3' >= f.f1;
SELECT '' AS four, f.* FROM FLOAT8_TBL f WHERE f.f1 <= '1004.3';
SELECT f.* FROM FLOAT8_TBL f WHERE f.f1 <= '1004.3';
SELECT '' AS three, f.f1, f.f1 * '-10' AS x
SELECT f.f1, f.f1 * '-10' AS x
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
SELECT '' AS three, f.f1, f.f1 + '-10' AS x
SELECT f.f1, f.f1 + '-10' AS x
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
SELECT '' AS three, f.f1, f.f1 / '-10' AS x
SELECT f.f1, f.f1 / '-10' AS x
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
SELECT '' AS three, f.f1, f.f1 - '-10' AS x
SELECT f.f1, f.f1 - '-10' AS x
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
SELECT '' AS one, f.f1 ^ '2.0' AS square_f1
SELECT f.f1 ^ '2.0' AS square_f1
FROM FLOAT8_TBL f where f.f1 = '1004.3';
-- absolute value
SELECT '' AS five, f.f1, @f.f1 AS abs_f1
SELECT f.f1, @f.f1 AS abs_f1
FROM FLOAT8_TBL f;
-- truncate
SELECT '' AS five, f.f1, trunc(f.f1) AS trunc_f1
SELECT f.f1, trunc(f.f1) AS trunc_f1
FROM FLOAT8_TBL f;
-- round
SELECT '' AS five, f.f1, round(f.f1) AS round_f1
SELECT f.f1, round(f.f1) AS round_f1
FROM FLOAT8_TBL f;
-- ceil / ceiling
@ -110,7 +110,7 @@ SELECT sqrt(float8 '64') AS eight;
SELECT |/ float8 '64' AS eight;
SELECT '' AS three, f.f1, |/f.f1 AS sqrt_f1
SELECT f.f1, |/f.f1 AS sqrt_f1
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
@ -153,7 +153,7 @@ SELECT power(float8 '-inf', float8 'inf');
SELECT power(float8 '-inf', float8 '-inf');
-- take exp of ln(f.f1)
SELECT '' AS three, f.f1, exp(ln(f.f1)) AS exp_ln_f1
SELECT f.f1, exp(ln(f.f1)) AS exp_ln_f1
FROM FLOAT8_TBL f
WHERE f.f1 > '0.0';
@ -163,30 +163,30 @@ SELECT exp('inf'::float8), exp('-inf'::float8), exp('nan'::float8);
-- cube root
SELECT ||/ float8 '27' AS three;
SELECT '' AS five, f.f1, ||/f.f1 AS cbrt_f1 FROM FLOAT8_TBL f;
SELECT f.f1, ||/f.f1 AS cbrt_f1 FROM FLOAT8_TBL f;
SELECT '' AS five, * FROM FLOAT8_TBL;
SELECT * FROM FLOAT8_TBL;
UPDATE FLOAT8_TBL
SET f1 = FLOAT8_TBL.f1 * '-1'
WHERE FLOAT8_TBL.f1 > '0.0';
SELECT '' AS bad, f.f1 * '1e200' from FLOAT8_TBL f;
SELECT f.f1 * '1e200' from FLOAT8_TBL f;
SELECT '' AS bad, f.f1 ^ '1e200' from FLOAT8_TBL f;
SELECT f.f1 ^ '1e200' from FLOAT8_TBL f;
SELECT 0 ^ 0 + 0 ^ 1 + 0 ^ 0.0 + 0 ^ 0.5;
SELECT '' AS bad, ln(f.f1) from FLOAT8_TBL f where f.f1 = '0.0' ;
SELECT ln(f.f1) from FLOAT8_TBL f where f.f1 = '0.0' ;
SELECT '' AS bad, ln(f.f1) from FLOAT8_TBL f where f.f1 < '0.0' ;
SELECT ln(f.f1) from FLOAT8_TBL f where f.f1 < '0.0' ;
SELECT '' AS bad, exp(f.f1) from FLOAT8_TBL f;
SELECT exp(f.f1) from FLOAT8_TBL f;
SELECT '' AS bad, f.f1 / '0.0' from FLOAT8_TBL f;
SELECT f.f1 / '0.0' from FLOAT8_TBL f;
SELECT '' AS five, * FROM FLOAT8_TBL;
SELECT * FROM FLOAT8_TBL;
-- hyperbolic functions
-- we run these with extra_float_digits = 0 too, since different platforms
@ -244,7 +244,7 @@ INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e+200');
INSERT INTO FLOAT8_TBL(f1) VALUES ('-1.2345678901234e-200');
SELECT '' AS five, * FROM FLOAT8_TBL;
SELECT * FROM FLOAT8_TBL;
-- test edge-case coercions to integer
SELECT '32767.4'::float8::int2;

View File

@ -10,39 +10,39 @@ SET extra_float_digits TO -3;
-- Points
--
SELECT '' AS four, center(f1) AS center
SELECT center(f1) AS center
FROM BOX_TBL;
SELECT '' AS four, (@@ f1) AS center
SELECT (@@ f1) AS center
FROM BOX_TBL;
SELECT '' AS six, point(f1) AS center
SELECT point(f1) AS center
FROM CIRCLE_TBL;
SELECT '' AS six, (@@ f1) AS center
SELECT (@@ f1) AS center
FROM CIRCLE_TBL;
SELECT '' AS two, (@@ f1) AS center
SELECT (@@ f1) AS center
FROM POLYGON_TBL
WHERE (# f1) > 2;
-- "is horizontal" function
SELECT '' AS two, p1.f1
SELECT p1.f1
FROM POINT_TBL p1
WHERE ishorizontal(p1.f1, point '(0,0)');
-- "is horizontal" operator
SELECT '' AS two, p1.f1
SELECT p1.f1
FROM POINT_TBL p1
WHERE p1.f1 ?- point '(0,0)';
-- "is vertical" function
SELECT '' AS one, p1.f1
SELECT p1.f1
FROM POINT_TBL p1
WHERE isvertical(p1.f1, point '(5.1,34.5)');
-- "is vertical" operator
SELECT '' AS one, p1.f1
SELECT p1.f1
FROM POINT_TBL p1
WHERE p1.f1 ?| point '(5.1,34.5)';
@ -153,7 +153,7 @@ SELECT l.s, b.f1, l.s ## b.f1 FROM LINE_TBL l, BOX_TBL b;
--
-- intersection
SELECT '' AS count, p.f1, l.s, l.s # p.f1 AS intersection
SELECT p.f1, l.s, l.s # p.f1 AS intersection
FROM LSEG_TBL l, POINT_TBL p;
-- Length
@ -232,13 +232,13 @@ SELECT l.s, b.f1 FROM LSEG_TBL l, BOX_TBL b WHERE l.s <@ b.f1;
-- Boxes
--
SELECT '' as six, box(f1) AS box FROM CIRCLE_TBL;
SELECT box(f1) AS box FROM CIRCLE_TBL;
-- translation
SELECT '' AS twentyfour, b.f1 + p.f1 AS translation
SELECT b.f1 + p.f1 AS translation
FROM BOX_TBL b, POINT_TBL p;
SELECT '' AS twentyfour, b.f1 - p.f1 AS translation
SELECT b.f1 - p.f1 AS translation
FROM BOX_TBL b, POINT_TBL p;
-- Multiply with point
@ -335,22 +335,22 @@ SELECT p1.f1, p2.f1, p1.f1 <-> p2.f1 FROM PATH_TBL p1, PATH_TBL p2;
--
-- containment
SELECT '' AS twentyfour, p.f1, poly.f1, poly.f1 @> p.f1 AS contains
SELECT p.f1, poly.f1, poly.f1 @> p.f1 AS contains
FROM POLYGON_TBL poly, POINT_TBL p;
SELECT '' AS twentyfour, p.f1, poly.f1, p.f1 <@ poly.f1 AS contained
SELECT p.f1, poly.f1, p.f1 <@ poly.f1 AS contained
FROM POLYGON_TBL poly, POINT_TBL p;
SELECT '' AS four, npoints(f1) AS npoints, f1 AS polygon
SELECT npoints(f1) AS npoints, f1 AS polygon
FROM POLYGON_TBL;
SELECT '' AS four, polygon(f1)
SELECT polygon(f1)
FROM BOX_TBL;
SELECT '' AS four, polygon(f1)
SELECT polygon(f1)
FROM PATH_TBL WHERE isclosed(f1);
SELECT '' AS four, f1 AS open_path, polygon( pclose(f1)) AS polygon
SELECT f1 AS open_path, polygon( pclose(f1)) AS polygon
FROM PATH_TBL
WHERE isopen(f1);
@ -403,17 +403,17 @@ SELECT p1.f1, p2.f1, p1.f1 <-> p2.f1 FROM POLYGON_TBL p1, POLYGON_TBL p2;
-- Circles
--
SELECT '' AS six, circle(f1, 50.0)
SELECT circle(f1, 50.0)
FROM POINT_TBL;
SELECT '' AS four, circle(f1)
SELECT circle(f1)
FROM BOX_TBL;
SELECT '' AS two, circle(f1)
SELECT circle(f1)
FROM POLYGON_TBL
WHERE (# f1) >= 3;
SELECT '' AS twentyfour, c1.f1 AS circle, p1.f1 AS point, (p1.f1 <-> c1.f1) AS distance
SELECT c1.f1 AS circle, p1.f1 AS point, (p1.f1 <-> c1.f1) AS distance
FROM CIRCLE_TBL c1, POINT_TBL p1
WHERE (p1.f1 <-> c1.f1) > 0
ORDER BY distance, area(c1.f1), p1.f1[0];

View File

@ -110,8 +110,8 @@ SELECT date '1994-01-01' + time '10:00' AS "Jan_01_1994_10am";
SELECT date '1994-01-01' + timetz '11:00-5' AS "Jan_01_1994_8am";
SELECT timestamptz(date '1994-01-01', time with time zone '11:00-5') AS "Jan_01_1994_8am";
SELECT '' AS "64", d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL;
SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL;
SELECT d1 + interval '1 year' AS one_year FROM TIMESTAMP_TBL;
SELECT d1 - interval '1 year' AS one_year FROM TIMESTAMP_TBL;
SELECT timestamp with time zone '1996-03-01' - interval '1 second' AS "Feb 29";
SELECT timestamp with time zone '1999-03-01' - interval '1 second' AS "Feb 28";
@ -139,8 +139,8 @@ SELECT timestamptz(date '1994-01-01', time with time zone '11:00-8') AS "Jan_01_
SELECT timestamptz(date '1994-01-01', time with time zone '10:00-8') AS "Jan_01_1994_10am";
SELECT timestamptz(date '1994-01-01', time with time zone '11:00-5') AS "Jan_01_1994_8am";
SELECT '' AS "64", d1 + interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
SELECT '' AS "64", d1 - interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
SELECT d1 + interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
SELECT d1 - interval '1 year' AS one_year FROM TIMESTAMPTZ_TBL;
--
-- time, interval arithmetic
@ -247,26 +247,26 @@ INSERT INTO TEMP_TIMESTAMP (f1)
WHERE d1 BETWEEN '13-jun-1957' AND '1-jan-1997'
OR d1 BETWEEN '1-jan-1999' AND '1-jan-2010';
SELECT '' AS "16", f1 AS "timestamp"
SELECT f1 AS "timestamp"
FROM TEMP_TIMESTAMP
ORDER BY "timestamp";
SELECT '' AS "160", d.f1 AS "timestamp", t.f1 AS "interval", d.f1 + t.f1 AS plus
SELECT d.f1 AS "timestamp", t.f1 AS "interval", d.f1 + t.f1 AS plus
FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
ORDER BY plus, "timestamp", "interval";
SELECT '' AS "160", d.f1 AS "timestamp", t.f1 AS "interval", d.f1 - t.f1 AS minus
SELECT d.f1 AS "timestamp", t.f1 AS "interval", d.f1 - t.f1 AS minus
FROM TEMP_TIMESTAMP d, INTERVAL_TBL t
WHERE isfinite(d.f1)
ORDER BY minus, "timestamp", "interval";
SELECT '' AS "16", d.f1 AS "timestamp",
SELECT d.f1 AS "timestamp",
timestamp with time zone '1980-01-06 00:00 GMT' AS gpstime_zero,
d.f1 - timestamp with time zone '1980-01-06 00:00 GMT' AS difference
FROM TEMP_TIMESTAMP d
ORDER BY difference;
SELECT '' AS "226", d1.f1 AS timestamp1, d2.f1 AS timestamp2, d1.f1 - d2.f1 AS difference
SELECT d1.f1 AS timestamp1, d2.f1 AS timestamp2, d1.f1 - d2.f1 AS difference
FROM TEMP_TIMESTAMP d1, TEMP_TIMESTAMP d2
ORDER BY timestamp1, timestamp2, difference;
@ -274,7 +274,7 @@ SELECT '' AS "226", d1.f1 AS timestamp1, d2.f1 AS timestamp2, d1.f1 - d2.f1 AS d
-- Conversions
--
SELECT '' AS "16", f1 AS "timestamp", date(f1) AS date
SELECT f1 AS "timestamp", date(f1) AS date
FROM TEMP_TIMESTAMP
WHERE f1 <> timestamp 'now'
ORDER BY date, "timestamp";
@ -314,17 +314,17 @@ SET DateStyle TO 'US,Postgres';
SHOW DateStyle;
SELECT '' AS "64", d1 AS us_postgres FROM TIMESTAMP_TBL;
SELECT d1 AS us_postgres FROM TIMESTAMP_TBL;
SET DateStyle TO 'US,ISO';
SELECT '' AS "64", d1 AS us_iso FROM TIMESTAMP_TBL;
SELECT d1 AS us_iso FROM TIMESTAMP_TBL;
SET DateStyle TO 'US,SQL';
SHOW DateStyle;
SELECT '' AS "64", d1 AS us_sql FROM TIMESTAMP_TBL;
SELECT d1 AS us_sql FROM TIMESTAMP_TBL;
SET DateStyle TO 'European,Postgres';
@ -334,19 +334,19 @@ INSERT INTO TIMESTAMP_TBL VALUES('13/06/1957');
SELECT count(*) as one FROM TIMESTAMP_TBL WHERE d1 = 'Jun 13 1957';
SELECT '' AS "65", d1 AS european_postgres FROM TIMESTAMP_TBL;
SELECT d1 AS european_postgres FROM TIMESTAMP_TBL;
SET DateStyle TO 'European,ISO';
SHOW DateStyle;
SELECT '' AS "65", d1 AS european_iso FROM TIMESTAMP_TBL;
SELECT d1 AS european_iso FROM TIMESTAMP_TBL;
SET DateStyle TO 'European,SQL';
SHOW DateStyle;
SELECT '' AS "65", d1 AS european_sql FROM TIMESTAMP_TBL;
SELECT d1 AS european_sql FROM TIMESTAMP_TBL;
RESET DateStyle;

View File

@ -29,26 +29,26 @@ INSERT INTO INET_TBL (c, i) VALUES ('1234::1234::1234', '::1.2.3.4');
-- check that CIDR rejects invalid input when converting from text:
INSERT INTO INET_TBL (c, i) VALUES (cidr('192.168.1.2/30'), '192.168.1.226');
INSERT INTO INET_TBL (c, i) VALUES (cidr('ffff:ffff:ffff:ffff::/24'), '::192.168.1.226');
SELECT '' AS ten, c AS cidr, i AS inet FROM INET_TBL;
SELECT c AS cidr, i AS inet FROM INET_TBL;
-- now test some support functions
SELECT '' AS ten, i AS inet, host(i), text(i), family(i) FROM INET_TBL;
SELECT '' AS ten, c AS cidr, broadcast(c),
SELECT i AS inet, host(i), text(i), family(i) FROM INET_TBL;
SELECT c AS cidr, broadcast(c),
i AS inet, broadcast(i) FROM INET_TBL;
SELECT '' AS ten, c AS cidr, network(c) AS "network(cidr)",
SELECT c AS cidr, network(c) AS "network(cidr)",
i AS inet, network(i) AS "network(inet)" FROM INET_TBL;
SELECT '' AS ten, c AS cidr, masklen(c) AS "masklen(cidr)",
SELECT c AS cidr, masklen(c) AS "masklen(cidr)",
i AS inet, masklen(i) AS "masklen(inet)" FROM INET_TBL;
SELECT '' AS four, c AS cidr, masklen(c) AS "masklen(cidr)",
SELECT c AS cidr, masklen(c) AS "masklen(cidr)",
i AS inet, masklen(i) AS "masklen(inet)" FROM INET_TBL
WHERE masklen(c) <= 8;
SELECT '' AS six, c AS cidr, i AS inet FROM INET_TBL
SELECT c AS cidr, i AS inet FROM INET_TBL
WHERE c = i;
SELECT '' AS ten, i, c,
SELECT i, c,
i < c AS lt, i <= c AS le, i = c AS eq,
i >= c AS ge, i > c AS gt, i <> c AS ne,
i << c AS sb, i <<= c AS sbe,
@ -60,7 +60,7 @@ SELECT max(i) AS max, min(i) AS min FROM INET_TBL;
SELECT max(c) AS max, min(c) AS min FROM INET_TBL;
-- check the conversion to/from text and set_netmask
SELECT '' AS ten, set_masklen(inet(text(i)), 24) FROM INET_TBL;
SELECT set_masklen(inet(text(i)), 24) FROM INET_TBL;
-- check that btree index works correctly
CREATE INDEX inet_idx1 ON inet_tbl(i);

View File

@ -27,62 +27,62 @@ INSERT INTO INT2_TBL(f1) VALUES ('123 dt');
INSERT INTO INT2_TBL(f1) VALUES ('');
SELECT '' AS five, * FROM INT2_TBL;
SELECT * FROM INT2_TBL;
SELECT '' AS four, i.* FROM INT2_TBL i WHERE i.f1 <> int2 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 <> int2 '0';
SELECT '' AS four, i.* FROM INT2_TBL i WHERE i.f1 <> int4 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 <> int4 '0';
SELECT '' AS one, i.* FROM INT2_TBL i WHERE i.f1 = int2 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 = int2 '0';
SELECT '' AS one, i.* FROM INT2_TBL i WHERE i.f1 = int4 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 = int4 '0';
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 < int2 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 < int2 '0';
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 < int4 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 < int4 '0';
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 <= int2 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 <= int2 '0';
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 <= int4 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 <= int4 '0';
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 > int2 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 > int2 '0';
SELECT '' AS two, i.* FROM INT2_TBL i WHERE i.f1 > int4 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 > int4 '0';
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 >= int2 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 >= int2 '0';
SELECT '' AS three, i.* FROM INT2_TBL i WHERE i.f1 >= int4 '0';
SELECT i.* FROM INT2_TBL i WHERE i.f1 >= int4 '0';
-- positive odds
SELECT '' AS one, i.* FROM INT2_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
SELECT i.* FROM INT2_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
-- any evens
SELECT '' AS three, i.* FROM INT2_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
SELECT i.* FROM INT2_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 * int2 '2' AS x FROM INT2_TBL i;
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT2_TBL i
SELECT i.f1, i.f1 * int2 '2' AS x FROM INT2_TBL i
WHERE abs(f1) < 16384;
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 * int4 '2' AS x FROM INT2_TBL i;
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 + int2 '2' AS x FROM INT2_TBL i;
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT2_TBL i
SELECT i.f1, i.f1 + int2 '2' AS x FROM INT2_TBL i
WHERE f1 < 32766;
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 + int4 '2' AS x FROM INT2_TBL i;
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 - int2 '2' AS x FROM INT2_TBL i;
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT2_TBL i
SELECT i.f1, i.f1 - int2 '2' AS x FROM INT2_TBL i
WHERE f1 > -32767;
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 - int4 '2' AS x FROM INT2_TBL i;
SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 / int2 '2' AS x FROM INT2_TBL i;
SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT2_TBL i;
SELECT i.f1, i.f1 / int4 '2' AS x FROM INT2_TBL i;
-- corner cases
SELECT (-1::int2<<15)::text;

View File

@ -27,71 +27,71 @@ INSERT INTO INT4_TBL(f1) VALUES ('123 5');
INSERT INTO INT4_TBL(f1) VALUES ('');
SELECT '' AS five, * FROM INT4_TBL;
SELECT * FROM INT4_TBL;
SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int2 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 <> int2 '0';
SELECT '' AS four, i.* FROM INT4_TBL i WHERE i.f1 <> int4 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 <> int4 '0';
SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int2 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 = int2 '0';
SELECT '' AS one, i.* FROM INT4_TBL i WHERE i.f1 = int4 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 = int4 '0';
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int2 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 < int2 '0';
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 < int4 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 < int4 '0';
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int2 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 <= int2 '0';
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 <= int4 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 <= int4 '0';
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int2 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 > int2 '0';
SELECT '' AS two, i.* FROM INT4_TBL i WHERE i.f1 > int4 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 > int4 '0';
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int2 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 >= int2 '0';
SELECT '' AS three, i.* FROM INT4_TBL i WHERE i.f1 >= int4 '0';
SELECT i.* FROM INT4_TBL i WHERE i.f1 >= int4 '0';
-- positive odds
SELECT '' AS one, i.* FROM INT4_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
SELECT i.* FROM INT4_TBL i WHERE (i.f1 % int2 '2') = int2 '1';
-- any evens
SELECT '' AS three, i.* FROM INT4_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
SELECT i.* FROM INT4_TBL i WHERE (i.f1 % int4 '2') = int2 '0';
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i;
SELECT '' AS five, i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 * int2 '2' AS x FROM INT4_TBL i
WHERE abs(f1) < 1073741824;
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i;
SELECT '' AS five, i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 * int4 '2' AS x FROM INT4_TBL i
WHERE abs(f1) < 1073741824;
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i;
SELECT '' AS five, i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 + int2 '2' AS x FROM INT4_TBL i
WHERE f1 < 2147483646;
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i;
SELECT '' AS five, i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 + int4 '2' AS x FROM INT4_TBL i
WHERE f1 < 2147483646;
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i;
SELECT '' AS five, i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 - int2 '2' AS x FROM INT4_TBL i
WHERE f1 > -2147483647;
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i;
SELECT '' AS five, i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i
SELECT i.f1, i.f1 - int4 '2' AS x FROM INT4_TBL i
WHERE f1 > -2147483647;
SELECT '' AS five, i.f1, i.f1 / int2 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 / int2 '2' AS x FROM INT4_TBL i;
SELECT '' AS five, i.f1, i.f1 / int4 '2' AS x FROM INT4_TBL i;
SELECT i.f1, i.f1 / int4 '2' AS x FROM INT4_TBL i;
--
-- more complex expressions

View File

@ -62,22 +62,22 @@ SELECT * FROM INT8_TBL WHERE '123'::int2 <= q1;
SELECT * FROM INT8_TBL WHERE '123'::int2 >= q1;
SELECT '' AS five, q1 AS plus, -q1 AS minus FROM INT8_TBL;
SELECT q1 AS plus, -q1 AS minus FROM INT8_TBL;
SELECT '' AS five, q1, q2, q1 + q2 AS plus FROM INT8_TBL;
SELECT '' AS five, q1, q2, q1 - q2 AS minus FROM INT8_TBL;
SELECT '' AS three, q1, q2, q1 * q2 AS multiply FROM INT8_TBL;
SELECT '' AS three, q1, q2, q1 * q2 AS multiply FROM INT8_TBL
SELECT q1, q2, q1 + q2 AS plus FROM INT8_TBL;
SELECT q1, q2, q1 - q2 AS minus FROM INT8_TBL;
SELECT q1, q2, q1 * q2 AS multiply FROM INT8_TBL;
SELECT q1, q2, q1 * q2 AS multiply FROM INT8_TBL
WHERE q1 < 1000 or (q2 > 0 and q2 < 1000);
SELECT '' AS five, q1, q2, q1 / q2 AS divide, q1 % q2 AS mod FROM INT8_TBL;
SELECT q1, q2, q1 / q2 AS divide, q1 % q2 AS mod FROM INT8_TBL;
SELECT '' AS five, q1, float8(q1) FROM INT8_TBL;
SELECT '' AS five, q2, float8(q2) FROM INT8_TBL;
SELECT q1, float8(q1) FROM INT8_TBL;
SELECT q2, float8(q2) FROM INT8_TBL;
SELECT 37 + q1 AS plus4 FROM INT8_TBL;
SELECT 37 - q1 AS minus4 FROM INT8_TBL;
SELECT '' AS five, 2 * q1 AS "twice int4" FROM INT8_TBL;
SELECT '' AS five, q1 * 2 AS "twice int4" FROM INT8_TBL;
SELECT 2 * q1 AS "twice int4" FROM INT8_TBL;
SELECT q1 * 2 AS "twice int4" FROM INT8_TBL;
-- int8 op int4
SELECT q1 + 42::int4 AS "8plus4", q1 - 42::int4 AS "8minus4", q1 * 42::int4 AS "8mul4", q1 / 42::int4 AS "8div4" FROM INT8_TBL;
@ -96,31 +96,31 @@ SELECT max(q1), max(q2) FROM INT8_TBL;
-- TO_CHAR()
--
SELECT '' AS to_char_1, to_char(q1, '9G999G999G999G999G999'), to_char(q2, '9,999,999,999,999,999')
SELECT to_char(q1, '9G999G999G999G999G999'), to_char(q2, '9,999,999,999,999,999')
FROM INT8_TBL;
SELECT '' AS to_char_2, to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999')
SELECT to_char(q1, '9G999G999G999G999G999D999G999'), to_char(q2, '9,999,999,999,999,999.999,999')
FROM INT8_TBL;
SELECT '' AS to_char_3, to_char( (q1 * -1), '9999999999999999PR'), to_char( (q2 * -1), '9999999999999999.999PR')
SELECT to_char( (q1 * -1), '9999999999999999PR'), to_char( (q2 * -1), '9999999999999999.999PR')
FROM INT8_TBL;
SELECT '' AS to_char_4, to_char( (q1 * -1), '9999999999999999S'), to_char( (q2 * -1), 'S9999999999999999')
SELECT to_char( (q1 * -1), '9999999999999999S'), to_char( (q2 * -1), 'S9999999999999999')
FROM INT8_TBL;
SELECT '' AS to_char_5, to_char(q2, 'MI9999999999999999') FROM INT8_TBL;
SELECT '' AS to_char_6, to_char(q2, 'FMS9999999999999999') FROM INT8_TBL;
SELECT '' AS to_char_7, to_char(q2, 'FM9999999999999999THPR') FROM INT8_TBL;
SELECT '' AS to_char_8, to_char(q2, 'SG9999999999999999th') FROM INT8_TBL;
SELECT '' AS to_char_9, to_char(q2, '0999999999999999') FROM INT8_TBL;
SELECT '' AS to_char_10, to_char(q2, 'S0999999999999999') FROM INT8_TBL;
SELECT '' AS to_char_11, to_char(q2, 'FM0999999999999999') FROM INT8_TBL;
SELECT '' AS to_char_12, to_char(q2, 'FM9999999999999999.000') FROM INT8_TBL;
SELECT '' AS to_char_13, to_char(q2, 'L9999999999999999.000') FROM INT8_TBL;
SELECT '' AS to_char_14, to_char(q2, 'FM9999999999999999.999') FROM INT8_TBL;
SELECT '' AS to_char_15, to_char(q2, 'S 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . 9 9 9') FROM INT8_TBL;
SELECT '' AS to_char_16, to_char(q2, E'99999 "text" 9999 "9999" 999 "\\"text between quote marks\\"" 9999') FROM INT8_TBL;
SELECT '' AS to_char_17, to_char(q2, '999999SG9999999999') FROM INT8_TBL;
SELECT to_char(q2, 'MI9999999999999999') FROM INT8_TBL;
SELECT to_char(q2, 'FMS9999999999999999') FROM INT8_TBL;
SELECT to_char(q2, 'FM9999999999999999THPR') FROM INT8_TBL;
SELECT to_char(q2, 'SG9999999999999999th') FROM INT8_TBL;
SELECT to_char(q2, '0999999999999999') FROM INT8_TBL;
SELECT to_char(q2, 'S0999999999999999') FROM INT8_TBL;
SELECT to_char(q2, 'FM0999999999999999') FROM INT8_TBL;
SELECT to_char(q2, 'FM9999999999999999.000') FROM INT8_TBL;
SELECT to_char(q2, 'L9999999999999999.000') FROM INT8_TBL;
SELECT to_char(q2, 'FM9999999999999999.999') FROM INT8_TBL;
SELECT to_char(q2, 'S 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . 9 9 9') FROM INT8_TBL;
SELECT to_char(q2, E'99999 "text" 9999 "9999" 999 "\\"text between quote marks\\"" 9999') FROM INT8_TBL;
SELECT to_char(q2, '999999SG9999999999') FROM INT8_TBL;
-- check min/max values and overflow behavior

View File

@ -34,27 +34,27 @@ INSERT INTO INTERVAL_TBL (f1) VALUES ('@ 30 eons ago');
-- test interval operators
SELECT '' AS ten, * FROM INTERVAL_TBL;
SELECT * FROM INTERVAL_TBL;
SELECT '' AS nine, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 <> interval '@ 10 days';
SELECT '' AS three, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 <= interval '@ 5 hours';
SELECT '' AS three, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 < interval '@ 1 day';
SELECT '' AS one, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 = interval '@ 34 years';
SELECT '' AS five, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 >= interval '@ 1 month';
SELECT '' AS nine, * FROM INTERVAL_TBL
SELECT * FROM INTERVAL_TBL
WHERE INTERVAL_TBL.f1 > interval '@ 3 seconds ago';
SELECT '' AS fortyfive, r1.*, r2.*
SELECT r1.*, r2.*
FROM INTERVAL_TBL r1, INTERVAL_TBL r2
WHERE r1.f1 > r2.f1
ORDER BY r1.f1, r2.f1;
@ -127,7 +127,7 @@ DROP TABLE INTERVAL_MULDIV_TBL;
SET DATESTYLE = 'postgres';
SET IntervalStyle to postgres_verbose;
SELECT '' AS ten, * FROM INTERVAL_TBL;
SELECT * FROM INTERVAL_TBL;
-- test avg(interval), which is somewhat fragile since people have been
-- known to change the allowed input syntax for type interval without

View File

@ -49,22 +49,22 @@ analyze onerow;
-- before diving into more complex join syntax.
--
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL AS tx;
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL tx;
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL AS t1 (a, b, c);
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL t1 (a, b, c);
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL t1 (a, b, c), J2_TBL t2 (d, e);
SELECT '' AS "xxx", t1.a, t2.e
SELECT t1.a, t2.e
FROM J1_TBL t1 (a, b, c), J2_TBL t2 (d, e)
WHERE t1.a = t2.d;
@ -75,26 +75,26 @@ SELECT '' AS "xxx", t1.a, t2.e
-- which degenerate into a standard unqualified inner join.
--
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL CROSS JOIN J2_TBL;
-- ambiguous column
SELECT '' AS "xxx", i, k, t
SELECT i, k, t
FROM J1_TBL CROSS JOIN J2_TBL;
-- resolve previous ambiguity by specifying the table name
SELECT '' AS "xxx", t1.i, k, t
SELECT t1.i, k, t
FROM J1_TBL t1 CROSS JOIN J2_TBL t2;
SELECT '' AS "xxx", ii, tt, kk
SELECT ii, tt, kk
FROM (J1_TBL CROSS JOIN J2_TBL)
AS tx (ii, jj, tt, ii2, kk);
SELECT '' AS "xxx", tx.ii, tx.jj, tx.kk
SELECT tx.ii, tx.jj, tx.kk
FROM (J1_TBL t1 (a, b, c) CROSS JOIN J2_TBL t2 (d, e))
AS tx (ii, jj, tt, ii2, kk);
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL CROSS JOIN J2_TBL a CROSS JOIN J2_TBL b;
@ -111,18 +111,18 @@ SELECT '' AS "xxx", *
--
-- Inner equi-join on specified column
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL INNER JOIN J2_TBL USING (i);
-- Same as above, slightly different syntax
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL JOIN J2_TBL USING (i);
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL t1 (a, b, c) JOIN J2_TBL t2 (a, d) USING (a)
ORDER BY a, d;
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL t1 (a, b, c) JOIN J2_TBL t2 (a, b) USING (b)
ORDER BY b, t1.a;
@ -132,18 +132,18 @@ SELECT '' AS "xxx", *
-- Inner equi-join on all columns with the same name
--
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL NATURAL JOIN J2_TBL;
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL t1 (a, b, c) NATURAL JOIN J2_TBL t2 (a, d);
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL t1 (a, b, c) NATURAL JOIN J2_TBL t2 (d, a);
-- mismatch number of columns
-- currently, Postgres will fill in with underlying names
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL t1 (a, b) NATURAL JOIN J2_TBL t2 (a);
@ -151,10 +151,10 @@ SELECT '' AS "xxx", *
-- Inner joins (equi-joins)
--
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL JOIN J2_TBL ON (J1_TBL.i = J2_TBL.i);
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL JOIN J2_TBL ON (J1_TBL.i = J2_TBL.k);
@ -162,7 +162,7 @@ SELECT '' AS "xxx", *
-- Non-equi-joins
--
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL JOIN J2_TBL ON (J1_TBL.i <= J2_TBL.k);
@ -171,32 +171,32 @@ SELECT '' AS "xxx", *
-- Note that OUTER is a noise word
--
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL LEFT OUTER JOIN J2_TBL USING (i)
ORDER BY i, k, t;
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL LEFT JOIN J2_TBL USING (i)
ORDER BY i, k, t;
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL RIGHT OUTER JOIN J2_TBL USING (i);
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL RIGHT JOIN J2_TBL USING (i);
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL FULL OUTER JOIN J2_TBL USING (i)
ORDER BY i, k, t;
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL FULL JOIN J2_TBL USING (i)
ORDER BY i, k, t;
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL LEFT JOIN J2_TBL USING (i) WHERE (k = 1);
SELECT '' AS "xxx", *
SELECT *
FROM J1_TBL LEFT JOIN J2_TBL USING (i) WHERE (i = 1);
--

View File

@ -29,27 +29,27 @@ INSERT INTO NAME_TBL(f1) VALUES ('');
INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ');
SELECT '' AS seven, * FROM NAME_TBL;
SELECT * FROM NAME_TBL;
SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 <> '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 = '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 < '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 <= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 > '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 >= '1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890ABCDEFGHIJKLMNOPQR';
SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*';
SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*';
SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]';
SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
SELECT c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*';
DROP TABLE NAME_TBL;

View File

@ -899,37 +899,37 @@ FROM generate_series(0, 110, 10) x;
--
-- TO_CHAR()
--
SELECT '' AS to_char_1, to_char(val, '9G999G999G999G999G999')
SELECT to_char(val, '9G999G999G999G999G999')
FROM num_data;
SELECT '' AS to_char_2, to_char(val, '9G999G999G999G999G999D999G999G999G999G999')
SELECT to_char(val, '9G999G999G999G999G999D999G999G999G999G999')
FROM num_data;
SELECT '' AS to_char_3, to_char(val, '9999999999999999.999999999999999PR')
SELECT to_char(val, '9999999999999999.999999999999999PR')
FROM num_data;
SELECT '' AS to_char_4, to_char(val, '9999999999999999.999999999999999S')
SELECT to_char(val, '9999999999999999.999999999999999S')
FROM num_data;
SELECT '' AS to_char_5, to_char(val, 'MI9999999999999999.999999999999999') FROM num_data;
SELECT '' AS to_char_6, to_char(val, 'FMS9999999999999999.999999999999999') FROM num_data;
SELECT '' AS to_char_7, to_char(val, 'FM9999999999999999.999999999999999THPR') FROM num_data;
SELECT '' AS to_char_8, to_char(val, 'SG9999999999999999.999999999999999th') FROM num_data;
SELECT '' AS to_char_9, to_char(val, '0999999999999999.999999999999999') FROM num_data;
SELECT '' AS to_char_10, to_char(val, 'S0999999999999999.999999999999999') FROM num_data;
SELECT '' AS to_char_11, to_char(val, 'FM0999999999999999.999999999999999') FROM num_data;
SELECT '' AS to_char_12, to_char(val, 'FM9999999999999999.099999999999999') FROM num_data;
SELECT '' AS to_char_13, to_char(val, 'FM9999999999990999.990999999999999') FROM num_data;
SELECT '' AS to_char_14, to_char(val, 'FM0999999999999999.999909999999999') FROM num_data;
SELECT '' AS to_char_15, to_char(val, 'FM9999999990999999.099999999999999') FROM num_data;
SELECT '' AS to_char_16, to_char(val, 'L9999999999999999.099999999999999') FROM num_data;
SELECT '' AS to_char_17, to_char(val, 'FM9999999999999999.99999999999999') FROM num_data;
SELECT '' AS to_char_18, to_char(val, 'S 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9') FROM num_data;
SELECT '' AS to_char_19, to_char(val, 'FMS 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9') FROM num_data;
SELECT '' AS to_char_20, to_char(val, E'99999 "text" 9999 "9999" 999 "\\"text between quote marks\\"" 9999') FROM num_data;
SELECT '' AS to_char_21, to_char(val, '999999SG9999999999') FROM num_data;
SELECT '' AS to_char_22, to_char(val, 'FM9999999999999999.999999999999999') FROM num_data;
SELECT '' AS to_char_23, to_char(val, '9.999EEEE') FROM num_data;
SELECT to_char(val, 'MI9999999999999999.999999999999999') FROM num_data;
SELECT to_char(val, 'FMS9999999999999999.999999999999999') FROM num_data;
SELECT to_char(val, 'FM9999999999999999.999999999999999THPR') FROM num_data;
SELECT to_char(val, 'SG9999999999999999.999999999999999th') FROM num_data;
SELECT to_char(val, '0999999999999999.999999999999999') FROM num_data;
SELECT to_char(val, 'S0999999999999999.999999999999999') FROM num_data;
SELECT to_char(val, 'FM0999999999999999.999999999999999') FROM num_data;
SELECT to_char(val, 'FM9999999999999999.099999999999999') FROM num_data;
SELECT to_char(val, 'FM9999999999990999.990999999999999') FROM num_data;
SELECT to_char(val, 'FM0999999999999999.999909999999999') FROM num_data;
SELECT to_char(val, 'FM9999999990999999.099999999999999') FROM num_data;
SELECT to_char(val, 'L9999999999999999.099999999999999') FROM num_data;
SELECT to_char(val, 'FM9999999999999999.99999999999999') FROM num_data;
SELECT to_char(val, 'S 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9') FROM num_data;
SELECT to_char(val, 'FMS 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 . 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9') FROM num_data;
SELECT to_char(val, E'99999 "text" 9999 "9999" 999 "\\"text between quote marks\\"" 9999') FROM num_data;
SELECT to_char(val, '999999SG9999999999') FROM num_data;
SELECT to_char(val, 'FM9999999999999999.999999999999999') FROM num_data;
SELECT to_char(val, '9.999EEEE') FROM num_data;
WITH v(val) AS
(VALUES('0'::numeric),('-4.2'),('4.2e9'),('1.2e-5'),('inf'),('-inf'),('nan'))
@ -955,47 +955,47 @@ SELECT val,
to_char(val::float4, 'MI99.99') as float4
FROM v;
SELECT '' AS to_char_24, to_char('100'::numeric, 'FM999.9');
SELECT '' AS to_char_25, to_char('100'::numeric, 'FM999.');
SELECT '' AS to_char_26, to_char('100'::numeric, 'FM999');
SELECT to_char('100'::numeric, 'FM999.9');
SELECT to_char('100'::numeric, 'FM999.');
SELECT to_char('100'::numeric, 'FM999');
-- Check parsing of literal text in a format string
SELECT '' AS to_char_27, to_char('100'::numeric, 'foo999');
SELECT '' AS to_char_28, to_char('100'::numeric, 'f\oo999');
SELECT '' AS to_char_29, to_char('100'::numeric, 'f\\oo999');
SELECT '' AS to_char_30, to_char('100'::numeric, 'f\"oo999');
SELECT '' AS to_char_31, to_char('100'::numeric, 'f\\"oo999');
SELECT '' AS to_char_32, to_char('100'::numeric, 'f"ool"999');
SELECT '' AS to_char_33, to_char('100'::numeric, 'f"\ool"999');
SELECT '' AS to_char_34, to_char('100'::numeric, 'f"\\ool"999');
SELECT '' AS to_char_35, to_char('100'::numeric, 'f"ool\"999');
SELECT '' AS to_char_36, to_char('100'::numeric, 'f"ool\\"999');
SELECT to_char('100'::numeric, 'foo999');
SELECT to_char('100'::numeric, 'f\oo999');
SELECT to_char('100'::numeric, 'f\\oo999');
SELECT to_char('100'::numeric, 'f\"oo999');
SELECT to_char('100'::numeric, 'f\\"oo999');
SELECT to_char('100'::numeric, 'f"ool"999');
SELECT to_char('100'::numeric, 'f"\ool"999');
SELECT to_char('100'::numeric, 'f"\\ool"999');
SELECT to_char('100'::numeric, 'f"ool\"999');
SELECT to_char('100'::numeric, 'f"ool\\"999');
-- TO_NUMBER()
--
SET lc_numeric = 'C';
SELECT '' AS to_number_1, to_number('-34,338,492', '99G999G999');
SELECT '' AS to_number_2, to_number('-34,338,492.654,878', '99G999G999D999G999');
SELECT '' AS to_number_3, to_number('<564646.654564>', '999999.999999PR');
SELECT '' AS to_number_4, to_number('0.00001-', '9.999999S');
SELECT '' AS to_number_5, to_number('5.01-', 'FM9.999999S');
SELECT '' AS to_number_5, to_number('5.01-', 'FM9.999999MI');
SELECT '' AS to_number_7, to_number('5 4 4 4 4 8 . 7 8', '9 9 9 9 9 9 . 9 9');
SELECT '' AS to_number_8, to_number('.01', 'FM9.99');
SELECT '' AS to_number_9, to_number('.0', '99999999.99999999');
SELECT '' AS to_number_10, to_number('0', '99.99');
SELECT '' AS to_number_11, to_number('.-01', 'S99.99');
SELECT '' AS to_number_12, to_number('.01-', '99.99S');
SELECT '' AS to_number_13, to_number(' . 0 1-', ' 9 9 . 9 9 S');
SELECT '' AS to_number_14, to_number('34,50','999,99');
SELECT '' AS to_number_15, to_number('123,000','999G');
SELECT '' AS to_number_16, to_number('123456','999G999');
SELECT '' AS to_number_17, to_number('$1234.56','L9,999.99');
SELECT '' AS to_number_18, to_number('$1234.56','L99,999.99');
SELECT '' AS to_number_19, to_number('$1,234.56','L99,999.99');
SELECT '' AS to_number_20, to_number('1234.56','L99,999.99');
SELECT '' AS to_number_21, to_number('1,234.56','L99,999.99');
SELECT '' AS to_number_22, to_number('42nd', '99th');
SELECT to_number('-34,338,492', '99G999G999');
SELECT to_number('-34,338,492.654,878', '99G999G999D999G999');
SELECT to_number('<564646.654564>', '999999.999999PR');
SELECT to_number('0.00001-', '9.999999S');
SELECT to_number('5.01-', 'FM9.999999S');
SELECT to_number('5.01-', 'FM9.999999MI');
SELECT to_number('5 4 4 4 4 8 . 7 8', '9 9 9 9 9 9 . 9 9');
SELECT to_number('.01', 'FM9.99');
SELECT to_number('.0', '99999999.99999999');
SELECT to_number('0', '99.99');
SELECT to_number('.-01', 'S99.99');
SELECT to_number('.01-', '99.99S');
SELECT to_number(' . 0 1-', ' 9 9 . 9 9 S');
SELECT to_number('34,50','999,99');
SELECT to_number('123,000','999G');
SELECT to_number('123456','999G999');
SELECT to_number('$1234.56','L9,999.99');
SELECT to_number('$1234.56','L99,999.99');
SELECT to_number('$1,234.56','L99,999.99');
SELECT to_number('1234.56','L99,999.99');
SELECT to_number('1,234.56','L99,999.99');
SELECT to_number('42nd', '99th');
RESET lc_numeric;
--

View File

@ -17,7 +17,7 @@ INSERT INTO TEMP_FLOAT (f1)
INSERT INTO TEMP_FLOAT (f1)
SELECT float8(f1) FROM INT2_TBL;
SELECT '' AS ten, f1 FROM TEMP_FLOAT
SELECT f1 FROM TEMP_FLOAT
ORDER BY f1;
-- int4
@ -31,7 +31,7 @@ INSERT INTO TEMP_INT4 (f1)
INSERT INTO TEMP_INT4 (f1)
SELECT int4(f1) FROM INT2_TBL;
SELECT '' AS nine, f1 FROM TEMP_INT4
SELECT f1 FROM TEMP_INT4
ORDER BY f1;
-- int2
@ -46,7 +46,7 @@ INSERT INTO TEMP_INT2 (f1)
SELECT int2(f1) FROM INT4_TBL
WHERE (f1 >= -32767) AND (f1 <= 32767);
SELECT '' AS five, f1 FROM TEMP_INT2
SELECT f1 FROM TEMP_INT2
ORDER BY f1;
--

View File

@ -26,18 +26,18 @@ INSERT INTO OID_TBL(f1) VALUES (' - 500');
INSERT INTO OID_TBL(f1) VALUES ('32958209582039852935');
INSERT INTO OID_TBL(f1) VALUES ('-23582358720398502385');
SELECT '' AS six, * FROM OID_TBL;
SELECT * FROM OID_TBL;
SELECT '' AS one, o.* FROM OID_TBL o WHERE o.f1 = 1234;
SELECT o.* FROM OID_TBL o WHERE o.f1 = 1234;
SELECT '' AS five, o.* FROM OID_TBL o WHERE o.f1 <> '1234';
SELECT o.* FROM OID_TBL o WHERE o.f1 <> '1234';
SELECT '' AS three, o.* FROM OID_TBL o WHERE o.f1 <= '1234';
SELECT o.* FROM OID_TBL o WHERE o.f1 <= '1234';
SELECT '' AS two, o.* FROM OID_TBL o WHERE o.f1 < '1234';
SELECT o.* FROM OID_TBL o WHERE o.f1 < '1234';
SELECT '' AS four, o.* FROM OID_TBL o WHERE o.f1 >= '1234';
SELECT o.* FROM OID_TBL o WHERE o.f1 >= '1234';
SELECT '' AS three, o.* FROM OID_TBL o WHERE o.f1 > '1234';
SELECT o.* FROM OID_TBL o WHERE o.f1 > '1234';
DROP TABLE OID_TBL;

View File

@ -35,10 +35,10 @@ INSERT INTO PATH_TBL VALUES ('(1,2,3,4');
INSERT INTO PATH_TBL VALUES ('(1,2),(3,4)]');
SELECT '' AS count, f1 AS open_path FROM PATH_TBL WHERE isopen(f1);
SELECT f1 AS open_path FROM PATH_TBL WHERE isopen(f1);
SELECT '' AS count, f1 AS closed_path FROM PATH_TBL WHERE isclosed(f1);
SELECT f1 AS closed_path FROM PATH_TBL WHERE isclosed(f1);
SELECT '' AS count, pclose(f1) AS closed_path FROM PATH_TBL;
SELECT pclose(f1) AS closed_path FROM PATH_TBL;
SELECT '' AS count, popen(f1) AS open_path FROM PATH_TBL;
SELECT popen(f1) AS open_path FROM PATH_TBL;

View File

@ -39,59 +39,59 @@ INSERT INTO POINT_TBL(f1) VALUES ('(10.0,10.0');
INSERT INTO POINT_TBL(f1) VALUES ('(10.0, 1e+500)'); -- Out of range
SELECT '' AS six, * FROM POINT_TBL;
SELECT * FROM POINT_TBL;
-- left of
SELECT '' AS three, p.* FROM POINT_TBL p WHERE p.f1 << '(0.0, 0.0)';
SELECT p.* FROM POINT_TBL p WHERE p.f1 << '(0.0, 0.0)';
-- right of
SELECT '' AS three, p.* FROM POINT_TBL p WHERE '(0.0,0.0)' >> p.f1;
SELECT p.* FROM POINT_TBL p WHERE '(0.0,0.0)' >> p.f1;
-- above
SELECT '' AS one, p.* FROM POINT_TBL p WHERE '(0.0,0.0)' |>> p.f1;
SELECT p.* FROM POINT_TBL p WHERE '(0.0,0.0)' |>> p.f1;
-- below
SELECT '' AS one, p.* FROM POINT_TBL p WHERE p.f1 <<| '(0.0, 0.0)';
SELECT p.* FROM POINT_TBL p WHERE p.f1 <<| '(0.0, 0.0)';
-- equal
SELECT '' AS one, p.* FROM POINT_TBL p WHERE p.f1 ~= '(5.1, 34.5)';
SELECT p.* FROM POINT_TBL p WHERE p.f1 ~= '(5.1, 34.5)';
-- point in box
SELECT '' AS three, p.* FROM POINT_TBL p
SELECT p.* FROM POINT_TBL p
WHERE p.f1 <@ box '(0,0,100,100)';
SELECT '' AS three, p.* FROM POINT_TBL p
SELECT p.* FROM POINT_TBL p
WHERE box '(0,0,100,100)' @> p.f1;
SELECT '' AS three, p.* FROM POINT_TBL p
SELECT p.* FROM POINT_TBL p
WHERE not p.f1 <@ box '(0,0,100,100)';
SELECT '' AS two, p.* FROM POINT_TBL p
SELECT p.* FROM POINT_TBL p
WHERE p.f1 <@ path '[(0,0),(-10,0),(-10,10)]';
SELECT '' AS three, p.* FROM POINT_TBL p
SELECT p.* FROM POINT_TBL p
WHERE not box '(0,0,100,100)' @> p.f1;
SELECT '' AS six, p.f1, p.f1 <-> point '(0,0)' AS dist
SELECT p.f1, p.f1 <-> point '(0,0)' AS dist
FROM POINT_TBL p
ORDER BY dist;
SELECT '' AS thirtysix, p1.f1 AS point1, p2.f1 AS point2, p1.f1 <-> p2.f1 AS dist
SELECT p1.f1 AS point1, p2.f1 AS point2, p1.f1 <-> p2.f1 AS dist
FROM POINT_TBL p1, POINT_TBL p2
ORDER BY dist, p1.f1[0], p2.f1[0];
SELECT '' AS thirty, p1.f1 AS point1, p2.f1 AS point2
SELECT p1.f1 AS point1, p2.f1 AS point2
FROM POINT_TBL p1, POINT_TBL p2
WHERE (p1.f1 <-> p2.f1) > 3;
-- put distance result into output to allow sorting with GEQ optimizer - tgl 97/05/10
SELECT '' AS fifteen, p1.f1 AS point1, p2.f1 AS point2, (p1.f1 <-> p2.f1) AS distance
SELECT p1.f1 AS point1, p2.f1 AS point2, (p1.f1 <-> p2.f1) AS distance
FROM POINT_TBL p1, POINT_TBL p2
WHERE (p1.f1 <-> p2.f1) > 3 and p1.f1 << p2.f1
ORDER BY distance, p1.f1[0], p2.f1[0];
-- put distance result into output to allow sorting with GEQ optimizer - tgl 97/05/10
SELECT '' AS three, p1.f1 AS point1, p2.f1 AS point2, (p1.f1 <-> p2.f1) AS distance
SELECT p1.f1 AS point1, p2.f1 AS point2, (p1.f1 <-> p2.f1) AS distance
FROM POINT_TBL p1, POINT_TBL p2
WHERE (p1.f1 <-> p2.f1) > 3 and p1.f1 << p2.f1 and p1.f1 |>> p2.f1
ORDER BY distance;

View File

@ -32,7 +32,7 @@ INSERT INTO POLYGON_TBL(f1) VALUES ('(0,1,2,3');
INSERT INTO POLYGON_TBL(f1) VALUES ('asdf');
SELECT '' AS four, * FROM POLYGON_TBL;
SELECT * FROM POLYGON_TBL;
--
-- Test the SP-GiST index

View File

@ -40,42 +40,42 @@ INSERT INTO SUBSELECT_TBL VALUES (3, 3, 3);
INSERT INTO SUBSELECT_TBL VALUES (6, 7, 8);
INSERT INTO SUBSELECT_TBL VALUES (8, 9, NULL);
SELECT '' AS eight, * FROM SUBSELECT_TBL;
SELECT * FROM SUBSELECT_TBL;
-- Uncorrelated subselects
SELECT '' AS two, f1 AS "Constant Select" FROM SUBSELECT_TBL
SELECT f1 AS "Constant Select" FROM SUBSELECT_TBL
WHERE f1 IN (SELECT 1);
SELECT '' AS six, f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL
SELECT f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL);
SELECT '' AS six, f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL
SELECT f1 AS "Uncorrelated Field" FROM SUBSELECT_TBL
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE
f2 IN (SELECT f1 FROM SUBSELECT_TBL));
SELECT '' AS three, f1, f2
SELECT f1, f2
FROM SUBSELECT_TBL
WHERE (f1, f2) NOT IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL
WHERE f3 IS NOT NULL);
-- Correlated subselects
SELECT '' AS six, f1 AS "Correlated Field", f2 AS "Second Field"
SELECT f1 AS "Correlated Field", f2 AS "Second Field"
FROM SUBSELECT_TBL upper
WHERE f1 IN (SELECT f2 FROM SUBSELECT_TBL WHERE f1 = upper.f1);
SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field"
SELECT f1 AS "Correlated Field", f3 AS "Second Field"
FROM SUBSELECT_TBL upper
WHERE f1 IN
(SELECT f2 FROM SUBSELECT_TBL WHERE CAST(upper.f2 AS float) = f3);
SELECT '' AS six, f1 AS "Correlated Field", f3 AS "Second Field"
SELECT f1 AS "Correlated Field", f3 AS "Second Field"
FROM SUBSELECT_TBL upper
WHERE f3 IN (SELECT upper.f1 + f2 FROM SUBSELECT_TBL
WHERE f2 = CAST(f3 AS integer));
SELECT '' AS five, f1 AS "Correlated Field"
SELECT f1 AS "Correlated Field"
FROM SUBSELECT_TBL
WHERE (f1, f2) IN (SELECT f2, CAST(f3 AS int4) FROM SUBSELECT_TBL
WHERE f3 IS NOT NULL);
@ -84,7 +84,7 @@ SELECT '' AS five, f1 AS "Correlated Field"
-- Use some existing tables in the regression test
--
SELECT '' AS eight, ss.f1 AS "Correlated Field", ss.f3 AS "Second Field"
SELECT ss.f1 AS "Correlated Field", ss.f3 AS "Second Field"
FROM SUBSELECT_TBL ss
WHERE f1 NOT IN (SELECT f1+1 FROM INT4_TBL
WHERE f1 != ss.f1 AND f1 < 2147483647);

View File

@ -11,7 +11,7 @@ CREATE TABLE TEXT_TBL (f1 text);
INSERT INTO TEXT_TBL VALUES ('doh!');
INSERT INTO TEXT_TBL VALUES ('hi de ho neighbor');
SELECT '' AS two, * FROM TEXT_TBL;
SELECT * FROM TEXT_TBL;
-- As of 8.3 we have removed most implicit casts to text, so that for example
-- this no longer works:

View File

@ -135,7 +135,7 @@ INSERT INTO TIMESTAMP_TBL VALUES ('Jan 01 17:32:01 2001');
INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 -0097');
INSERT INTO TIMESTAMP_TBL VALUES ('Feb 16 17:32:01 5097 BC');
SELECT '' AS "64", d1 FROM TIMESTAMP_TBL;
SELECT d1 FROM TIMESTAMP_TBL;
-- Check behavior at the lower boundary of the timestamp range
SELECT '4714-11-24 00:00:00 BC'::timestamp;
@ -143,31 +143,31 @@ SELECT '4714-11-23 23:59:59 BC'::timestamp; -- out of range
-- The upper boundary differs between integer and float timestamps, so no check
-- Demonstrate functions and operators
SELECT '' AS "48", d1 FROM TIMESTAMP_TBL
SELECT d1 FROM TIMESTAMP_TBL
WHERE d1 > timestamp without time zone '1997-01-02';
SELECT '' AS "15", d1 FROM TIMESTAMP_TBL
SELECT d1 FROM TIMESTAMP_TBL
WHERE d1 < timestamp without time zone '1997-01-02';
SELECT '' AS one, d1 FROM TIMESTAMP_TBL
SELECT d1 FROM TIMESTAMP_TBL
WHERE d1 = timestamp without time zone '1997-01-02';
SELECT '' AS "63", d1 FROM TIMESTAMP_TBL
SELECT d1 FROM TIMESTAMP_TBL
WHERE d1 != timestamp without time zone '1997-01-02';
SELECT '' AS "16", d1 FROM TIMESTAMP_TBL
SELECT d1 FROM TIMESTAMP_TBL
WHERE d1 <= timestamp without time zone '1997-01-02';
SELECT '' AS "49", d1 FROM TIMESTAMP_TBL
SELECT d1 FROM TIMESTAMP_TBL
WHERE d1 >= timestamp without time zone '1997-01-02';
SELECT '' AS "54", d1 - timestamp without time zone '1997-01-02' AS diff
SELECT d1 - timestamp without time zone '1997-01-02' AS diff
FROM TIMESTAMP_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
SELECT '' AS date_trunc_week, date_trunc( 'week', timestamp '2004-02-29 15:44:17.71393' ) AS week_trunc;
SELECT date_trunc( 'week', timestamp '2004-02-29 15:44:17.71393' ) AS week_trunc;
-- Test casting within a BETWEEN qualifier
SELECT '' AS "54", d1 - timestamp without time zone '1997-01-02' AS diff
SELECT d1 - timestamp without time zone '1997-01-02' AS diff
FROM TIMESTAMP_TBL
WHERE d1 BETWEEN timestamp without time zone '1902-01-01'
AND timestamp without time zone '2038-01-01';
@ -198,40 +198,40 @@ SELECT d1 as "timestamp",
FROM TIMESTAMP_TBL;
-- TO_CHAR()
SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon')
SELECT to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM')
SELECT to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
SELECT to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ')
SELECT to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS')
SELECT to_char(d1, 'HH HH12 HH24 MI SS SSSS')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_6, to_char(d1, E'"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""')
SELECT to_char(d1, E'"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS')
SELECT to_char(d1, 'HH24--text--MI--text--SS')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth')
SELECT to_char(d1, 'YYYYTH YYYYth Jth')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm')
SELECT to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_10, to_char(d1, 'IYYY IYY IY I IW IDDD ID')
SELECT to_char(d1, 'IYYY IYY IY I IW IDDD ID')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_11, to_char(d1, 'FMIYYY FMIYY FMIY FMI FMIW FMIDDD FMID')
SELECT to_char(d1, 'FMIYYY FMIYY FMIY FMI FMIW FMIDDD FMID')
FROM TIMESTAMP_TBL;
SELECT '' AS to_char_12, to_char(d, 'FF1 FF2 FF3 FF4 FF5 FF6 ff1 ff2 ff3 ff4 ff5 ff6 MS US')
SELECT to_char(d, 'FF1 FF2 FF3 FF4 FF5 FF6 ff1 ff2 ff3 ff4 ff5 ff6 MS US')
FROM (VALUES
('2018-11-02 12:34:56'::timestamp),
('2018-11-02 12:34:56.78'),

View File

@ -156,7 +156,7 @@ SELECT 'Wed Jul 11 10:51:14 GMT+4 2001'::timestamptz;
SELECT 'Wed Jul 11 10:51:14 PST-03:00 2001'::timestamptz;
SELECT 'Wed Jul 11 10:51:14 PST+03:00 2001'::timestamptz;
SELECT '' AS "64", d1 FROM TIMESTAMPTZ_TBL;
SELECT d1 FROM TIMESTAMPTZ_TBL;
-- Check behavior at the lower boundary of the timestamp range
SELECT '4714-11-24 00:00:00+00 BC'::timestamptz;
@ -166,35 +166,35 @@ SELECT '4714-11-23 23:59:59+00 BC'::timestamptz; -- out of range
-- The upper boundary differs between integer and float timestamps, so no check
-- Demonstrate functions and operators
SELECT '' AS "48", d1 FROM TIMESTAMPTZ_TBL
SELECT d1 FROM TIMESTAMPTZ_TBL
WHERE d1 > timestamp with time zone '1997-01-02';
SELECT '' AS "15", d1 FROM TIMESTAMPTZ_TBL
SELECT d1 FROM TIMESTAMPTZ_TBL
WHERE d1 < timestamp with time zone '1997-01-02';
SELECT '' AS one, d1 FROM TIMESTAMPTZ_TBL
SELECT d1 FROM TIMESTAMPTZ_TBL
WHERE d1 = timestamp with time zone '1997-01-02';
SELECT '' AS "63", d1 FROM TIMESTAMPTZ_TBL
SELECT d1 FROM TIMESTAMPTZ_TBL
WHERE d1 != timestamp with time zone '1997-01-02';
SELECT '' AS "16", d1 FROM TIMESTAMPTZ_TBL
SELECT d1 FROM TIMESTAMPTZ_TBL
WHERE d1 <= timestamp with time zone '1997-01-02';
SELECT '' AS "49", d1 FROM TIMESTAMPTZ_TBL
SELECT d1 FROM TIMESTAMPTZ_TBL
WHERE d1 >= timestamp with time zone '1997-01-02';
SELECT '' AS "54", d1 - timestamp with time zone '1997-01-02' AS diff
SELECT d1 - timestamp with time zone '1997-01-02' AS diff
FROM TIMESTAMPTZ_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01';
SELECT '' AS date_trunc_week, date_trunc( 'week', timestamp with time zone '2004-02-29 15:44:17.71393' ) AS week_trunc;
SELECT date_trunc( 'week', timestamp with time zone '2004-02-29 15:44:17.71393' ) AS week_trunc;
SELECT '' AS date_trunc_at_tz, date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'Australia/Sydney') as sydney_trunc; -- zone name
SELECT '' AS date_trunc_at_tz, date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'GMT') as gmt_trunc; -- fixed-offset abbreviation
SELECT '' AS date_trunc_at_tz, date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'VET') as vet_trunc; -- variable-offset abbreviation
SELECT date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'Australia/Sydney') as sydney_trunc; -- zone name
SELECT date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'GMT') as gmt_trunc; -- fixed-offset abbreviation
SELECT date_trunc('day', timestamp with time zone '2001-02-16 20:38:40+00', 'VET') as vet_trunc; -- variable-offset abbreviation
-- Test casting within a BETWEEN qualifier
SELECT '' AS "54", d1 - timestamp with time zone '1997-01-02' AS diff
SELECT d1 - timestamp with time zone '1997-01-02' AS diff
FROM TIMESTAMPTZ_TBL
WHERE d1 BETWEEN timestamp with time zone '1902-01-01' AND timestamp with time zone '2038-01-01';
@ -230,40 +230,40 @@ SELECT d1 as timestamptz,
FROM TIMESTAMPTZ_TBL;
-- TO_CHAR()
SELECT '' AS to_char_1, to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon')
SELECT to_char(d1, 'DAY Day day DY Dy dy MONTH Month month RM MON Mon mon')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_2, to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM')
SELECT to_char(d1, 'FMDAY FMDay FMday FMMONTH FMMonth FMmonth FMRM')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_3, to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
SELECT to_char(d1, 'Y,YYY YYYY YYY YY Y CC Q MM WW DDD DD D J')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_4, to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ')
SELECT to_char(d1, 'FMY,YYY FMYYYY FMYYY FMYY FMY FMCC FMQ FMMM FMWW FMDDD FMDD FMD FMJ')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_5, to_char(d1, 'HH HH12 HH24 MI SS SSSS')
SELECT to_char(d1, 'HH HH12 HH24 MI SS SSSS')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_6, to_char(d1, E'"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""')
SELECT to_char(d1, E'"HH:MI:SS is" HH:MI:SS "\\"text between quote marks\\""')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_7, to_char(d1, 'HH24--text--MI--text--SS')
SELECT to_char(d1, 'HH24--text--MI--text--SS')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_8, to_char(d1, 'YYYYTH YYYYth Jth')
SELECT to_char(d1, 'YYYYTH YYYYth Jth')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_9, to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm')
SELECT to_char(d1, 'YYYY A.D. YYYY a.d. YYYY bc HH:MI:SS P.M. HH:MI:SS p.m. HH:MI:SS pm')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_10, to_char(d1, 'IYYY IYY IY I IW IDDD ID')
SELECT to_char(d1, 'IYYY IYY IY I IW IDDD ID')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_11, to_char(d1, 'FMIYYY FMIYY FMIY FMI FMIW FMIDDD FMID')
SELECT to_char(d1, 'FMIYYY FMIYY FMIY FMI FMIW FMIDDD FMID')
FROM TIMESTAMPTZ_TBL;
SELECT '' AS to_char_12, to_char(d, 'FF1 FF2 FF3 FF4 FF5 FF6 ff1 ff2 ff3 ff4 ff5 ff6 MS US')
SELECT to_char(d, 'FF1 FF2 FF3 FF4 FF5 FF6 ff1 ff2 ff3 ff4 ff5 ff6 MS US')
FROM (VALUES
('2018-11-02 12:34:56'::timestamptz),
('2018-11-02 12:34:56.78'),

View File

@ -23,29 +23,29 @@ INSERT INTO VARCHAR_TBL (f1) VALUES ('cd');
INSERT INTO VARCHAR_TBL (f1) VALUES ('c ');
SELECT '' AS seven, * FROM VARCHAR_TBL;
SELECT * FROM VARCHAR_TBL;
SELECT '' AS six, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 <> 'a';
SELECT '' AS one, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 = 'a';
SELECT '' AS five, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 < 'a';
SELECT '' AS six, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 <= 'a';
SELECT '' AS one, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 > 'a';
SELECT '' AS two, c.*
SELECT c.*
FROM VARCHAR_TBL c
WHERE c.f1 >= 'a';
@ -63,4 +63,4 @@ INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd');
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcde');
INSERT INTO VARCHAR_TBL (f1) VALUES ('abcd ');
SELECT '' AS four, * FROM VARCHAR_TBL;
SELECT * FROM VARCHAR_TBL;