185 lines
5.0 KiB
Plaintext
185 lines
5.0 KiB
Plaintext
--
|
|
-- OID
|
|
--
|
|
CREATE TABLE OID_TBL(f1 oid);
|
|
INSERT INTO OID_TBL(f1) VALUES ('1234');
|
|
INSERT INTO OID_TBL(f1) VALUES ('1235');
|
|
INSERT INTO OID_TBL(f1) VALUES ('987');
|
|
INSERT INTO OID_TBL(f1) VALUES ('-1040');
|
|
INSERT INTO OID_TBL(f1) VALUES ('99999999');
|
|
INSERT INTO OID_TBL(f1) VALUES ('5 ');
|
|
INSERT INTO OID_TBL(f1) VALUES (' 10 ');
|
|
-- leading/trailing hard tab is also allowed
|
|
INSERT INTO OID_TBL(f1) VALUES (' 15 ');
|
|
-- bad inputs
|
|
INSERT INTO OID_TBL(f1) VALUES ('');
|
|
ERROR: invalid input syntax for type oid: ""
|
|
LINE 1: INSERT INTO OID_TBL(f1) VALUES ('');
|
|
^
|
|
INSERT INTO OID_TBL(f1) VALUES (' ');
|
|
ERROR: invalid input syntax for type oid: " "
|
|
LINE 1: INSERT INTO OID_TBL(f1) VALUES (' ');
|
|
^
|
|
INSERT INTO OID_TBL(f1) VALUES ('asdfasd');
|
|
ERROR: invalid input syntax for type oid: "asdfasd"
|
|
LINE 1: INSERT INTO OID_TBL(f1) VALUES ('asdfasd');
|
|
^
|
|
INSERT INTO OID_TBL(f1) VALUES ('99asdfasd');
|
|
ERROR: invalid input syntax for type oid: "99asdfasd"
|
|
LINE 1: INSERT INTO OID_TBL(f1) VALUES ('99asdfasd');
|
|
^
|
|
INSERT INTO OID_TBL(f1) VALUES ('5 d');
|
|
ERROR: invalid input syntax for type oid: "5 d"
|
|
LINE 1: INSERT INTO OID_TBL(f1) VALUES ('5 d');
|
|
^
|
|
INSERT INTO OID_TBL(f1) VALUES (' 5d');
|
|
ERROR: invalid input syntax for type oid: " 5d"
|
|
LINE 1: INSERT INTO OID_TBL(f1) VALUES (' 5d');
|
|
^
|
|
INSERT INTO OID_TBL(f1) VALUES ('5 5');
|
|
ERROR: invalid input syntax for type oid: "5 5"
|
|
LINE 1: INSERT INTO OID_TBL(f1) VALUES ('5 5');
|
|
^
|
|
INSERT INTO OID_TBL(f1) VALUES (' - 500');
|
|
ERROR: invalid input syntax for type oid: " - 500"
|
|
LINE 1: INSERT INTO OID_TBL(f1) VALUES (' - 500');
|
|
^
|
|
INSERT INTO OID_TBL(f1) VALUES ('32958209582039852935');
|
|
ERROR: value "32958209582039852935" is out of range for type oid
|
|
LINE 1: INSERT INTO OID_TBL(f1) VALUES ('32958209582039852935');
|
|
^
|
|
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 * FROM OID_TBL;
|
|
f1
|
|
------------
|
|
1234
|
|
1235
|
|
987
|
|
4294966256
|
|
99999999
|
|
5
|
|
10
|
|
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 * FROM pg_input_error_info('01XYZ', 'oid');
|
|
message | detail | hint | sql_error_code
|
|
--------------------------------------------+--------+------+----------------
|
|
invalid input syntax for type oid: "01XYZ" | | | 22P02
|
|
(1 row)
|
|
|
|
SELECT pg_input_is_valid('9999999999', 'oid');
|
|
pg_input_is_valid
|
|
-------------------
|
|
f
|
|
(1 row)
|
|
|
|
SELECT * FROM pg_input_error_info('9999999999', 'oid');
|
|
message | detail | hint | sql_error_code
|
|
-------------------------------------------------+--------+------+----------------
|
|
value "9999999999" is out of range for type oid | | | 22003
|
|
(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 * FROM pg_input_error_info('01 01XYZ', 'oidvector');
|
|
message | detail | hint | sql_error_code
|
|
------------------------------------------+--------+------+----------------
|
|
invalid input syntax for type oid: "XYZ" | | | 22P02
|
|
(1 row)
|
|
|
|
SELECT pg_input_is_valid('01 9999999999', 'oidvector');
|
|
pg_input_is_valid
|
|
-------------------
|
|
f
|
|
(1 row)
|
|
|
|
SELECT * FROM pg_input_error_info('01 9999999999', 'oidvector');
|
|
message | detail | hint | sql_error_code
|
|
-------------------------------------------------+--------+------+----------------
|
|
value "9999999999" is out of range for type oid | | | 22003
|
|
(1 row)
|
|
|
|
SELECT o.* FROM OID_TBL o WHERE o.f1 = 1234;
|
|
f1
|
|
------
|
|
1234
|
|
(1 row)
|
|
|
|
SELECT o.* FROM OID_TBL o WHERE o.f1 <> '1234';
|
|
f1
|
|
------------
|
|
1235
|
|
987
|
|
4294966256
|
|
99999999
|
|
5
|
|
10
|
|
15
|
|
(7 rows)
|
|
|
|
SELECT o.* FROM OID_TBL o WHERE o.f1 <= '1234';
|
|
f1
|
|
------
|
|
1234
|
|
987
|
|
5
|
|
10
|
|
15
|
|
(5 rows)
|
|
|
|
SELECT o.* FROM OID_TBL o WHERE o.f1 < '1234';
|
|
f1
|
|
-----
|
|
987
|
|
5
|
|
10
|
|
15
|
|
(4 rows)
|
|
|
|
SELECT o.* FROM OID_TBL o WHERE o.f1 >= '1234';
|
|
f1
|
|
------------
|
|
1234
|
|
1235
|
|
4294966256
|
|
99999999
|
|
(4 rows)
|
|
|
|
SELECT o.* FROM OID_TBL o WHERE o.f1 > '1234';
|
|
f1
|
|
------------
|
|
1235
|
|
4294966256
|
|
99999999
|
|
(3 rows)
|
|
|
|
DROP TABLE OID_TBL;
|