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