-- -- 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;