diff options
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/regress/expected/int2.out | 19 | ||||
-rw-r--r-- | src/test/regress/expected/oid.out | 62 | ||||
-rw-r--r-- | src/test/regress/expected/pg_lsn.out | 13 | ||||
-rw-r--r-- | src/test/regress/expected/privileges.out | 43 | ||||
-rw-r--r-- | src/test/regress/expected/tid.out | 25 | ||||
-rw-r--r-- | src/test/regress/expected/xid.out | 31 | ||||
-rw-r--r-- | src/test/regress/sql/int2.sql | 5 | ||||
-rw-r--r-- | src/test/regress/sql/oid.sql | 14 | ||||
-rw-r--r-- | src/test/regress/sql/pg_lsn.sql | 4 | ||||
-rw-r--r-- | src/test/regress/sql/privileges.sql | 9 | ||||
-rw-r--r-- | src/test/regress/sql/tid.sql | 6 | ||||
-rw-r--r-- | src/test/regress/sql/xid.sql | 7 |
12 files changed, 238 insertions, 0 deletions
diff --git a/src/test/regress/expected/int2.out b/src/test/regress/expected/int2.out index 08e2f9f9dca..08c333b75a2 100644 --- a/src/test/regress/expected/int2.out +++ b/src/test/regress/expected/int2.out @@ -70,6 +70,25 @@ SELECT pg_input_error_message('50000', 'int2'); value "50000" is out of range for type smallint (1 row) +-- While we're here, check int2vector as well +SELECT pg_input_is_valid(' 1 3 5 ', 'int2vector'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_error_message('1 asdf', 'int2vector'); + pg_input_error_message +------------------------------------------------ + invalid input syntax for type smallint: "asdf" +(1 row) + +SELECT pg_input_error_message('50000', 'int2vector'); + pg_input_error_message +------------------------------------------------- + value "50000" is out of range for type smallint +(1 row) + SELECT * FROM INT2_TBL AS f(a, b); ERROR: table "f" has 1 columns available but 2 columns specified SELECT * FROM (TABLE int2_tbl) AS s (a, b); diff --git a/src/test/regress/expected/oid.out b/src/test/regress/expected/oid.out index 89093734536..b664bab5f93 100644 --- a/src/test/regress/expected/oid.out +++ b/src/test/regress/expected/oid.out @@ -65,6 +65,68 @@ SELECT * FROM OID_TBL; 15 (8 rows) +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('1234', 'oid'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_is_valid('01XYZ', 'oid'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('01XYZ', 'oid'); + pg_input_error_message +-------------------------------------------- + invalid input syntax for type oid: "01XYZ" +(1 row) + +SELECT pg_input_is_valid('9999999999', 'oid'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('9999999999', 'oid'); + pg_input_error_message +------------------------------------------------- + value "9999999999" is out of range for type oid +(1 row) + +-- While we're here, check oidvector as well +SELECT pg_input_is_valid(' 1 2 4 ', 'oidvector'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_is_valid('01 01XYZ', 'oidvector'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('01 01XYZ', 'oidvector'); + pg_input_error_message +------------------------------------------ + invalid input syntax for type oid: "XYZ" +(1 row) + +SELECT pg_input_is_valid('01 9999999999', 'oidvector'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('01 9999999999', 'oidvector'); + pg_input_error_message +------------------------------------------------- + value "9999999999" is out of range for type oid +(1 row) + SELECT o.* FROM OID_TBL o WHERE o.f1 = 1234; f1 ------ diff --git a/src/test/regress/expected/pg_lsn.out b/src/test/regress/expected/pg_lsn.out index 99a748a6a76..01501f8c9bf 100644 --- a/src/test/regress/expected/pg_lsn.out +++ b/src/test/regress/expected/pg_lsn.out @@ -26,6 +26,19 @@ INSERT INTO PG_LSN_TBL VALUES ('/ABCD'); ERROR: invalid input syntax for type pg_lsn: "/ABCD" LINE 1: INSERT INTO PG_LSN_TBL VALUES ('/ABCD'); ^ +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('16AE7F7', 'pg_lsn'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('16AE7F7', 'pg_lsn'); + pg_input_error_message +------------------------------------------------- + invalid input syntax for type pg_lsn: "16AE7F7" +(1 row) + -- Min/Max aggregation SELECT MIN(f1), MAX(f1) FROM PG_LSN_TBL; min | max diff --git a/src/test/regress/expected/privileges.out b/src/test/regress/expected/privileges.out index 169b364b22f..34c26a804a7 100644 --- a/src/test/regress/expected/privileges.out +++ b/src/test/regress/expected/privileges.out @@ -2233,6 +2233,49 @@ SELECT makeaclitem('regress_priv_user1'::regrole, 'regress_priv_user2'::regrole, SELECT makeaclitem('regress_priv_user1'::regrole, 'regress_priv_user2'::regrole, 'SELECT, fake_privilege', FALSE); -- error ERROR: unrecognized privilege type: "fake_privilege" +-- Test non-throwing aclitem I/O +SELECT pg_input_is_valid('regress_priv_user1=r/regress_priv_user2', 'aclitem'); + pg_input_is_valid +------------------- + t +(1 row) + +SELECT pg_input_is_valid('regress_priv_user1=r/', 'aclitem'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('regress_priv_user1=r/', 'aclitem'); + pg_input_error_message +--------------------------------- + a name must follow the "/" sign +(1 row) + +SELECT pg_input_is_valid('regress_priv_user1=r/regress_no_such_user', 'aclitem'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('regress_priv_user1=r/regress_no_such_user', 'aclitem'); + pg_input_error_message +-------------------------------------------- + role "regress_no_such_user" does not exist +(1 row) + +SELECT pg_input_is_valid('regress_priv_user1=rY', 'aclitem'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('regress_priv_user1=rY', 'aclitem'); + pg_input_error_message +---------------------------------------------------------- + invalid mode character: must be one of "arwdDxtXUCTcsAm" +(1 row) + -- -- Testing blanket default grants is very hazardous since it might change -- the privileges attached to objects created by concurrent regression tests. diff --git a/src/test/regress/expected/tid.out b/src/test/regress/expected/tid.out index 8cd6d605952..ff67ed43f0a 100644 --- a/src/test/regress/expected/tid.out +++ b/src/test/regress/expected/tid.out @@ -17,6 +17,31 @@ SELECT '(1,65536)'::tid; -- error ERROR: invalid input syntax for type tid: "(1,65536)" LINE 1: SELECT '(1,65536)'::tid; ^ +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('(0)', 'tid'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('(0)', 'tid'); + pg_input_error_message +------------------------------------------ + invalid input syntax for type tid: "(0)" +(1 row) + +SELECT pg_input_is_valid('(0,-1)', 'tid'); + pg_input_is_valid +------------------- + f +(1 row) + +SELECT pg_input_error_message('(0,-1)', 'tid'); + pg_input_error_message +--------------------------------------------- + invalid input syntax for type tid: "(0,-1)" +(1 row) + -- tests for functions related to TID handling CREATE TABLE tid_tab (a int); -- min() and max() for TIDs diff --git a/src/test/regress/expected/xid.out b/src/test/regress/expected/xid.out index d8e76f3321f..c7b8d299c84 100644 --- a/src/test/regress/expected/xid.out +++ b/src/test/regress/expected/xid.out @@ -181,6 +181,37 @@ select '12:16:14,13'::pg_snapshot; ERROR: invalid input syntax for type pg_snapshot: "12:16:14,13" LINE 1: select '12:16:14,13'::pg_snapshot; ^ +-- also try it with non-error-throwing API +select pg_input_is_valid('12:13:', 'pg_snapshot'); + pg_input_is_valid +------------------- + t +(1 row) + +select pg_input_is_valid('31:12:', 'pg_snapshot'); + pg_input_is_valid +------------------- + f +(1 row) + +select pg_input_error_message('31:12:', 'pg_snapshot'); + pg_input_error_message +----------------------------------------------------- + invalid input syntax for type pg_snapshot: "31:12:" +(1 row) + +select pg_input_is_valid('12:16:14,13', 'pg_snapshot'); + pg_input_is_valid +------------------- + f +(1 row) + +select pg_input_error_message('12:16:14,13', 'pg_snapshot'); + pg_input_error_message +---------------------------------------------------------- + invalid input syntax for type pg_snapshot: "12:16:14,13" +(1 row) + create temp table snapshot_test ( nr integer, snap pg_snapshot diff --git a/src/test/regress/sql/int2.sql b/src/test/regress/sql/int2.sql index ad30c2feaa1..a812235ee50 100644 --- a/src/test/regress/sql/int2.sql +++ b/src/test/regress/sql/int2.sql @@ -23,6 +23,11 @@ SELECT pg_input_is_valid('asdf', 'int2'); SELECT pg_input_is_valid('50000', 'int2'); SELECT pg_input_error_message('50000', 'int2'); +-- While we're here, check int2vector as well +SELECT pg_input_is_valid(' 1 3 5 ', 'int2vector'); +SELECT pg_input_error_message('1 asdf', 'int2vector'); +SELECT pg_input_error_message('50000', 'int2vector'); + SELECT * FROM INT2_TBL AS f(a, b); SELECT * FROM (TABLE int2_tbl) AS s (a, b); diff --git a/src/test/regress/sql/oid.sql b/src/test/regress/sql/oid.sql index 25b4b68a6a0..39937c2f1d3 100644 --- a/src/test/regress/sql/oid.sql +++ b/src/test/regress/sql/oid.sql @@ -28,6 +28,20 @@ INSERT INTO OID_TBL(f1) VALUES ('-23582358720398502385'); SELECT * FROM OID_TBL; +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('1234', 'oid'); +SELECT pg_input_is_valid('01XYZ', 'oid'); +SELECT pg_input_error_message('01XYZ', 'oid'); +SELECT pg_input_is_valid('9999999999', 'oid'); +SELECT pg_input_error_message('9999999999', 'oid'); + +-- While we're here, check oidvector as well +SELECT pg_input_is_valid(' 1 2 4 ', 'oidvector'); +SELECT pg_input_is_valid('01 01XYZ', 'oidvector'); +SELECT pg_input_error_message('01 01XYZ', 'oidvector'); +SELECT pg_input_is_valid('01 9999999999', 'oidvector'); +SELECT pg_input_error_message('01 9999999999', 'oidvector'); + SELECT o.* FROM OID_TBL o WHERE o.f1 = 1234; SELECT o.* FROM OID_TBL o WHERE o.f1 <> '1234'; diff --git a/src/test/regress/sql/pg_lsn.sql b/src/test/regress/sql/pg_lsn.sql index 615368ba960..3d57d66e0c0 100644 --- a/src/test/regress/sql/pg_lsn.sql +++ b/src/test/regress/sql/pg_lsn.sql @@ -15,6 +15,10 @@ INSERT INTO PG_LSN_TBL VALUES (' 0/12345678'); INSERT INTO PG_LSN_TBL VALUES ('ABCD/'); INSERT INTO PG_LSN_TBL VALUES ('/ABCD'); +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('16AE7F7', 'pg_lsn'); +SELECT pg_input_error_message('16AE7F7', 'pg_lsn'); + -- Min/Max aggregation SELECT MIN(f1), MAX(f1) FROM PG_LSN_TBL; diff --git a/src/test/regress/sql/privileges.sql b/src/test/regress/sql/privileges.sql index b2db1c6dd56..39aa0b4ecf7 100644 --- a/src/test/regress/sql/privileges.sql +++ b/src/test/regress/sql/privileges.sql @@ -1430,6 +1430,15 @@ SELECT makeaclitem('regress_priv_user1'::regrole, 'regress_priv_user2'::regrole, SELECT makeaclitem('regress_priv_user1'::regrole, 'regress_priv_user2'::regrole, 'SELECT, fake_privilege', FALSE); -- error +-- Test non-throwing aclitem I/O +SELECT pg_input_is_valid('regress_priv_user1=r/regress_priv_user2', 'aclitem'); +SELECT pg_input_is_valid('regress_priv_user1=r/', 'aclitem'); +SELECT pg_input_error_message('regress_priv_user1=r/', 'aclitem'); +SELECT pg_input_is_valid('regress_priv_user1=r/regress_no_such_user', 'aclitem'); +SELECT pg_input_error_message('regress_priv_user1=r/regress_no_such_user', 'aclitem'); +SELECT pg_input_is_valid('regress_priv_user1=rY', 'aclitem'); +SELECT pg_input_error_message('regress_priv_user1=rY', 'aclitem'); + -- -- Testing blanket default grants is very hazardous since it might change -- the privileges attached to objects created by concurrent regression tests. diff --git a/src/test/regress/sql/tid.sql b/src/test/regress/sql/tid.sql index 990d314a5f8..8196194c04f 100644 --- a/src/test/regress/sql/tid.sql +++ b/src/test/regress/sql/tid.sql @@ -9,6 +9,12 @@ SELECT SELECT '(4294967296,1)'::tid; -- error SELECT '(1,65536)'::tid; -- error +-- Also try it with non-error-throwing API +SELECT pg_input_is_valid('(0)', 'tid'); +SELECT pg_input_error_message('(0)', 'tid'); +SELECT pg_input_is_valid('(0,-1)', 'tid'); +SELECT pg_input_error_message('(0,-1)', 'tid'); + -- tests for functions related to TID handling diff --git a/src/test/regress/sql/xid.sql b/src/test/regress/sql/xid.sql index bee17e63643..2289803681b 100644 --- a/src/test/regress/sql/xid.sql +++ b/src/test/regress/sql/xid.sql @@ -68,6 +68,13 @@ select '0:1:'::pg_snapshot; select '12:13:0'::pg_snapshot; select '12:16:14,13'::pg_snapshot; +-- also try it with non-error-throwing API +select pg_input_is_valid('12:13:', 'pg_snapshot'); +select pg_input_is_valid('31:12:', 'pg_snapshot'); +select pg_input_error_message('31:12:', 'pg_snapshot'); +select pg_input_is_valid('12:16:14,13', 'pg_snapshot'); +select pg_input_error_message('12:16:14,13', 'pg_snapshot'); + create temp table snapshot_test ( nr integer, snap pg_snapshot |