diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2001-08-10 18:57:42 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2001-08-10 18:57:42 +0000 |
commit | bf56f0759bdfa87f143c3abd09f893a5f530fe88 (patch) | |
tree | 10555a5e46bcfdfd9799b8f0e13ab48101d766de /src/backend/utils/cache | |
parent | d062f0f4e91f68b1f55b04691bd92d1efc83dc54 (diff) | |
download | postgresql-bf56f0759bdfa87f143c3abd09f893a5f530fe88.tar.gz postgresql-bf56f0759bdfa87f143c3abd09f893a5f530fe88.zip |
Make OIDs optional, per discussions in pghackers. WITH OIDS is still the
default, but OIDS are removed from many system catalogs that don't need them.
Some interesting side effects: TOAST pointers are 20 bytes not 32 now;
pg_description has a three-column key instead of one.
Bugs fixed in passing: BINARY cursors work again; pg_class.relhaspkey
has some usefulness; pg_dump dumps comments on indexes, rules, and
triggers in a valid order.
initdb forced.
Diffstat (limited to 'src/backend/utils/cache')
-rw-r--r-- | src/backend/utils/cache/relcache.c | 4 | ||||
-rw-r--r-- | src/backend/utils/cache/syscache.c | 24 |
2 files changed, 26 insertions, 2 deletions
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c index 670cdf6ddaa..481db43c7de 100644 --- a/src/backend/utils/cache/relcache.c +++ b/src/backend/utils/cache/relcache.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.141 2001/06/29 21:08:25 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.142 2001/08/10 18:57:37 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1211,6 +1211,7 @@ formrdesc(char *relationName, relation->rd_rel->relpages = 1; relation->rd_rel->reltuples = 1; relation->rd_rel->relkind = RELKIND_RELATION; + relation->rd_rel->relhasoids = true; relation->rd_rel->relnatts = (int16) natts; /* @@ -1988,6 +1989,7 @@ RelationBuildLocalRelation(const char *relname, strcpy(RelationGetPhysicalRelationName(rel), relname); rel->rd_rel->relkind = RELKIND_UNCATALOGED; + rel->rd_rel->relhasoids = true; rel->rd_rel->relnatts = natts; rel->rd_rel->reltype = InvalidOid; if (tupDesc->constr) diff --git a/src/backend/utils/cache/syscache.c b/src/backend/utils/cache/syscache.c index 0e64aacf61e..a407d39f5d0 100644 --- a/src/backend/utils/cache/syscache.c +++ b/src/backend/utils/cache/syscache.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.63 2001/06/18 03:35:07 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.64 2001/08/10 18:57:37 tgl Exp $ * * NOTES * These routines allow the parser/planner/executor to perform @@ -486,6 +486,28 @@ SearchSysCacheCopy(int cacheId, } /* + * SearchSysCacheExists + * + * A convenience routine that just probes to see if a tuple can be found. + * No lock is retained on the syscache entry. + */ +bool +SearchSysCacheExists(int cacheId, + Datum key1, + Datum key2, + Datum key3, + Datum key4) +{ + HeapTuple tuple; + + tuple = SearchSysCache(cacheId, key1, key2, key3, key4); + if (!HeapTupleIsValid(tuple)) + return false; + ReleaseSysCache(tuple); + return true; +} + +/* * GetSysCacheOid * * A convenience routine that does SearchSysCache and returns the OID |