diff options
Diffstat (limited to 'src/backend/commands')
-rw-r--r-- | src/backend/commands/comment.c | 19 | ||||
-rw-r--r-- | src/backend/commands/copy.c | 13 | ||||
-rw-r--r-- | src/backend/commands/dbcommands.c | 10 | ||||
-rw-r--r-- | src/backend/commands/explain.c | 4 | ||||
-rw-r--r-- | src/backend/commands/functioncmds.c | 4 | ||||
-rw-r--r-- | src/backend/commands/indexcmds.c | 8 | ||||
-rw-r--r-- | src/backend/commands/proclang.c | 6 | ||||
-rw-r--r-- | src/backend/commands/tablecmds.c | 10 | ||||
-rw-r--r-- | src/backend/commands/trigger.c | 11 | ||||
-rw-r--r-- | src/backend/commands/typecmds.c | 4 | ||||
-rw-r--r-- | src/backend/commands/vacuum.c | 9 | ||||
-rw-r--r-- | src/backend/commands/vacuumlazy.c | 6 |
12 files changed, 63 insertions, 41 deletions
diff --git a/src/backend/commands/comment.c b/src/backend/commands/comment.c index aede51e0c98..83b8af7e6bf 100644 --- a/src/backend/commands/comment.c +++ b/src/backend/commands/comment.c @@ -7,7 +7,7 @@ * Copyright (c) 1996-2001, PostgreSQL Global Development Group * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/comment.c,v 1.51 2002/07/14 23:38:13 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/comment.c,v 1.52 2002/07/20 05:16:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -435,7 +435,8 @@ CommentDatabase(List *qualname, char *comment) if (!HeapTupleIsValid(dbtuple)) elog(ERROR, "database \"%s\" does not exist", database); - oid = dbtuple->t_data->t_oid; + AssertTupleDescHasOid(pg_database->rd_att); + oid = HeapTupleGetOid(dbtuple); /* Allow if the user matches the database dba or is a superuser */ @@ -481,7 +482,8 @@ CommentNamespace(List *qualname, char *comment) elog(ERROR, "CommentSchema: Schema \"%s\" could not be found", namespace); - oid = tp->t_data->t_oid; + /* no TupleDesc here to Assert(...->tdhasoid); */ + oid = HeapTupleGetOid(tp); /* Check object security */ if (!pg_namespace_ownercheck(oid, GetUserId())) @@ -552,7 +554,8 @@ CommentRule(List *qualname, char *comment) if (HeapTupleIsValid(tuple)) { reloid = ((Form_pg_rewrite) GETSTRUCT(tuple))->ev_class; - ruleoid = tuple->t_data->t_oid; + AssertTupleDescHasOid(RewriteRelation->rd_att); + ruleoid = HeapTupleGetOid(tuple); } else { @@ -592,7 +595,8 @@ CommentRule(List *qualname, char *comment) if (!HeapTupleIsValid(tuple)) elog(ERROR, "rule \"%s\" does not exist", rulename); Assert(reloid == ((Form_pg_rewrite) GETSTRUCT(tuple))->ev_class); - ruleoid = tuple->t_data->t_oid; + AssertTupleDescHasOid(relation->rd_att); + ruleoid = HeapTupleGetOid(tuple); ReleaseSysCache(tuple); } @@ -805,7 +809,8 @@ CommentTrigger(List *qualname, char *comment) elog(ERROR, "trigger \"%s\" for relation \"%s\" does not exist", trigname, RelationGetRelationName(relation)); - oid = triggertuple->t_data->t_oid; + AssertTupleDescHasOid(pg_trigger->rd_att); + oid = HeapTupleGetOid(triggertuple); systable_endscan(scan); @@ -880,7 +885,7 @@ CommentConstraint(List *qualname, char *comment) if (OidIsValid(conOid)) elog(ERROR, "Relation \"%s\" has multiple constraints named \"%s\"", RelationGetRelationName(relation), conName); - conOid = tuple->t_data->t_oid; + conOid = HeapTupleGetOid(tuple); } } diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index 438126a3e18..272e45d384e 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.159 2002/07/18 04:43:50 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/copy.c,v 1.160 2002/07/20 05:16:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -614,9 +614,13 @@ CopyTo(Relation rel, List *attlist, bool binary, bool oids, /* Send OID if wanted --- note fld_count doesn't include it */ if (oids) { + Oid oid; + + AssertTupleDescHasOid(tupDesc); + oid = HeapTupleGetOid(tuple); fld_size = sizeof(Oid); CopySendData(&fld_size, sizeof(int16), fp); - CopySendData(&tuple->t_data->t_oid, sizeof(Oid), fp); + CopySendData(&oid, sizeof(Oid), fp); } } else @@ -624,8 +628,9 @@ CopyTo(Relation rel, List *attlist, bool binary, bool oids, /* Text format has no per-tuple header, but send OID if wanted */ if (oids) { + AssertTupleDescHasOid(tupDesc); string = DatumGetCString(DirectFunctionCall1(oidout, - ObjectIdGetDatum(tuple->t_data->t_oid))); + ObjectIdGetDatum(HeapTupleGetOid(tuple)))); CopySendString(string, fp); pfree(string); need_delim = true; @@ -1069,7 +1074,7 @@ CopyFrom(Relation rel, List *attlist, bool binary, bool oids, tuple = heap_formtuple(tupDesc, values, nulls); if (oids && file_has_oids) - tuple->t_data->t_oid = loaded_oid; + HeapTupleSetOid(tuple, loaded_oid); skip_tuple = false; diff --git a/src/backend/commands/dbcommands.c b/src/backend/commands/dbcommands.c index c6bbb371860..2c401a6dbdc 100644 --- a/src/backend/commands/dbcommands.c +++ b/src/backend/commands/dbcommands.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.96 2002/07/12 18:43:15 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.97 2002/07/20 05:16:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -341,7 +341,8 @@ createdb(const CreatedbStmt *stmt) tuple = heap_formtuple(pg_database_dsc, new_record, new_record_nulls); - tuple->t_data->t_oid = dboid; /* override heap_insert's OID + AssertTupleDescHasOid(pg_database_dsc); + HeapTupleSetOid(tuple, dboid); /* override heap_insert's OID * selection */ simple_heap_insert(pg_database_rel, tuple); @@ -616,7 +617,10 @@ get_db_info(const char *name, Oid *dbIdP, int4 *ownerIdP, /* oid of the database */ if (dbIdP) - *dbIdP = tuple->t_data->t_oid; + { + AssertTupleDescHasOid(relation->rd_att); + *dbIdP = HeapTupleGetOid(tuple); + } /* sysid of the owner */ if (ownerIdP) *ownerIdP = dbform->datdba; diff --git a/src/backend/commands/explain.c b/src/backend/commands/explain.c index b14ae4274f6..2c90df205af 100644 --- a/src/backend/commands/explain.c +++ b/src/backend/commands/explain.c @@ -5,7 +5,7 @@ * Portions Copyright (c) 1996-2002, PostgreSQL Global Development Group * Portions Copyright (c) 1994-5, Regents of the University of California * - * $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.80 2002/06/20 20:29:27 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/explain.c,v 1.81 2002/07/20 05:16:57 momjian Exp $ * */ @@ -855,7 +855,7 @@ begin_text_output(CommandDest dest, char *title) tstate = (TextOutputState *) palloc(sizeof(TextOutputState)); /* need a tuple descriptor representing a single TEXT column */ - tupdesc = CreateTemplateTupleDesc(1); + tupdesc = CreateTemplateTupleDesc(1, WITHOUTOID); TupleDescInitEntry(tupdesc, (AttrNumber) 1, title, TEXTOID, -1, 0, false); diff --git a/src/backend/commands/functioncmds.c b/src/backend/commands/functioncmds.c index 2ed9581b665..e4e89a8d755 100644 --- a/src/backend/commands/functioncmds.c +++ b/src/backend/commands/functioncmds.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/functioncmds.c,v 1.9 2002/07/18 23:11:27 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/functioncmds.c,v 1.10 2002/07/20 05:16:57 momjian Exp $ * * DESCRIPTION * These routines take the parse tree and pick out the @@ -425,7 +425,7 @@ CreateFunction(CreateFunctionStmt *stmt) if (!HeapTupleIsValid(languageTuple)) elog(ERROR, "language \"%s\" does not exist", languageName); - languageOid = languageTuple->t_data->t_oid; + languageOid = HeapTupleGetOid(languageTuple); languageStruct = (Form_pg_language) GETSTRUCT(languageTuple); if (languageStruct->lanpltrusted) diff --git a/src/backend/commands/indexcmds.c b/src/backend/commands/indexcmds.c index 5cf03bd11aa..f36bad8ada1 100644 --- a/src/backend/commands/indexcmds.c +++ b/src/backend/commands/indexcmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.77 2002/07/12 18:43:16 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/indexcmds.c,v 1.78 2002/07/20 05:16:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -141,7 +141,7 @@ DefineIndex(RangeVar *heapRelation, if (!HeapTupleIsValid(tuple)) elog(ERROR, "DefineIndex: access method \"%s\" not found", accessMethodName); - accessMethodId = tuple->t_data->t_oid; + accessMethodId = HeapTupleGetOid(tuple); accessMethodForm = (Form_pg_am) GETSTRUCT(tuple); if (unique && !accessMethodForm->amcanunique) @@ -496,7 +496,7 @@ GetAttrOpClass(IndexElem *attribute, Oid attrType, * Verify that the index operator class accepts this * datatype. Note we will accept binary compatibility. */ - opClassId = tuple->t_data->t_oid; + opClassId = HeapTupleGetOid(tuple); opInputType = ((Form_pg_opclass) GETSTRUCT(tuple))->opcintype; if (!IsBinaryCompatible(attrType, opInputType)) @@ -761,7 +761,7 @@ ReindexDatabase(const char *dbname, bool force, bool all) relids = repalloc(relids, sizeof(Oid) * relalc); } MemoryContextSwitchTo(old); - relids[relcnt] = tuple->t_data->t_oid; + relids[relcnt] = HeapTupleGetOid(tuple); relcnt++; } } diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c index 98b61324262..5dd70e9e55f 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/proclang.c,v 1.36 2002/07/16 22:12:19 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/proclang.c,v 1.37 2002/07/20 05:16:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -134,7 +134,7 @@ CreateProceduralLanguage(CreatePLangStmt *stmt) * Create dependencies for language */ myself.classId = RelationGetRelid(rel); - myself.objectId = tup->t_data->t_oid; + myself.objectId = HeapTupleGetOid(tup); myself.objectSubId = 0; /* dependency on the PL handler function */ @@ -191,7 +191,7 @@ DropProceduralLanguage(DropPLangStmt *stmt) languageName); object.classId = get_system_catalog_relid(LanguageRelationName); - object.objectId = langTup->t_data->t_oid; + object.objectId = HeapTupleGetOid(langTup); object.objectSubId = 0; ReleaseSysCache(langTup); diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 391adb04225..6b943723bb8 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/tablecmds.c,v 1.23 2002/07/16 22:12:19 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/tablecmds.c,v 1.24 2002/07/20 05:16:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -149,6 +149,7 @@ DefineRelation(CreateStmt *stmt, char relkind) * have to copy inherited constraints here.) */ descriptor = BuildDescForRelation(schema); + descriptor->tdhasoid = BoolToHasOid(stmt->hasoids || parentHasOids); if (old_constraints != NIL) { @@ -1658,6 +1659,7 @@ AlterTableAddColumn(Oid myrelid, tform = (Form_pg_type) GETSTRUCT(typeTuple); attributeTuple = heap_addheader(Natts_pg_attribute, + false, ATTRIBUTE_TUPLE_SIZE, (void *) &attributeD); @@ -1665,7 +1667,7 @@ AlterTableAddColumn(Oid myrelid, attribute->attrelid = myrelid; namestrcpy(&(attribute->attname), colDef->colname); - attribute->atttypid = typeTuple->t_data->t_oid; + attribute->atttypid = HeapTupleGetOid(typeTuple); attribute->attstattarget = DEFAULT_ATTSTATTARGET; attribute->attlen = tform->typlen; attribute->attcacheoff = -1; @@ -1682,6 +1684,7 @@ AlterTableAddColumn(Oid myrelid, ReleaseSysCache(typeTuple); + AssertTupleDescHasNoOid(attrdesc->rd_att); simple_heap_insert(attrdesc, attributeTuple); /* Update indexes on pg_attribute */ @@ -1702,6 +1705,7 @@ AlterTableAddColumn(Oid myrelid, newreltup = heap_copytuple(reltup); ((Form_pg_class) GETSTRUCT(newreltup))->relnatts = maxatts; + AssertTupleDescHasOid(pgclass->rd_att); simple_heap_update(pgclass, &newreltup->t_self, newreltup); /* keep catalog indices current */ @@ -3299,7 +3303,7 @@ AlterTableCreateToastTable(Oid relOid, bool silent) sprintf(toast_idxname, "pg_toast_%u_index", relOid); /* this is pretty painful... need a tuple descriptor */ - tupdesc = CreateTemplateTupleDesc(3); + tupdesc = CreateTemplateTupleDesc(3, WITHOUTOID); TupleDescInitEntry(tupdesc, (AttrNumber) 1, "chunk_id", OIDOID, diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index b27dd0f4380..4c2ee626fe0 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -7,7 +7,7 @@ * Portions Copyright (c) 1994, Regents of the University of California * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.121 2002/07/12 18:43:16 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/trigger.c,v 1.122 2002/07/20 05:16:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -400,8 +400,9 @@ DropTrigger(Oid relid, const char *trigname, DropBehavior behavior) if (!pg_class_ownercheck(relid, GetUserId())) aclcheck_error(ACLCHECK_NOT_OWNER, get_rel_name(relid)); + AssertTupleDescHasOid(tgrel->rd_att); object.classId = RelationGetRelid(tgrel); - object.objectId = tup->t_data->t_oid; + object.objectId = HeapTupleGetOid(tup); object.objectSubId = 0; systable_endscan(tgscan); @@ -671,7 +672,8 @@ RelationBuildTriggers(Relation relation) RelationGetRelationName(relation)); build = &(triggers[found]); - build->tgoid = htup->t_data->t_oid; + AssertTupleDescHasOid(tgrel->rd_att); + build->tgoid = HeapTupleGetOid(htup); build->tgname = MemoryContextStrdup(CacheMemoryContext, DatumGetCString(DirectFunctionCall1(nameout, NameGetDatum(&pg_trigger->tgname)))); @@ -1932,7 +1934,8 @@ DeferredTriggerSetState(ConstraintsSetStmt *stmt) elog(ERROR, "Constraint '%s' is not deferrable", cname); - constr_oid = htup->t_data->t_oid; + AssertTupleDescHasOid(tgrel->rd_att); + constr_oid = HeapTupleGetOid(htup); loid = lappendi(loid, constr_oid); found = true; } diff --git a/src/backend/commands/typecmds.c b/src/backend/commands/typecmds.c index c94b67883be..d387e17d5bb 100644 --- a/src/backend/commands/typecmds.c +++ b/src/backend/commands/typecmds.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/typecmds.c,v 1.6 2002/07/16 22:12:19 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/typecmds.c,v 1.7 2002/07/20 05:16:57 momjian Exp $ * * DESCRIPTION * The "DefineFoo" routines take the parse tree and pick out the @@ -396,7 +396,7 @@ DefineDomain(CreateDomainStmt *stmt) typeTup = typenameType(stmt->typename); baseType = (Form_pg_type) GETSTRUCT(typeTup); - basetypeoid = typeTup->t_data->t_oid; + basetypeoid = HeapTupleGetOid(typeTup); /* * What we really don't want is domains of domains. This could cause all sorts diff --git a/src/backend/commands/vacuum.c b/src/backend/commands/vacuum.c index 1809981486f..c893ea86a09 100644 --- a/src/backend/commands/vacuum.c +++ b/src/backend/commands/vacuum.c @@ -13,7 +13,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.231 2002/07/20 04:57:13 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/vacuum.c,v 1.232 2002/07/20 05:16:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -392,7 +392,8 @@ getrels(const RangeVar *vacrel, const char *stmttype) { /* Make a relation list entry for this guy */ oldcontext = MemoryContextSwitchTo(vac_context); - vrl = lappendi(vrl, tuple->t_data->t_oid); + AssertTupleDescHasOid(pgclass->rd_att); + vrl = lappendi(vrl, HeapTupleGetOid(tuple)); MemoryContextSwitchTo(oldcontext); } @@ -1172,8 +1173,8 @@ scan_heap(VRelStats *vacrelstats, Relation onerel, /* * Other checks... */ - if (!OidIsValid(tuple.t_data->t_oid) && - onerel->rd_rel->relhasoids) + if (onerel->rd_rel->relhasoids && + !OidIsValid(HeapTupleGetOid(&tuple))) elog(WARNING, "Rel %s: TID %u/%u: OID IS INVALID. TUPGONE %d.", relname, blkno, offnum, (int) tupgone); diff --git a/src/backend/commands/vacuumlazy.c b/src/backend/commands/vacuumlazy.c index 7e3b82fdd74..bbf9e39ae80 100644 --- a/src/backend/commands/vacuumlazy.c +++ b/src/backend/commands/vacuumlazy.c @@ -31,7 +31,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v 1.16 2002/06/20 20:29:27 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/vacuumlazy.c,v 1.17 2002/07/20 05:16:57 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -368,8 +368,8 @@ lazy_scan_heap(Relation onerel, LVRelStats *vacrelstats, /* * Other checks... */ - if (!OidIsValid(tuple.t_data->t_oid) && - onerel->rd_rel->relhasoids) + if (onerel->rd_rel->relhasoids && + !OidIsValid(HeapTupleGetOid(&tuple))) elog(WARNING, "Rel %s: TID %u/%u: OID IS INVALID. TUPGONE %d.", relname, blkno, offnum, (int) tupgone); |