aboutsummaryrefslogtreecommitdiff
path: root/src/backend/commands
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/commands')
-rw-r--r--src/backend/commands/comment.c19
-rw-r--r--src/backend/commands/copy.c13
-rw-r--r--src/backend/commands/dbcommands.c10
-rw-r--r--src/backend/commands/explain.c4
-rw-r--r--src/backend/commands/functioncmds.c4
-rw-r--r--src/backend/commands/indexcmds.c8
-rw-r--r--src/backend/commands/proclang.c6
-rw-r--r--src/backend/commands/tablecmds.c10
-rw-r--r--src/backend/commands/trigger.c11
-rw-r--r--src/backend/commands/typecmds.c4
-rw-r--r--src/backend/commands/vacuum.c9
-rw-r--r--src/backend/commands/vacuumlazy.c6
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);