postgresql/src/test/regress/expected/oid.out

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;