From: Thomas G. Lockhart Date: Wed, 5 Jan 2000 06:07:58 +0000 (+0000) Subject: Clean up format of tests. X-Git-Tag: REL7_0~943 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4c4e68dccc2648f7de98af766b6c62280178bfe0;p=postgresql Clean up format of tests. Remove older "::" type coersion syntax in favor of extended SQL92 style. Include a few new tests for datetime/timespan arithmetic. --- diff --git a/src/test/regress/sql/abstime.sql b/src/test/regress/sql/abstime.sql index 8e9e7b90a2..019b1d6dc1 100644 --- a/src/test/regress/sql/abstime.sql +++ b/src/test/regress/sql/abstime.sql @@ -1,4 +1,8 @@ --- **** testing built-in time types: abstime, reltime, and tinterval **** +-- +-- ABSTIME +-- testing built-in time type abstime +-- uses reltime and tinterval +-- -- -- timezones may vary based not only on location but the operating @@ -10,18 +14,18 @@ CREATE TABLE ABSTIME_TBL (f1 abstime); INSERT INTO ABSTIME_TBL (f1) VALUES ('Jan 14, 1973 03:14:21'); --- was INSERT INTO ABSTIME_TBL (f1) VALUES ('now'::abstime): -INSERT INTO ABSTIME_TBL (f1) VALUES ('Mon May 1 00:30:30 1995'::abstime); +-- was INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'now'): +INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'Mon May 1 00:30:30 1995'); -INSERT INTO ABSTIME_TBL (f1) VALUES ('epoch'::abstime); +INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'epoch'); -INSERT INTO ABSTIME_TBL (f1) VALUES ('current'::abstime); +INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'current'); -INSERT INTO ABSTIME_TBL (f1) VALUES ('infinity'::abstime); +INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'infinity'); -INSERT INTO ABSTIME_TBL (f1) VALUES ('-infinity'::abstime); +INSERT INTO ABSTIME_TBL (f1) VALUES (abstime '-infinity'); -INSERT INTO ABSTIME_TBL (f1) VALUES ('May 10, 1947 23:59:12'); +INSERT INTO ABSTIME_TBL (f1) VALUES (abstime 'May 10, 1947 23:59:12'); -- what happens if we specify slightly misformatted abstime? @@ -40,48 +44,48 @@ INSERT INTO ABSTIME_TBL (f1) VALUES ('Jun 10, 1843'); SELECT '' AS eight, ABSTIME_TBL.*; SELECT '' AS six, ABSTIME_TBL.* - WHERE ABSTIME_TBL.f1 < 'Jun 30, 2001'::abstime; + WHERE ABSTIME_TBL.f1 < abstime 'Jun 30, 2001'; SELECT '' AS six, ABSTIME_TBL.* - WHERE ABSTIME_TBL.f1 > '-infinity'::abstime; + WHERE ABSTIME_TBL.f1 > abstime '-infinity'; SELECT '' AS six, ABSTIME_TBL.* - WHERE 'May 10, 1947 23:59:12'::abstime <> ABSTIME_TBL.f1; + WHERE abstime 'May 10, 1947 23:59:12' <> ABSTIME_TBL.f1; SELECT '' AS one, ABSTIME_TBL.* - WHERE 'current'::abstime = ABSTIME_TBL.f1; + WHERE abstime 'current' = ABSTIME_TBL.f1; SELECT '' AS three, ABSTIME_TBL.* - WHERE 'epoch'::abstime >= ABSTIME_TBL.f1; + WHERE abstime 'epoch' >= ABSTIME_TBL.f1; SELECT '' AS four, ABSTIME_TBL.* - WHERE ABSTIME_TBL.f1 <= 'Jan 14, 1973 03:14:21'::abstime; + WHERE ABSTIME_TBL.f1 <= abstime 'Jan 14, 1973 03:14:21'; SELECT '' AS four, ABSTIME_TBL.* WHERE ABSTIME_TBL.f1 - '["Apr 1 1950 00:00:00" "Dec 30 1999 23:00:00"]'::tinterval; + tinterval '["Apr 1 1950 00:00:00" "Dec 30 1999 23:00:00"]'; -- these four queries should return the same answer -- the "infinity" and "-infinity" tuples in ABSTIME_TBL cannot be added and -- therefore, should not show up in the results. SELECT '' AS three, ABSTIME_TBL.* - WHERE (ABSTIME_TBL.f1 + '@ 3 year'::reltime) -- +3 years - < 'Jan 14 14:00:00 1977'::abstime; + WHERE (ABSTIME_TBL.f1 + reltime '@ 3 year') -- +3 years + < abstime 'Jan 14 14:00:00 1977'; SELECT '' AS three, ABSTIME_TBL.* - WHERE (ABSTIME_TBL.f1 + '@ 3 year ago'::reltime) -- -3 years - < 'Jan 14 14:00:00 1971'::abstime; + WHERE (ABSTIME_TBL.f1 + reltime '@ 3 year ago') -- -3 years + < abstime 'Jan 14 14:00:00 1971'; SELECT '' AS three, ABSTIME_TBL.* - WHERE (ABSTIME_TBL.f1 - '@ 3 year'::reltime) -- -(+3) years - < 'Jan 14 14:00:00 1971'::abstime; + WHERE (ABSTIME_TBL.f1 - reltime '@ 3 year') -- -(+3) years + < abstime 'Jan 14 14:00:00 1971'; SELECT '' AS three, ABSTIME_TBL.* - WHERE (ABSTIME_TBL.f1 - '@ 3 year ago'::reltime) -- -(-3) years - < 'Jan 14 14:00:00 1977'::abstime; + WHERE (ABSTIME_TBL.f1 - reltime '@ 3 year ago') -- -(-3) years + < abstime 'Jan 14 14:00:00 1977'; SELECT '' AS ten, ABSTIME_TBL.f1 AS abstime, RELTIME_TBL.f1 AS reltime WHERE (ABSTIME_TBL.f1 + RELTIME_TBL.f1) - < 'Jan 14 14:00:00 1971'::abstime + < abstime 'Jan 14 14:00:00 1971' ORDER BY abstime, reltime; diff --git a/src/test/regress/sql/box.sql b/src/test/regress/sql/box.sql index 12125959c8..bd28243c7c 100644 --- a/src/test/regress/sql/box.sql +++ b/src/test/regress/sql/box.sql @@ -1,4 +1,6 @@ --- ****************** test built-in type box ******************** +-- +-- BOX +-- -- -- box logic @@ -43,67 +45,67 @@ SELECT '' AS four, b.*, box_area(b.f1) as barea -- overlap SELECT '' AS three, b.f1 FROM BOX_TBL b - WHERE b.f1 && '(2.5,2.5,1.0,1.0)'::box; + WHERE b.f1 && box '(2.5,2.5,1.0,1.0)'; -- left-or-overlap (x only) SELECT '' AS two, b1.* FROM BOX_TBL b1 - WHERE b1.f1 &< '(2.0,2.0,2.5,2.5)'::box; + WHERE b1.f1 &< box '(2.0,2.0,2.5,2.5)'; -- right-or-overlap (x only) SELECT '' AS two, b1.* FROM BOX_TBL b1 - WHERE b1.f1 &> '(2.0,2.0,2.5,2.5)'::box; + WHERE b1.f1 &> box '(2.0,2.0,2.5,2.5)'; -- left of SELECT '' AS two, b.f1 FROM BOX_TBL b - WHERE b.f1 << '(3.0,3.0,5.0,5.0)'::box; + WHERE b.f1 << box '(3.0,3.0,5.0,5.0)'; -- area <= SELECT '' AS four, b.f1 FROM BOX_TBL b - WHERE b.f1 <= '(3.0,3.0,5.0,5.0)'::box; + WHERE b.f1 <= box '(3.0,3.0,5.0,5.0)'; -- area < SELECT '' AS two, b.f1 FROM BOX_TBL b - WHERE b.f1 < '(3.0,3.0,5.0,5.0)'::box; + WHERE b.f1 < box '(3.0,3.0,5.0,5.0)'; -- area = SELECT '' AS two, b.f1 FROM BOX_TBL b - WHERE b.f1 = '(3.0,3.0,5.0,5.0)'::box; + WHERE b.f1 = box '(3.0,3.0,5.0,5.0)'; -- area > SELECT '' AS two, b.f1 FROM BOX_TBL b -- zero area - WHERE b.f1 > '(3.5,3.0,4.5,3.0)'::box; + WHERE b.f1 > box '(3.5,3.0,4.5,3.0)'; -- area >= SELECT '' AS four, b.f1 FROM BOX_TBL b -- zero area - WHERE b.f1 >= '(3.5,3.0,4.5,3.0)'::box; + WHERE b.f1 >= box '(3.5,3.0,4.5,3.0)'; -- right of SELECT '' AS two, b.f1 FROM BOX_TBL b - WHERE '(3.0,3.0,5.0,5.0)'::box >> b.f1; + WHERE box '(3.0,3.0,5.0,5.0)' >> b.f1; -- contained in SELECT '' AS three, b.f1 FROM BOX_TBL b - WHERE b.f1 @ '(0,0,3,3)'::box; + WHERE b.f1 @ box '(0,0,3,3)'; -- contains SELECT '' AS three, b.f1 FROM BOX_TBL b - WHERE '(0,0,3,3)'::box ~ b.f1; + WHERE box '(0,0,3,3)' ~ b.f1; -- box equality SELECT '' AS one, b.f1 FROM BOX_TBL b - WHERE '(1,1,3,3)'::box ~= b.f1; + WHERE box '(1,1,3,3)' ~= b.f1; -- center of box, left unary operator SELECT '' AS four, @@(b1.f1) AS p diff --git a/src/test/regress/sql/circle.sql b/src/test/regress/sql/circle.sql index b430f72132..6590d0bf58 100644 --- a/src/test/regress/sql/circle.sql +++ b/src/test/regress/sql/circle.sql @@ -1,5 +1,5 @@ -- --- circles +-- CIRCLE -- CREATE TABLE CIRCLE_TBL (f1 circle); diff --git a/src/test/regress/sql/comments.sql b/src/test/regress/sql/comments.sql index 070917da65..527988f4a5 100644 --- a/src/test/regress/sql/comments.sql +++ b/src/test/regress/sql/comments.sql @@ -1,5 +1,5 @@ -- --- Comments +-- COMMENTS -- SELECT 'trailing' AS first; -- trailing single line diff --git a/src/test/regress/sql/datetime.sql b/src/test/regress/sql/datetime.sql index 1961fbcb05..3b9400c4b6 100644 --- a/src/test/regress/sql/datetime.sql +++ b/src/test/regress/sql/datetime.sql @@ -1,14 +1,16 @@ --- *** testing new built-in time types: datetime, timespan *** +-- +-- DATETIME +-- -- Shorthand values -- Not directly usable for regression testing since these are not constants. -- So, just try to test parser and hope for the best - tgl 97/04/26 -SELECT ('today'::datetime = ('yesterday'::datetime + '1 day'::timespan)) as "True"; -SELECT ('today'::datetime = ('tomorrow'::datetime - '1 day'::timespan)) as "True"; -SELECT ('tomorrow'::datetime = ('yesterday'::datetime + '2 days'::timespan)) as "True"; -SELECT ('current'::datetime = 'now'::datetime) as "True"; -SELECT ('now'::datetime - 'current'::datetime) AS "ZeroSecs"; +SELECT (datetime 'today' = (datetime 'yesterday' + timespan '1 day')) as "True"; +SELECT (datetime 'today' = (datetime 'tomorrow' - timespan '1 day')) as "True"; +SELECT (datetime 'tomorrow' = (datetime 'yesterday' + timespan '2 days')) as "True"; +SELECT (datetime 'current' = 'now') as "True"; +SELECT (datetime 'now' - 'current') AS "ZeroSecs"; SET DateStyle = 'Postgres,noneuropean'; SELECT datetime('1994-01-01', '11:00') AS "Jan_01_1994_11am"; @@ -22,13 +24,13 @@ INSERT INTO DATETIME_TBL VALUES ('tomorrow'); INSERT INTO DATETIME_TBL VALUES ('tomorrow EST'); INSERT INTO DATETIME_TBL VALUES ('tomorrow zulu'); -SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = 'today'::datetime; -SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = 'tomorrow'::datetime; -SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = 'yesterday'::datetime; -SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = 'today'::datetime + '1 day'::timespan; -SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = 'today'::datetime - '1 day'::timespan; +SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'today'; +SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'tomorrow'; +SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'yesterday'; +SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'today' + timespan '1 day'; +SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'today' - timespan '1 day'; -SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = 'now'::datetime; +SELECT count(*) AS one FROM DATETIME_TBL WHERE d1 = datetime 'now'; DELETE FROM DATETIME_TBL; @@ -36,7 +38,7 @@ DELETE FROM DATETIME_TBL; INSERT INTO DATETIME_TBL VALUES ('current'); BEGIN; INSERT INTO DATETIME_TBL VALUES ('now'); -SELECT count(*) AS two FROM DATETIME_TBL WHERE d1 = 'now'::datetime; +SELECT count(*) AS two FROM DATETIME_TBL WHERE d1 = datetime 'now'; END; DELETE FROM DATETIME_TBL; @@ -125,31 +127,31 @@ SELECT '' AS sixtythree, d1 FROM DATETIME_TBL; -- Demonstrate functions and operators SELECT '' AS fortythree, d1 FROM DATETIME_TBL - WHERE d1 > '1997-01-02'::datetime and d1 != 'current'::datetime; + WHERE d1 > datetime '1997-01-02' and d1 != datetime 'current'; SELECT '' AS fifteen, d1 FROM DATETIME_TBL - WHERE d1 < '1997-01-02'::datetime and d1 != 'current'::datetime; + WHERE d1 < datetime '1997-01-02' and d1 != datetime 'current'; SELECT '' AS one, d1 FROM DATETIME_TBL - WHERE d1 = '1997-01-02'::datetime and d1 != 'current'::datetime; + WHERE d1 = datetime '1997-01-02' and d1 != datetime 'current'; SELECT '' AS fiftyeight, d1 FROM DATETIME_TBL - WHERE d1 != '1997-01-02'::datetime and d1 != 'current'::datetime; + WHERE d1 != datetime '1997-01-02' and d1 != datetime 'current'; SELECT '' AS sixteen, d1 FROM DATETIME_TBL - WHERE d1 <= '1997-01-02'::datetime and d1 != 'current'::datetime; + WHERE d1 <= datetime '1997-01-02' and d1 != datetime 'current'; SELECT '' AS fortyfour, d1 FROM DATETIME_TBL - WHERE d1 >= '1997-01-02'::datetime and d1 != 'current'::datetime; + WHERE d1 >= datetime '1997-01-02' and d1 != datetime 'current'; -SELECT '' AS sixtythree, d1 + '1 year'::timespan AS one_year FROM DATETIME_TBL; +SELECT '' AS sixtythree, d1 + timespan '1 year' AS one_year FROM DATETIME_TBL; -SELECT '' AS sixtythree, d1 - '1 year'::timespan AS one_year FROM DATETIME_TBL; +SELECT '' AS sixtythree, d1 - timespan '1 year' AS one_year FROM DATETIME_TBL; -- Casting within a BETWEEN qualifier should probably be allowed by the parser. - tgl 97/04/26 ---SELECT '' AS fifty, d1 - '1997-01-02'::datetime AS diff --- FROM DATETIME_TBL WHERE d1 BETWEEN '1902-01-01'::datetime AND '2038-01-01'::datetime; -SELECT '' AS fifty, d1 - '1997-01-02'::datetime AS diff +--SELECT '' AS fifty, d1 - datetime '1997-01-02' AS diff +-- FROM DATETIME_TBL WHERE d1 BETWEEN datetime '1902-01-01' AND datetime '2038-01-01'; +SELECT '' AS fifty, d1 - datetime '1997-01-02' AS diff FROM DATETIME_TBL WHERE d1 BETWEEN '1902-01-01' AND '2038-01-01'; SELECT '' AS fortynine, date_part( 'year', d1) AS year, date_part( 'month', d1) AS month, diff --git a/src/test/regress/sql/geometry.sql b/src/test/regress/sql/geometry.sql index c27b31b6ef..a19b7883ab 100644 --- a/src/test/regress/sql/geometry.sql +++ b/src/test/regress/sql/geometry.sql @@ -1,3 +1,7 @@ +-- +-- GEOMETRY +-- + -- -- Points -- @@ -21,22 +25,22 @@ SELECT '' AS two, (@@ f1) AS center -- "is horizontal" function SELECT '' AS two, p1.f1 FROM POINT_TBL p1 - WHERE ishorizontal(p1.f1, '(0,0)'::point); + WHERE ishorizontal(p1.f1, point '(0,0)'); -- "is horizontal" operator SELECT '' AS two, p1.f1 FROM POINT_TBL p1 - WHERE p1.f1 ?- '(0,0)'::point; + WHERE p1.f1 ?- point '(0,0)'; -- "is vertical" function SELECT '' AS one, p1.f1 FROM POINT_TBL p1 - WHERE isvertical(p1.f1, '(5.1,34.5)'::point); + WHERE isvertical(p1.f1, point '(5.1,34.5)'); -- "is vertical" operator SELECT '' AS one, p1.f1 FROM POINT_TBL p1 - WHERE p1.f1 ?| '(5.1,34.5)'::point; + WHERE p1.f1 ?| point '(5.1,34.5)'; -- -- Line segments @@ -73,7 +77,7 @@ SELECT '' AS twentyfour, b.f1 * p.f1 AS rotation SELECT '' AS twenty, b.f1 / p.f1 AS rotation FROM BOX_TBL b, POINT_TBL p - WHERE (p.f1 <-> '(0,0)'::point) >= 1; + WHERE (p.f1 <-> point '(0,0)') >= 1; -- -- Paths @@ -86,11 +90,11 @@ SELECT '' AS eight, points(f1) AS npoints, f1 AS path FROM PATH_TBL; SELECT '' AS four, path(f1) FROM POLYGON_TBL; -- translation -SELECT '' AS eight, p1.f1 + '(10,10)'::point AS dist_add +SELECT '' AS eight, p1.f1 + point '(10,10)' AS dist_add FROM PATH_TBL p1; -- scaling and rotation -SELECT '' AS eight, p1.f1 * '(2,-1)'::point AS dist_mul +SELECT '' AS eight, p1.f1 * point '(2,-1)' AS dist_mul FROM PATH_TBL p1; RESET geqo; diff --git a/src/test/regress/sql/horology.sql b/src/test/regress/sql/horology.sql index 4dae31af6e..247910ffb6 100644 --- a/src/test/regress/sql/horology.sql +++ b/src/test/regress/sql/horology.sql @@ -1,11 +1,16 @@ -- --- horology.sql +-- HOROLOGY -- -- -- datetime, timespan arithmetic -- +SELECT datetime '1996-03-01' - timespan '1 second' AS "Feb 29"; +SELECT datetime '1999-03-01' - timespan '1 second' AS "Feb 28"; +SELECT datetime '2000-03-01' - timespan '1 second' AS "Feb 29"; +SELECT datetime '1999-12-01' + timespan '1 month - 1 second' AS "Dec 31"; + CREATE TABLE TEMP_DATETIME (f1 datetime); -- get some candidate input values @@ -28,8 +33,8 @@ SELECT '' AS hundred, d.f1 AS datetime, t.f1 AS timespan, d.f1 - t.f1 AS minus WHERE isfinite(d.f1) ORDER BY minus, datetime, timespan; -SELECT '' AS ten, d.f1 AS datetime, '1980-01-06 00:00 GMT'::datetime AS gpstime_zero, - d.f1 - '1980-01-06 00:00 GMT'::datetime AS difference +SELECT '' AS ten, d.f1 AS datetime, datetime '1980-01-06 00:00 GMT' AS gpstime_zero, + d.f1 - datetime '1980-01-06 00:00 GMT' AS difference FROM TEMP_DATETIME d ORDER BY difference; @@ -54,7 +59,7 @@ SELECT '' AS four, f1 AS abstime, date_part('day',f1) AS day, date_part('hour', f1) AS hour, date_part('minute', f1) AS minute, date_part('second', f1) AS second FROM ABSTIME_TBL - WHERE isfinite(f1) and f1 <> 'current'::abstime + WHERE isfinite(f1) and f1 <> abstime 'current' ORDER BY abstime; -- @@ -63,7 +68,7 @@ SELECT '' AS four, f1 AS abstime, SELECT '' AS ten, f1 AS datetime, date( f1) AS date FROM TEMP_DATETIME - WHERE f1 <> 'current'::datetime + WHERE f1 <> datetime 'current' ORDER BY date; SELECT '' AS ten, f1 AS datetime, abstime( f1) AS abstime @@ -72,7 +77,7 @@ SELECT '' AS ten, f1 AS datetime, abstime( f1) AS abstime SELECT '' AS five, f1 AS abstime, date( f1) AS date FROM ABSTIME_TBL - WHERE isfinite(f1) AND f1 <> 'current'::abstime + WHERE isfinite(f1) AND f1 <> abstime 'current' ORDER BY date; SELECT '' AS five, d1 AS datetime, abstime(d1) AS abstime diff --git a/src/test/regress/sql/inet.sql b/src/test/regress/sql/inet.sql index 785795a1d5..cc5a94503d 100644 --- a/src/test/regress/sql/inet.sql +++ b/src/test/regress/sql/inet.sql @@ -1,4 +1,5 @@ --- INET regression tests +-- +-- INET -- -- prepare the table... diff --git a/src/test/regress/sql/join.sql b/src/test/regress/sql/join.sql index dedff3a170..9e138d327b 100644 --- a/src/test/regress/sql/join.sql +++ b/src/test/regress/sql/join.sql @@ -4,10 +4,10 @@ -- Test join clauses -- -CREATE TABLE JOIN_TBL ( +CREATE TABLE JOIN1_TBL ( i integer, j integer, - x text + t text ); CREATE TABLE JOIN2_TBL ( @@ -15,10 +15,21 @@ CREATE TABLE JOIN2_TBL ( k integer ); -INSERT INTO JOIN_TBL VALUES (1, 3, 'one'); -INSERT INTO JOIN_TBL VALUES (2, 2, 'two'); -INSERT INTO JOIN_TBL VALUES (3, 1, 'three'); -INSERT INTO JOIN_TBL VALUES (4, 0, 'four'); +CREATE TABLE JOIN3_TBL ( + i integer, + j integer, + y integer +); + +CREATE TABLE JOIN4_TBL ( + k integer, + z integer +); + +INSERT INTO JOIN1_TBL VALUES (1, 3, 'one'); +INSERT INTO JOIN1_TBL VALUES (2, 2, 'two'); +INSERT INTO JOIN1_TBL VALUES (3, 1, 'three'); +INSERT INTO JOIN1_TBL VALUES (4, 0, 'four'); INSERT INTO JOIN2_TBL VALUES (1, -1); INSERT INTO JOIN2_TBL VALUES (2, 2); @@ -26,27 +37,62 @@ INSERT INTO JOIN2_TBL VALUES (3, -3); INSERT INTO JOIN2_TBL VALUES (2, 4); +-- +-- CROSS JOIN +-- Qualifications are not allowed on cross joins, +-- which degenerate into a standard unqualified inner join. +-- + +SELECT '' AS "xxx", * + FROM JOIN1_TBL CROSS JOIN JOIN2_TBL; + +SELECT '' AS "xxx", i, k, t + FROM JOIN1_TBL CROSS JOIN JOIN2_TBL; + +SELECT '' AS "xxx", ii, tt, kk + FROM JOIN1_TBL CROSS JOIN JOIN2_TBL AS JT (ii, jj, tt, ii2, kk); + +SELECT '' AS "xxx", jt.ii, jt.jj, jt.kk + FROM JOIN1_TBL CROSS JOIN JOIN2_TBL AS JT (ii, jj, tt, ii2, kk); + + +-- -- -- Inner joins (equi-joins) -- +-- + +-- +-- Inner joins (equi-joins) with USING clause +-- The USING syntax changes the shape of the resulting table +-- by including a column in the USING clause only once in the result. +-- +-- Inner equi-join on all columns with the same name SELECT '' AS "xxx", * - FROM JOIN_TBL CROSS JOIN JOIN2_TBL; + FROM JOIN1_TBL NATURAL JOIN JOIN2_TBL; +-- Inner equi-join on specified column SELECT '' AS "xxx", * - FROM JOIN_TBL NATURAL JOIN JOIN2_TBL; + FROM JOIN1_TBL INNER JOIN JOIN2_TBL USING (i); +-- Same as above, slightly different syntax SELECT '' AS "xxx", * - FROM JOIN_TBL INNER JOIN JOIN2_TBL USING (i); + FROM JOIN1_TBL JOIN JOIN2_TBL USING (i); + + +-- +-- Inner joins (equi-joins) +-- SELECT '' AS "xxx", * - FROM JOIN_TBL JOIN JOIN2_TBL ON (JOIN_TBL.i = JOIN2_TBL.i); + FROM JOIN1_TBL JOIN JOIN2_TBL ON (JOIN1_TBL.i = JOIN2_TBL.i); SELECT '' AS "xxx", * - FROM JOIN_TBL JOIN JOIN2_TBL ON (JOIN_TBL.i = JOIN2_TBL.k); + FROM JOIN1_TBL JOIN JOIN2_TBL ON (JOIN1_TBL.i = JOIN2_TBL.k); SELECT '' AS "xxx", * - FROM JOIN_TBL CROSS JOIN JOIN2_TBL; + FROM JOIN1_TBL CROSS JOIN JOIN2_TBL; -- @@ -54,7 +100,7 @@ SELECT '' AS "xxx", * -- SELECT '' AS "xxx", * - FROM JOIN_TBL JOIN JOIN2_TBL ON (JOIN_TBL.i <= JOIN2_TBL.k); + FROM JOIN1_TBL JOIN JOIN2_TBL ON (JOIN1_TBL.i <= JOIN2_TBL.k); -- @@ -62,16 +108,16 @@ SELECT '' AS "xxx", * -- SELECT '' AS "xxx", * - FROM JOIN_TBL OUTER JOIN JOIN2_TBL USING (i); + FROM JOIN1_TBL OUTER JOIN JOIN2_TBL USING (i); SELECT '' AS "xxx", * - FROM JOIN_TBL LEFT OUTER JOIN JOIN2_TBL USING (i); + FROM JOIN1_TBL LEFT OUTER JOIN JOIN2_TBL USING (i); SELECT '' AS "xxx", * - FROM JOIN_TBL RIGHT OUTER JOIN JOIN2_TBL USING (i); + FROM JOIN1_TBL RIGHT OUTER JOIN JOIN2_TBL USING (i); SELECT '' AS "xxx", * - FROM JOIN_TBL FULL OUTER JOIN JOIN2_TBL USING (i); + FROM JOIN1_TBL FULL OUTER JOIN JOIN2_TBL USING (i); -- @@ -82,6 +128,6 @@ SELECT '' AS "xxx", * -- Clean up -- -DROP TABLE JOIN_TBL; +DROP TABLE JOIN1_TBL; DROP TABLE JOIN2_TBL; diff --git a/src/test/regress/sql/lseg.sql b/src/test/regress/sql/lseg.sql index b43e626706..9202f2d284 100644 --- a/src/test/regress/sql/lseg.sql +++ b/src/test/regress/sql/lseg.sql @@ -1,4 +1,5 @@ -- +-- LSEG -- Line segments -- @@ -19,7 +20,7 @@ INSERT INTO LSEG_TBL VALUES ('[(1,2),(3,4)'); select * from LSEG_TBL; -SELECT * FROM LSEG_TBL WHERE s <= '[(1,2),(3,4)]'::lseg; +SELECT * FROM LSEG_TBL WHERE s <= lseg '[(1,2),(3,4)]'; -SELECT * FROM LSEG_TBL WHERE (s <-> '[(1,2),(3,4)]'::lseg) < 10; +SELECT * FROM LSEG_TBL WHERE (s <-> lseg '[(1,2),(3,4)]') < 10; diff --git a/src/test/regress/sql/numeric.sql b/src/test/regress/sql/numeric.sql index a1a2ae27e2..fdd7ade10c 100644 --- a/src/test/regress/sql/numeric.sql +++ b/src/test/regress/sql/numeric.sql @@ -1,6 +1,6 @@ --- ****************************** --- * Test suite for the Postgres NUMERIC data type --- ****************************** +-- +-- NUMERIC +-- CREATE TABLE num_data (id int4, val numeric(210,10)); CREATE TABLE num_exp_add (id1 int4, id2 int4, expected numeric(210,10)); @@ -614,7 +614,7 @@ SELECT t1.id1, t1.result, t2.expected -- * Logarithm base 10 check -- ****************************** DELETE FROM num_result; -INSERT INTO num_result SELECT id, 0, LOG('10'::numeric, ABS(val)) +INSERT INTO num_result SELECT id, 0, LOG(numeric '10', ABS(val)) FROM num_data WHERE val != '0.0'; SELECT t1.id1, t1.result, t2.expected @@ -626,7 +626,7 @@ SELECT t1.id1, t1.result, t2.expected -- * POWER(10, LN(value)) check -- ****************************** DELETE FROM num_result; -INSERT INTO num_result SELECT id, 0, POWER('10'::numeric, LN(ABS(round(val,200)))) +INSERT INTO num_result SELECT id, 0, POWER(numeric '10', LN(ABS(round(val,200)))) FROM num_data WHERE val != '0.0'; SELECT t1.id1, t1.result, t2.expected diff --git a/src/test/regress/sql/numerology.sql b/src/test/regress/sql/numerology.sql index 65791aa125..35975f3bd6 100644 --- a/src/test/regress/sql/numerology.sql +++ b/src/test/regress/sql/numerology.sql @@ -1,5 +1,6 @@ -- --- numerology.sql +-- NUMEROLOGY +-- Test various combinations of numeric types and functions. -- -- diff --git a/src/test/regress/sql/oidjoins.sql b/src/test/regress/sql/oidjoins.sql index a6a7723ebd..27b6034a33 100644 --- a/src/test/regress/sql/oidjoins.sql +++ b/src/test/regress/sql/oidjoins.sql @@ -1,203 +1,206 @@ -- +-- OIDJOIN -- This is created by pgsql/contrib/findoidjoins/make_oidjoin_check -- -SELECT oid, pg_aggregate.aggtransfn1 -FROM pg_aggregate -WHERE pg_aggregate.aggtransfn1 != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggtransfn1); -SELECT oid, pg_aggregate.aggtransfn2 -FROM pg_aggregate -WHERE pg_aggregate.aggtransfn2 != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggtransfn2); -SELECT oid, pg_aggregate.aggfinalfn -FROM pg_aggregate -WHERE pg_aggregate.aggfinalfn != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggfinalfn); -SELECT oid, pg_aggregate.aggbasetype -FROM pg_aggregate -WHERE pg_aggregate.aggbasetype != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggbasetype); -SELECT oid, pg_aggregate.aggtranstype1 -FROM pg_aggregate -WHERE pg_aggregate.aggtranstype1 != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggtranstype1); -SELECT oid, pg_aggregate.aggtranstype2 -FROM pg_aggregate -WHERE pg_aggregate.aggtranstype2 != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggtranstype2); -SELECT oid, pg_aggregate.aggfinaltype -FROM pg_aggregate -WHERE pg_aggregate.aggfinaltype != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggfinaltype); -SELECT oid, pg_am.amgettuple -FROM pg_am -WHERE pg_am.amgettuple != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amgettuple); -SELECT oid, pg_am.aminsert -FROM pg_am -WHERE pg_am.aminsert != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.aminsert); -SELECT oid, pg_am.amdelete -FROM pg_am -WHERE pg_am.amdelete != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amdelete); -SELECT oid, pg_am.ambeginscan -FROM pg_am -WHERE pg_am.ambeginscan != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.ambeginscan); -SELECT oid, pg_am.amrescan -FROM pg_am -WHERE pg_am.amrescan != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amrescan); -SELECT oid, pg_am.amendscan -FROM pg_am -WHERE pg_am.amendscan != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amendscan); -SELECT oid, pg_am.ammarkpos -FROM pg_am -WHERE pg_am.ammarkpos != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.ammarkpos); -SELECT oid, pg_am.amrestrpos -FROM pg_am -WHERE pg_am.amrestrpos != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amrestrpos); -SELECT oid, pg_am.ambuild -FROM pg_am -WHERE pg_am.ambuild != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.ambuild); -SELECT oid, pg_amop.amopid -FROM pg_amop -WHERE pg_amop.amopid != 0 AND - NOT EXISTS(SELECT * FROM pg_am AS t1 WHERE t1.oid = pg_amop.amopid); -SELECT oid, pg_amop.amopclaid -FROM pg_amop -WHERE pg_amop.amopclaid != 0 AND - NOT EXISTS(SELECT * FROM pg_opclass AS t1 WHERE t1.oid = pg_amop.amopclaid); -SELECT oid, pg_amop.amopopr -FROM pg_amop -WHERE pg_amop.amopopr != 0 AND - NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_amop.amopopr); -SELECT oid, pg_amop.amopselect -FROM pg_amop -WHERE pg_amop.amopselect != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_amop.amopselect); -SELECT oid, pg_amop.amopnpages -FROM pg_amop -WHERE pg_amop.amopnpages != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_amop.amopnpages); -SELECT oid, pg_amproc.amid -FROM pg_amproc -WHERE pg_amproc.amid != 0 AND - NOT EXISTS(SELECT * FROM pg_am AS t1 WHERE t1.oid = pg_amproc.amid); -SELECT oid, pg_amproc.amopclaid -FROM pg_amproc -WHERE pg_amproc.amopclaid != 0 AND - NOT EXISTS(SELECT * FROM pg_opclass AS t1 WHERE t1.oid = pg_amproc.amopclaid); -SELECT oid, pg_amproc.amproc -FROM pg_amproc -WHERE pg_amproc.amproc != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_amproc.amproc); -SELECT oid, pg_attribute.attrelid -FROM pg_attribute -WHERE pg_attribute.attrelid != 0 AND - NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_attribute.attrelid); -SELECT oid, pg_attribute.atttypid -FROM pg_attribute -WHERE pg_attribute.atttypid != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_attribute.atttypid); -SELECT oid, pg_class.reltype -FROM pg_class -WHERE pg_class.reltype != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_class.reltype); -SELECT oid, pg_class.relam -FROM pg_class -WHERE pg_class.relam != 0 AND - NOT EXISTS(SELECT * FROM pg_am AS t1 WHERE t1.oid = pg_class.relam); -SELECT oid, pg_index.indexrelid -FROM pg_index -WHERE pg_index.indexrelid != 0 AND - NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_index.indexrelid); -SELECT oid, pg_index.indrelid -FROM pg_index -WHERE pg_index.indrelid != 0 AND - NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_index.indrelid); -SELECT oid, pg_opclass.opcdeftype -FROM pg_opclass -WHERE pg_opclass.opcdeftype != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_opclass.opcdeftype); -SELECT oid, pg_operator.oprleft -FROM pg_operator -WHERE pg_operator.oprleft != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_operator.oprleft); -SELECT oid, pg_operator.oprright -FROM pg_operator -WHERE pg_operator.oprright != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_operator.oprright); -SELECT oid, pg_operator.oprresult -FROM pg_operator -WHERE pg_operator.oprresult != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_operator.oprresult); -SELECT oid, pg_operator.oprcom -FROM pg_operator -WHERE pg_operator.oprcom != 0 AND - NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprcom); -SELECT oid, pg_operator.oprnegate -FROM pg_operator -WHERE pg_operator.oprnegate != 0 AND - NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprnegate); -SELECT oid, pg_operator.oprlsortop -FROM pg_operator -WHERE pg_operator.oprlsortop != 0 AND - NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprlsortop); -SELECT oid, pg_operator.oprrsortop -FROM pg_operator -WHERE pg_operator.oprrsortop != 0 AND - NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprrsortop); -SELECT oid, pg_operator.oprcode -FROM pg_operator -WHERE pg_operator.oprcode != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_operator.oprcode); -SELECT oid, pg_operator.oprrest -FROM pg_operator -WHERE pg_operator.oprrest != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_operator.oprrest); -SELECT oid, pg_operator.oprjoin -FROM pg_operator -WHERE pg_operator.oprjoin != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_operator.oprjoin); -SELECT oid, pg_proc.prolang -FROM pg_proc -WHERE pg_proc.prolang != 0 AND - NOT EXISTS(SELECT * FROM pg_language AS t1 WHERE t1.oid = pg_proc.prolang); -SELECT oid, pg_proc.prorettype -FROM pg_proc -WHERE pg_proc.prorettype != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_proc.prorettype); -SELECT oid, pg_rewrite.ev_class -FROM pg_rewrite -WHERE pg_rewrite.ev_class != 0 AND - NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_rewrite.ev_class); -SELECT oid, pg_type.typrelid -FROM pg_type -WHERE pg_type.typrelid != 0 AND - NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_type.typrelid); -SELECT oid, pg_type.typelem -FROM pg_type -WHERE pg_type.typelem != 0 AND - NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_type.typelem); -SELECT oid, pg_type.typinput -FROM pg_type -WHERE pg_type.typinput != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typinput); -SELECT oid, pg_type.typoutput -FROM pg_type -WHERE pg_type.typoutput != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typoutput); -SELECT oid, pg_type.typreceive -FROM pg_type -WHERE pg_type.typreceive != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typreceive); -SELECT oid, pg_type.typsend -FROM pg_type -WHERE pg_type.typsend != 0 AND - NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typsend); + +SELECT oid, pg_aggregate.aggtransfn1 + FROM pg_aggregate + WHERE pg_aggregate.aggtransfn1 != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggtransfn1); +SELECT oid, pg_aggregate.aggtransfn2 + FROM pg_aggregate + WHERE pg_aggregate.aggtransfn2 != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggtransfn2); +SELECT oid, pg_aggregate.aggfinalfn + FROM pg_aggregate + WHERE pg_aggregate.aggfinalfn != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_aggregate.aggfinalfn); +SELECT oid, pg_aggregate.aggbasetype + FROM pg_aggregate + WHERE pg_aggregate.aggbasetype != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggbasetype); +SELECT oid, pg_aggregate.aggtranstype1 + FROM pg_aggregate + WHERE pg_aggregate.aggtranstype1 != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggtranstype1); +SELECT oid, pg_aggregate.aggtranstype2 + FROM pg_aggregate + WHERE pg_aggregate.aggtranstype2 != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggtranstype2); +SELECT oid, pg_aggregate.aggfinaltype + FROM pg_aggregate + WHERE pg_aggregate.aggfinaltype != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_aggregate.aggfinaltype); +SELECT oid, pg_am.amgettuple + FROM pg_am + WHERE pg_am.amgettuple != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amgettuple); +SELECT oid, pg_am.aminsert + FROM pg_am + WHERE pg_am.aminsert != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.aminsert); +SELECT oid, pg_am.amdelete + FROM pg_am + WHERE pg_am.amdelete != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amdelete); +SELECT oid, pg_am.ambeginscan + FROM pg_am + WHERE pg_am.ambeginscan != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.ambeginscan); +SELECT oid, pg_am.amrescan + FROM pg_am + WHERE pg_am.amrescan != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amrescan); +SELECT oid, pg_am.amendscan + FROM pg_am + WHERE pg_am.amendscan != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amendscan); +SELECT oid, pg_am.ammarkpos + FROM pg_am + WHERE pg_am.ammarkpos != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.ammarkpos); +SELECT oid, pg_am.amrestrpos + FROM pg_am + WHERE pg_am.amrestrpos != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.amrestrpos); +SELECT oid, pg_am.ambuild + FROM pg_am + WHERE pg_am.ambuild != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_am.ambuild); +SELECT oid, pg_amop.amopid + FROM pg_amop + WHERE pg_amop.amopid != 0 AND + NOT EXISTS(SELECT * FROM pg_am AS t1 WHERE t1.oid = pg_amop.amopid); +SELECT oid, pg_amop.amopclaid + FROM pg_amop + WHERE pg_amop.amopclaid != 0 AND + NOT EXISTS(SELECT * FROM pg_opclass AS t1 WHERE t1.oid = pg_amop.amopclaid); +SELECT oid, pg_amop.amopopr + FROM pg_amop + WHERE pg_amop.amopopr != 0 AND + NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_amop.amopopr); +SELECT oid, pg_amop.amopselect + FROM pg_amop + WHERE pg_amop.amopselect != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_amop.amopselect); +SELECT oid, pg_amop.amopnpages + FROM pg_amop + WHERE pg_amop.amopnpages != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_amop.amopnpages); +SELECT oid, pg_amproc.amid + FROM pg_amproc + WHERE pg_amproc.amid != 0 AND + NOT EXISTS(SELECT * FROM pg_am AS t1 WHERE t1.oid = pg_amproc.amid); +SELECT oid, pg_amproc.amopclaid + FROM pg_amproc + WHERE pg_amproc.amopclaid != 0 AND + NOT EXISTS(SELECT * FROM pg_opclass AS t1 WHERE t1.oid = pg_amproc.amopclaid); +SELECT oid, pg_amproc.amproc + FROM pg_amproc + WHERE pg_amproc.amproc != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_amproc.amproc); +SELECT oid, pg_attribute.attrelid + FROM pg_attribute + WHERE pg_attribute.attrelid != 0 AND + NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_attribute.attrelid); +SELECT oid, pg_attribute.atttypid + FROM pg_attribute + WHERE pg_attribute.atttypid != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_attribute.atttypid); +SELECT oid, pg_class.reltype + FROM pg_class + WHERE pg_class.reltype != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_class.reltype); +SELECT oid, pg_class.relam + FROM pg_class + WHERE pg_class.relam != 0 AND + NOT EXISTS(SELECT * FROM pg_am AS t1 WHERE t1.oid = pg_class.relam); +SELECT oid, pg_index.indexrelid + FROM pg_index + WHERE pg_index.indexrelid != 0 AND + NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_index.indexrelid); +SELECT oid, pg_index.indrelid + FROM pg_index + WHERE pg_index.indrelid != 0 AND + NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_index.indrelid); +SELECT oid, pg_opclass.opcdeftype + FROM pg_opclass + WHERE pg_opclass.opcdeftype != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_opclass.opcdeftype); +SELECT oid, pg_operator.oprleft + FROM pg_operator + WHERE pg_operator.oprleft != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_operator.oprleft); +SELECT oid, pg_operator.oprright + FROM pg_operator + WHERE pg_operator.oprright != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_operator.oprright); +SELECT oid, pg_operator.oprresult + FROM pg_operator + WHERE pg_operator.oprresult != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_operator.oprresult); +SELECT oid, pg_operator.oprcom + FROM pg_operator + WHERE pg_operator.oprcom != 0 AND + NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprcom); +SELECT oid, pg_operator.oprnegate + FROM pg_operator + WHERE pg_operator.oprnegate != 0 AND + NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprnegate); +SELECT oid, pg_operator.oprlsortop + FROM pg_operator + WHERE pg_operator.oprlsortop != 0 AND + NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprlsortop); +SELECT oid, pg_operator.oprrsortop + FROM pg_operator + WHERE pg_operator.oprrsortop != 0 AND + NOT EXISTS(SELECT * FROM pg_operator AS t1 WHERE t1.oid = pg_operator.oprrsortop); +SELECT oid, pg_operator.oprcode + FROM pg_operator + WHERE pg_operator.oprcode != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_operator.oprcode); +SELECT oid, pg_operator.oprrest + FROM pg_operator + WHERE pg_operator.oprrest != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_operator.oprrest); +SELECT oid, pg_operator.oprjoin + FROM pg_operator + WHERE pg_operator.oprjoin != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_operator.oprjoin); +SELECT oid, pg_proc.prolang + FROM pg_proc + WHERE pg_proc.prolang != 0 AND + NOT EXISTS(SELECT * FROM pg_language AS t1 WHERE t1.oid = pg_proc.prolang); +SELECT oid, pg_proc.prorettype + FROM pg_proc + WHERE pg_proc.prorettype != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_proc.prorettype); +SELECT oid, pg_rewrite.ev_class + FROM pg_rewrite + WHERE pg_rewrite.ev_class != 0 AND + NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_rewrite.ev_class); +SELECT oid, pg_type.typrelid + FROM pg_type + WHERE pg_type.typrelid != 0 AND + NOT EXISTS(SELECT * FROM pg_class AS t1 WHERE t1.oid = pg_type.typrelid); +SELECT oid, pg_type.typelem + FROM pg_type + WHERE pg_type.typelem != 0 AND + NOT EXISTS(SELECT * FROM pg_type AS t1 WHERE t1.oid = pg_type.typelem); +SELECT oid, pg_type.typinput + FROM pg_type + WHERE pg_type.typinput != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typinput); +SELECT oid, pg_type.typoutput + FROM pg_type + WHERE pg_type.typoutput != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typoutput); +SELECT oid, pg_type.typreceive + FROM pg_type + WHERE pg_type.typreceive != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typreceive); +SELECT oid, pg_type.typsend + FROM pg_type + WHERE pg_type.typsend != 0 AND + NOT EXISTS(SELECT * FROM pg_proc AS t1 WHERE t1.oid = pg_type.typsend); + diff --git a/src/test/regress/sql/opr_sanity.sql b/src/test/regress/sql/opr_sanity.sql index a465d26a06..9964f5c1e1 100644 --- a/src/test/regress/sql/opr_sanity.sql +++ b/src/test/regress/sql/opr_sanity.sql @@ -1,4 +1,5 @@ -- +-- OPR_SANITY -- Sanity checks for common errors in making operator/procedure system tables: -- pg_operator, pg_proc, pg_aggregate, pg_am, pg_amop, pg_amproc, pg_opclass. -- diff --git a/src/test/regress/sql/path.sql b/src/test/regress/sql/path.sql index 11a3bb30a7..36cb7c8109 100644 --- a/src/test/regress/sql/path.sql +++ b/src/test/regress/sql/path.sql @@ -1,5 +1,5 @@ -- --- path.sql +-- PATH -- --DROP TABLE PATH_TBL; diff --git a/src/test/regress/sql/point.sql b/src/test/regress/sql/point.sql index 336ffa299f..6c6867c432 100644 --- a/src/test/regress/sql/point.sql +++ b/src/test/regress/sql/point.sql @@ -1,4 +1,6 @@ --- ************testing built-in type point **************** +-- +-- POINT +-- CREATE TABLE POINT_TBL(f1 point); @@ -41,15 +43,15 @@ SELECT '' AS one, p.* FROM POINT_TBL p WHERE p.f1 ~= '(5.1, 34.5)'; -- point in box SELECT '' AS three, p.* FROM POINT_TBL p - WHERE p.f1 @ '(0,0,100,100)'::box; + WHERE p.f1 @ box '(0,0,100,100)'; SELECT '' AS three, p.* FROM POINT_TBL p - WHERE not p.f1 @ '(0,0,100,100)'::box; + WHERE not p.f1 @ box '(0,0,100,100)'; SELECT '' AS two, p.* FROM POINT_TBL p - WHERE p.f1 @ '[(0,0),(-10,0),(-10,10)]'::path; + WHERE p.f1 @ path '[(0,0),(-10,0),(-10,10)]'; -SELECT '' AS six, p.f1, p.f1 <-> '(0,0)'::point AS dist +SELECT '' AS six, p.f1, p.f1 <-> point '(0,0)' AS dist FROM POINT_TBL p ORDER BY dist; diff --git a/src/test/regress/sql/polygon.sql b/src/test/regress/sql/polygon.sql index 977e602348..99d674e8d2 100644 --- a/src/test/regress/sql/polygon.sql +++ b/src/test/regress/sql/polygon.sql @@ -1,4 +1,5 @@ --- *************testing built-in type polygon **************** +-- +-- POLYGON -- -- polygon logic -- @@ -67,17 +68,17 @@ SELECT '' AS zero, p.* -- contained SELECT '' AS one, p.* FROM POLYGON_TBL p - WHERE p.f1 @ '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon; + WHERE p.f1 @ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; -- same SELECT '' AS one, p.* FROM POLYGON_TBL p - WHERE p.f1 ~= '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon; + WHERE p.f1 ~= polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; -- contains SELECT '' AS one, p.* FROM POLYGON_TBL p - WHERE p.f1 ~ '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon; + WHERE p.f1 ~ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)'; -- -- polygon logic @@ -93,26 +94,26 @@ SELECT '' AS one, p.* -- 0 1 2 3 4 -- -- left of -SELECT '(2.0,0.0),(2.0,4.0),(0.0,0.0)'::polygon << '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon AS false; +SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false; -- left overlap -SELECT '(2.0,0.0),(2.0,4.0),(0.0,0.0)'::polygon << '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon AS true; +SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' << polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true; -- right overlap -SELECT '(2.0,0.0),(2.0,4.0),(0.0,0.0)'::polygon &> '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon AS true; +SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' &> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true; -- right of -SELECT '(2.0,0.0),(2.0,4.0),(0.0,0.0)'::polygon >> '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon AS false; +SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' >> polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false; -- contained in -SELECT '(2.0,0.0),(2.0,4.0),(0.0,0.0)'::polygon @ '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon AS false; +SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' @ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false; -- contains -SELECT '(2.0,0.0),(2.0,4.0),(0.0,0.0)'::polygon ~ '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon AS false; +SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' ~ polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false; -- same -SELECT '(2.0,0.0),(2.0,4.0),(0.0,0.0)'::polygon ~= '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon AS false; +SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' ~= polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS false; -- overlap -SELECT '(2.0,0.0),(2.0,4.0),(0.0,0.0)'::polygon && '(3.0,1.0),(3.0,3.0),(1.0,0.0)'::polygon AS true; +SELECT polygon '(2.0,0.0),(2.0,4.0),(0.0,0.0)' && polygon '(3.0,1.0),(3.0,3.0),(1.0,0.0)' AS true; diff --git a/src/test/regress/sql/reltime.sql b/src/test/regress/sql/reltime.sql index d11b48f096..53295d3e66 100644 --- a/src/test/regress/sql/reltime.sql +++ b/src/test/regress/sql/reltime.sql @@ -1,3 +1,7 @@ +-- +-- RELTIME +-- + CREATE TABLE RELTIME_TBL (f1 reltime); INSERT INTO RELTIME_TBL (f1) VALUES ('@ 1 minute'); @@ -13,7 +17,7 @@ INSERT INTO RELTIME_TBL (f1) VALUES ('@ 3 months'); INSERT INTO RELTIME_TBL (f1) VALUES ('@ 14 seconds ago'); --- badly formatted reltimes: +-- badly formatted reltimes INSERT INTO RELTIME_TBL (f1) VALUES ('badly formatted reltime'); INSERT INTO RELTIME_TBL (f1) VALUES ('@ 30 eons ago'); @@ -23,22 +27,22 @@ INSERT INTO RELTIME_TBL (f1) VALUES ('@ 30 eons ago'); SELECT '' AS six, RELTIME_TBL.*; SELECT '' AS five, RELTIME_TBL.* - WHERE RELTIME_TBL.f1 <> '@ 10 days'::reltime; + WHERE RELTIME_TBL.f1 <> reltime '@ 10 days'; SELECT '' AS three, RELTIME_TBL.* - WHERE RELTIME_TBL.f1 <= '@ 5 hours'::reltime; + WHERE RELTIME_TBL.f1 <= reltime '@ 5 hours'; SELECT '' AS three, RELTIME_TBL.* - WHERE RELTIME_TBL.f1 < '@ 1 day'::reltime; + WHERE RELTIME_TBL.f1 < reltime '@ 1 day'; SELECT '' AS one, RELTIME_TBL.* - WHERE RELTIME_TBL.f1 = '@ 34 years'::reltime; + WHERE RELTIME_TBL.f1 = reltime '@ 34 years'; SELECT '' AS two, RELTIME_TBL.* - WHERE RELTIME_TBL.f1 >= '@ 1 month'::reltime; + WHERE RELTIME_TBL.f1 >= reltime '@ 1 month'; SELECT '' AS five, RELTIME_TBL.* - WHERE RELTIME_TBL.f1 > '@ 3 seconds ago'::reltime; + WHERE RELTIME_TBL.f1 > reltime '@ 3 seconds ago'; SELECT '' AS fifteen, r1.*, r2.* FROM RELTIME_TBL r1, RELTIME_TBL r2 diff --git a/src/test/regress/sql/strings.sql b/src/test/regress/sql/strings.sql index e2c86449ae..7be0073a6f 100644 --- a/src/test/regress/sql/strings.sql +++ b/src/test/regress/sql/strings.sql @@ -1,4 +1,5 @@ -- +-- STRINGS -- Test various data entry syntaxes. -- diff --git a/src/test/regress/sql/timespan.sql b/src/test/regress/sql/timespan.sql index df103edae0..0ce18514d8 100644 --- a/src/test/regress/sql/timespan.sql +++ b/src/test/regress/sql/timespan.sql @@ -1,3 +1,7 @@ +-- +-- TIMESPAN +-- + CREATE TABLE TIMESPAN_TBL (f1 timespan); INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 1 minute'); @@ -11,7 +15,7 @@ INSERT INTO TIMESPAN_TBL (f1) VALUES ('6 years'); INSERT INTO TIMESPAN_TBL (f1) VALUES ('5 months'); INSERT INTO TIMESPAN_TBL (f1) VALUES ('5 months 12 hours'); --- badly formatted timespan: +-- badly formatted timespan INSERT INTO TIMESPAN_TBL (f1) VALUES ('badly formatted timespan'); INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 30 eons ago'); @@ -20,22 +24,22 @@ INSERT INTO TIMESPAN_TBL (f1) VALUES ('@ 30 eons ago'); SELECT '' AS ten, TIMESPAN_TBL.*; SELECT '' AS nine, TIMESPAN_TBL.* - WHERE TIMESPAN_TBL.f1 <> '@ 10 days'::timespan; + WHERE TIMESPAN_TBL.f1 <> timespan '@ 10 days'; SELECT '' AS three, TIMESPAN_TBL.* - WHERE TIMESPAN_TBL.f1 <= '@ 5 hours'::timespan; + WHERE TIMESPAN_TBL.f1 <= timespan '@ 5 hours'; SELECT '' AS three, TIMESPAN_TBL.* - WHERE TIMESPAN_TBL.f1 < '@ 1 day'::timespan; + WHERE TIMESPAN_TBL.f1 < timespan '@ 1 day'; SELECT '' AS one, TIMESPAN_TBL.* - WHERE TIMESPAN_TBL.f1 = '@ 34 years'::timespan; + WHERE TIMESPAN_TBL.f1 = timespan '@ 34 years'; SELECT '' AS five, TIMESPAN_TBL.* - WHERE TIMESPAN_TBL.f1 >= '@ 1 month'::timespan; + WHERE TIMESPAN_TBL.f1 >= timespan '@ 1 month'; SELECT '' AS nine, TIMESPAN_TBL.* - WHERE TIMESPAN_TBL.f1 > '@ 3 seconds ago'::timespan; + WHERE TIMESPAN_TBL.f1 > timespan '@ 3 seconds ago'; SELECT '' AS fortyfive, r1.*, r2.* FROM TIMESPAN_TBL r1, TIMESPAN_TBL r2 diff --git a/src/test/regress/sql/tinterval.sql b/src/test/regress/sql/tinterval.sql index b2a3d93c4e..3ba0cd6c19 100644 --- a/src/test/regress/sql/tinterval.sql +++ b/src/test/regress/sql/tinterval.sql @@ -1,3 +1,7 @@ +-- +-- TINTERVAL +-- + CREATE TABLE TINTERVAL_TBL (f1 tinterval); INSERT INTO TINTERVAL_TBL (f1) @@ -61,7 +65,7 @@ SELECT '' AS three, t.* SELECT '' AS three, t1.* FROM TINTERVAL_TBL t1 WHERE t1.f1 && - '["Aug 15 14:23:19 1983" "Sep 16 14:23:19 1983"]'::tinterval; + tinterval '["Aug 15 14:23:19 1983" "Sep 16 14:23:19 1983"]'; SET geqo TO 'off'; @@ -80,15 +84,15 @@ SELECT '' AS fourteen, t1.f1 AS interval1, t2.f1 AS interval2 SELECT '' AS five, t1.f1 FROM TINTERVAL_TBL t1 WHERE not t1.f1 << - '["Aug 15 14:23:19 1980" "Sep 16 14:23:19 1990"]'::tinterval + tinterval '["Aug 15 14:23:19 1980" "Sep 16 14:23:19 1990"]' ORDER BY t1.f1; -- make time interval SELECT '' AS three, t1.f1 FROM TINTERVAL_TBL t1 WHERE t1.f1 && - ('Aug 15 14:23:19 1983'::abstime <#> - 'Sep 16 14:23:19 1983'::abstime) + (abstime 'Aug 15 14:23:19 1983' <#> + abstime 'Sep 16 14:23:19 1983') ORDER BY t1.f1; RESET geqo; diff --git a/src/test/regress/sql/type_sanity.sql b/src/test/regress/sql/type_sanity.sql index a6635fe779..312fd2857a 100644 --- a/src/test/regress/sql/type_sanity.sql +++ b/src/test/regress/sql/type_sanity.sql @@ -1,4 +1,5 @@ -- +-- TYPE_SANITY -- Sanity checks for common errors in making type-related system tables: -- pg_type, pg_class, pg_attribute. --