postgresql/src/test/regress/expected/oid.out
Tom Lane 93fcbd140a Make oidin/oidout produce and consume unsigned representation of Oid,
rather than just being aliases for int4in/int4out.  Give type Oid a
full set of comparison operators that do proper unsigned comparison,
instead of reusing the int4 comparators.  Since pg_dump is now doing
unsigned comparisons of OIDs, it is now *necessary* that we play by
the rules here.  In fact, given that btoidcmp() has been doing unsigned
comparison for quite some time, it seems likely that we have index-
corruption problems in 7.0 and before once the Oid counter goes past
2G.  Fixing these operators is a necessary step before we can think
about 8-byte Oid, too.
2000-11-21 03:23:21 +00:00

76 lines
1.6 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 ('');
-- bad inputs
INSERT INTO OID_TBL(f1) VALUES ('asdfasd');
ERROR: oidin: error in "asdfasd": can't parse "asdfasd"
INSERT INTO OID_TBL(f1) VALUES ('99asdfasd');
ERROR: oidin: error in "99asdfasd": can't parse "asdfasd"
SELECT '' AS six, OID_TBL.*;
six | f1
-----+------------
| 1234
| 1235
| 987
| 4294966256
| 99999999
| 0
(6 rows)
SELECT '' AS one, o.* FROM OID_TBL o WHERE o.f1 = 1234;
one | f1
-----+------
| 1234
(1 row)
SELECT '' AS five, o.* FROM OID_TBL o WHERE o.f1 <> '1234';
five | f1
------+------------
| 1235
| 987
| 4294966256
| 99999999
| 0
(5 rows)
SELECT '' AS three, o.* FROM OID_TBL o WHERE o.f1 <= '1234';
three | f1
-------+------
| 1234
| 987
| 0
(3 rows)
SELECT '' AS two, o.* FROM OID_TBL o WHERE o.f1 < '1234';
two | f1
-----+-----
| 987
| 0
(2 rows)
SELECT '' AS four, o.* FROM OID_TBL o WHERE o.f1 >= '1234';
four | f1
------+------------
| 1234
| 1235
| 4294966256
| 99999999
(4 rows)
SELECT '' AS three, o.* FROM OID_TBL o WHERE o.f1 > '1234';
three | f1
-------+------------
| 1235
| 4294966256
| 99999999
(3 rows)
DROP TABLE OID_TBL;