mirror of
https://git.postgresql.org/git/postgresql.git
synced 2024-12-09 08:10:09 +08:00
Change heap_modifytuple() to require a TupleDesc rather than a
Relation. Patch from Alvaro Herrera, minor editorializing by Neil Conway.
This commit is contained in:
parent
728775d781
commit
a885ecd6ef
@ -9,7 +9,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.95 2004/12/31 21:59:07 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.96 2005/01/27 23:23:49 neilc Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* The old interface functions have been converted to macros
|
* The old interface functions have been converted to macros
|
||||||
@ -662,19 +662,15 @@ heap_formtuple(TupleDesc tupleDescriptor,
|
|||||||
*
|
*
|
||||||
* forms a new tuple from an old tuple and a set of replacement values.
|
* forms a new tuple from an old tuple and a set of replacement values.
|
||||||
* returns a new palloc'ed tuple.
|
* returns a new palloc'ed tuple.
|
||||||
*
|
|
||||||
* XXX it is misdesign that this is passed a Relation and not just a
|
|
||||||
* TupleDesc to describe the tuple structure.
|
|
||||||
* ----------------
|
* ----------------
|
||||||
*/
|
*/
|
||||||
HeapTuple
|
HeapTuple
|
||||||
heap_modifytuple(HeapTuple tuple,
|
heap_modifytuple(HeapTuple tuple,
|
||||||
Relation relation,
|
TupleDesc tupleDesc,
|
||||||
Datum *replValues,
|
Datum *replValues,
|
||||||
char *replNulls,
|
char *replNulls,
|
||||||
char *replActions)
|
char *replActions)
|
||||||
{
|
{
|
||||||
TupleDesc tupleDesc = RelationGetDescr(relation);
|
|
||||||
int numberOfAttributes = tupleDesc->natts;
|
int numberOfAttributes = tupleDesc->natts;
|
||||||
int attoff;
|
int attoff;
|
||||||
Datum *values;
|
Datum *values;
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.108 2004/12/31 21:59:38 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/catalog/aclchk.c,v 1.109 2005/01/27 23:23:51 neilc Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* See acl.h.
|
* See acl.h.
|
||||||
@ -373,7 +373,7 @@ ExecuteGrantStmt_Relation(GrantStmt *stmt)
|
|||||||
replaces[Anum_pg_class_relacl - 1] = 'r';
|
replaces[Anum_pg_class_relacl - 1] = 'r';
|
||||||
values[Anum_pg_class_relacl - 1] = PointerGetDatum(new_acl);
|
values[Anum_pg_class_relacl - 1] = PointerGetDatum(new_acl);
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tuple, relation, values, nulls, replaces);
|
newtuple = heap_modifytuple(tuple, RelationGetDescr(relation), values, nulls, replaces);
|
||||||
|
|
||||||
ReleaseSysCache(tuple);
|
ReleaseSysCache(tuple);
|
||||||
|
|
||||||
@ -531,7 +531,7 @@ ExecuteGrantStmt_Database(GrantStmt *stmt)
|
|||||||
replaces[Anum_pg_database_datacl - 1] = 'r';
|
replaces[Anum_pg_database_datacl - 1] = 'r';
|
||||||
values[Anum_pg_database_datacl - 1] = PointerGetDatum(new_acl);
|
values[Anum_pg_database_datacl - 1] = PointerGetDatum(new_acl);
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tuple, relation, values, nulls, replaces);
|
newtuple = heap_modifytuple(tuple, RelationGetDescr(relation), values, nulls, replaces);
|
||||||
|
|
||||||
simple_heap_update(relation, &newtuple->t_self, newtuple);
|
simple_heap_update(relation, &newtuple->t_self, newtuple);
|
||||||
|
|
||||||
@ -685,7 +685,7 @@ ExecuteGrantStmt_Function(GrantStmt *stmt)
|
|||||||
replaces[Anum_pg_proc_proacl - 1] = 'r';
|
replaces[Anum_pg_proc_proacl - 1] = 'r';
|
||||||
values[Anum_pg_proc_proacl - 1] = PointerGetDatum(new_acl);
|
values[Anum_pg_proc_proacl - 1] = PointerGetDatum(new_acl);
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tuple, relation, values, nulls, replaces);
|
newtuple = heap_modifytuple(tuple, RelationGetDescr(relation), values, nulls, replaces);
|
||||||
|
|
||||||
ReleaseSysCache(tuple);
|
ReleaseSysCache(tuple);
|
||||||
|
|
||||||
@ -848,7 +848,7 @@ ExecuteGrantStmt_Language(GrantStmt *stmt)
|
|||||||
replaces[Anum_pg_language_lanacl - 1] = 'r';
|
replaces[Anum_pg_language_lanacl - 1] = 'r';
|
||||||
values[Anum_pg_language_lanacl - 1] = PointerGetDatum(new_acl);
|
values[Anum_pg_language_lanacl - 1] = PointerGetDatum(new_acl);
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tuple, relation, values, nulls, replaces);
|
newtuple = heap_modifytuple(tuple, RelationGetDescr(relation), values, nulls, replaces);
|
||||||
|
|
||||||
ReleaseSysCache(tuple);
|
ReleaseSysCache(tuple);
|
||||||
|
|
||||||
@ -1002,7 +1002,7 @@ ExecuteGrantStmt_Namespace(GrantStmt *stmt)
|
|||||||
replaces[Anum_pg_namespace_nspacl - 1] = 'r';
|
replaces[Anum_pg_namespace_nspacl - 1] = 'r';
|
||||||
values[Anum_pg_namespace_nspacl - 1] = PointerGetDatum(new_acl);
|
values[Anum_pg_namespace_nspacl - 1] = PointerGetDatum(new_acl);
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tuple, relation, values, nulls, replaces);
|
newtuple = heap_modifytuple(tuple, RelationGetDescr(relation), values, nulls, replaces);
|
||||||
|
|
||||||
ReleaseSysCache(tuple);
|
ReleaseSysCache(tuple);
|
||||||
|
|
||||||
@ -1160,7 +1160,7 @@ ExecuteGrantStmt_Tablespace(GrantStmt *stmt)
|
|||||||
replaces[Anum_pg_tablespace_spcacl - 1] = 'r';
|
replaces[Anum_pg_tablespace_spcacl - 1] = 'r';
|
||||||
values[Anum_pg_tablespace_spcacl - 1] = PointerGetDatum(new_acl);
|
values[Anum_pg_tablespace_spcacl - 1] = PointerGetDatum(new_acl);
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tuple, relation, values, nulls, replaces);
|
newtuple = heap_modifytuple(tuple, RelationGetDescr(relation), values, nulls, replaces);
|
||||||
|
|
||||||
simple_heap_update(relation, &newtuple->t_self, newtuple);
|
simple_heap_update(relation, &newtuple->t_self, newtuple);
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/catalog/pg_operator.c,v 1.87 2004/12/31 21:59:38 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/catalog/pg_operator.c,v 1.88 2005/01/27 23:23:51 neilc Exp $
|
||||||
*
|
*
|
||||||
* NOTES
|
* NOTES
|
||||||
* these routines moved here from commands/define.c and somewhat cleaned up.
|
* these routines moved here from commands/define.c and somewhat cleaned up.
|
||||||
@ -637,7 +637,7 @@ OperatorCreate(const char *operatorName,
|
|||||||
operatorObjectId);
|
operatorObjectId);
|
||||||
|
|
||||||
tup = heap_modifytuple(tup,
|
tup = heap_modifytuple(tup,
|
||||||
pg_operator_desc,
|
RelationGetDescr(pg_operator_desc),
|
||||||
values,
|
values,
|
||||||
nulls,
|
nulls,
|
||||||
replaces);
|
replaces);
|
||||||
@ -807,7 +807,7 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId)
|
|||||||
}
|
}
|
||||||
|
|
||||||
tup = heap_modifytuple(tup,
|
tup = heap_modifytuple(tup,
|
||||||
pg_operator_desc,
|
RelationGetDescr(pg_operator_desc),
|
||||||
values,
|
values,
|
||||||
nulls,
|
nulls,
|
||||||
replaces);
|
replaces);
|
||||||
@ -832,7 +832,7 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId)
|
|||||||
replaces[Anum_pg_operator_oprcom - 1] = 'r';
|
replaces[Anum_pg_operator_oprcom - 1] = 'r';
|
||||||
|
|
||||||
tup = heap_modifytuple(tup,
|
tup = heap_modifytuple(tup,
|
||||||
pg_operator_desc,
|
RelationGetDescr(pg_operator_desc),
|
||||||
values,
|
values,
|
||||||
nulls,
|
nulls,
|
||||||
replaces);
|
replaces);
|
||||||
@ -858,7 +858,7 @@ OperatorUpd(Oid baseId, Oid commId, Oid negId)
|
|||||||
replaces[Anum_pg_operator_oprnegate - 1] = 'r';
|
replaces[Anum_pg_operator_oprnegate - 1] = 'r';
|
||||||
|
|
||||||
tup = heap_modifytuple(tup,
|
tup = heap_modifytuple(tup,
|
||||||
pg_operator_desc,
|
RelationGetDescr(pg_operator_desc),
|
||||||
values,
|
values,
|
||||||
nulls,
|
nulls,
|
||||||
replaces);
|
replaces);
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/catalog/pg_proc.c,v 1.122 2004/12/31 21:59:38 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/catalog/pg_proc.c,v 1.123 2005/01/27 23:23:51 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -180,7 +180,7 @@ ProcedureCreate(const char *procedureName,
|
|||||||
/* proacl will be handled below */
|
/* proacl will be handled below */
|
||||||
|
|
||||||
rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
|
rel = heap_openr(ProcedureRelationName, RowExclusiveLock);
|
||||||
tupDesc = rel->rd_att;
|
tupDesc = RelationGetDescr(rel);
|
||||||
|
|
||||||
/* Check for pre-existing definition */
|
/* Check for pre-existing definition */
|
||||||
oldtup = SearchSysCache(PROCNAMENSP,
|
oldtup = SearchSysCache(PROCNAMENSP,
|
||||||
@ -234,7 +234,7 @@ ProcedureCreate(const char *procedureName,
|
|||||||
replaces[Anum_pg_proc_proacl - 1] = ' ';
|
replaces[Anum_pg_proc_proacl - 1] = ' ';
|
||||||
|
|
||||||
/* Okay, do it... */
|
/* Okay, do it... */
|
||||||
tup = heap_modifytuple(oldtup, rel, values, nulls, replaces);
|
tup = heap_modifytuple(oldtup, tupDesc, values, nulls, replaces);
|
||||||
simple_heap_update(rel, &tup->t_self, tup);
|
simple_heap_update(rel, &tup->t_self, tup);
|
||||||
|
|
||||||
ReleaseSysCache(oldtup);
|
ReleaseSysCache(oldtup);
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.97 2004/12/31 21:59:38 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/catalog/pg_type.c,v 1.98 2005/01/27 23:23:51 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -179,7 +179,6 @@ TypeCreate(const char *typeName,
|
|||||||
char replaces[Natts_pg_type];
|
char replaces[Natts_pg_type];
|
||||||
Datum values[Natts_pg_type];
|
Datum values[Natts_pg_type];
|
||||||
NameData name;
|
NameData name;
|
||||||
TupleDesc tupDesc;
|
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -296,7 +295,7 @@ TypeCreate(const char *typeName,
|
|||||||
* Okay to update existing "shell" type tuple
|
* Okay to update existing "shell" type tuple
|
||||||
*/
|
*/
|
||||||
tup = heap_modifytuple(tup,
|
tup = heap_modifytuple(tup,
|
||||||
pg_type_desc,
|
RelationGetDescr(pg_type_desc),
|
||||||
values,
|
values,
|
||||||
nulls,
|
nulls,
|
||||||
replaces);
|
replaces);
|
||||||
@ -309,9 +308,7 @@ TypeCreate(const char *typeName,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
tupDesc = pg_type_desc->rd_att;
|
tup = heap_formtuple(RelationGetDescr(pg_type_desc),
|
||||||
|
|
||||||
tup = heap_formtuple(tupDesc,
|
|
||||||
values,
|
values,
|
||||||
nulls);
|
nulls);
|
||||||
|
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/analyze.c,v 1.80 2004/12/31 21:59:41 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/analyze.c,v 1.81 2005/01/27 23:23:53 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -1193,7 +1193,7 @@ update_attstats(Oid relid, int natts, VacAttrStats **vacattrstats)
|
|||||||
{
|
{
|
||||||
/* Yes, replace it */
|
/* Yes, replace it */
|
||||||
stup = heap_modifytuple(oldtup,
|
stup = heap_modifytuple(oldtup,
|
||||||
sd,
|
RelationGetDescr(sd),
|
||||||
values,
|
values,
|
||||||
nulls,
|
nulls,
|
||||||
replaces);
|
replaces);
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.118 2004/12/31 21:59:41 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/async.c,v 1.119 2005/01/27 23:23:54 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -523,7 +523,7 @@ AtCommit_Notify(void)
|
|||||||
ItemPointerData ctid;
|
ItemPointerData ctid;
|
||||||
int result;
|
int result;
|
||||||
|
|
||||||
rTuple = heap_modifytuple(lTuple, lRel,
|
rTuple = heap_modifytuple(lTuple, tdesc,
|
||||||
value, nulls, repl);
|
value, nulls, repl);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -942,7 +942,7 @@ ProcessIncomingNotify(void)
|
|||||||
* tried to UNLISTEN us, so there can be no uncommitted
|
* tried to UNLISTEN us, so there can be no uncommitted
|
||||||
* changes.
|
* changes.
|
||||||
*/
|
*/
|
||||||
rTuple = heap_modifytuple(lTuple, lRel, value, nulls, repl);
|
rTuple = heap_modifytuple(lTuple, tdesc, value, nulls, repl);
|
||||||
simple_heap_update(lRel, &lTuple->t_self, rTuple);
|
simple_heap_update(lRel, &lTuple->t_self, rTuple);
|
||||||
|
|
||||||
#ifdef NOT_USED /* currently there are no indexes */
|
#ifdef NOT_USED /* currently there are no indexes */
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
* Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.80 2004/12/31 21:59:41 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/comment.c,v 1.81 2005/01/27 23:23:54 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -203,7 +203,7 @@ CreateComments(Oid oid, Oid classoid, int32 subid, char *comment)
|
|||||||
simple_heap_delete(description, &oldtuple->t_self);
|
simple_heap_delete(description, &oldtuple->t_self);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
newtuple = heap_modifytuple(oldtuple, description, values,
|
newtuple = heap_modifytuple(oldtuple, RelationGetDescr(description), values,
|
||||||
nulls, replaces);
|
nulls, replaces);
|
||||||
simple_heap_update(description, &oldtuple->t_self, newtuple);
|
simple_heap_update(description, &oldtuple->t_self, newtuple);
|
||||||
}
|
}
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.148 2004/12/31 21:59:41 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/dbcommands.c,v 1.149 2005/01/27 23:23:55 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -816,7 +816,7 @@ AlterDatabaseSet(AlterDatabaseSetStmt *stmt)
|
|||||||
repl_null[Anum_pg_database_datconfig - 1] = 'n';
|
repl_null[Anum_pg_database_datconfig - 1] = 'n';
|
||||||
}
|
}
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tuple, rel, repl_val, repl_null, repl_repl);
|
newtuple = heap_modifytuple(tuple, RelationGetDescr(rel), repl_val, repl_null, repl_repl);
|
||||||
simple_heap_update(rel, &tuple->t_self, newtuple);
|
simple_heap_update(rel, &tuple->t_self, newtuple);
|
||||||
|
|
||||||
/* Update indexes */
|
/* Update indexes */
|
||||||
@ -911,7 +911,7 @@ AlterDatabaseOwner(const char *dbname, AclId newOwnerSysId)
|
|||||||
repl_val[Anum_pg_database_datacl - 1] = PointerGetDatum(newAcl);
|
repl_val[Anum_pg_database_datacl - 1] = PointerGetDatum(newAcl);
|
||||||
}
|
}
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tuple, rel, repl_val, repl_null, repl_repl);
|
newtuple = heap_modifytuple(tuple, RelationGetDescr(rel), repl_val, repl_null, repl_repl);
|
||||||
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
||||||
CatalogUpdateIndexes(rel, newtuple);
|
CatalogUpdateIndexes(rel, newtuple);
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.53 2004/12/31 21:59:41 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/functioncmds.c,v 1.54 2005/01/27 23:23:55 neilc Exp $
|
||||||
*
|
*
|
||||||
* DESCRIPTION
|
* DESCRIPTION
|
||||||
* These routines take the parse tree and pick out the
|
* These routines take the parse tree and pick out the
|
||||||
@ -793,7 +793,7 @@ AlterFunctionOwner(List *name, List *argtypes, AclId newOwnerSysId)
|
|||||||
repl_val[Anum_pg_proc_proacl - 1] = PointerGetDatum(newAcl);
|
repl_val[Anum_pg_proc_proacl - 1] = PointerGetDatum(newAcl);
|
||||||
}
|
}
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tup, rel, repl_val, repl_null, repl_repl);
|
newtuple = heap_modifytuple(tup, RelationGetDescr(rel), repl_val, repl_null, repl_repl);
|
||||||
|
|
||||||
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
||||||
CatalogUpdateIndexes(rel, newtuple);
|
CatalogUpdateIndexes(rel, newtuple);
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/schemacmds.c,v 1.27 2004/12/31 21:59:41 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/schemacmds.c,v 1.28 2005/01/27 23:23:55 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -339,7 +339,7 @@ AlterSchemaOwner(const char *name, AclId newOwnerSysId)
|
|||||||
repl_val[Anum_pg_namespace_nspacl - 1] = PointerGetDatum(newAcl);
|
repl_val[Anum_pg_namespace_nspacl - 1] = PointerGetDatum(newAcl);
|
||||||
}
|
}
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tup, rel, repl_val, repl_null, repl_repl);
|
newtuple = heap_modifytuple(tup, RelationGetDescr(rel), repl_val, repl_null, repl_repl);
|
||||||
|
|
||||||
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
||||||
CatalogUpdateIndexes(rel, newtuple);
|
CatalogUpdateIndexes(rel, newtuple);
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.144 2005/01/27 03:17:30 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/tablecmds.c,v 1.145 2005/01/27 23:23:55 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -1760,7 +1760,7 @@ update_ri_trigger_args(Oid relid,
|
|||||||
values[Anum_pg_trigger_tgargs - 1] = PointerGetDatum(newtgargs);
|
values[Anum_pg_trigger_tgargs - 1] = PointerGetDatum(newtgargs);
|
||||||
replaces[Anum_pg_trigger_tgargs - 1] = 'r';
|
replaces[Anum_pg_trigger_tgargs - 1] = 'r';
|
||||||
|
|
||||||
tuple = heap_modifytuple(tuple, tgrel, values, nulls, replaces);
|
tuple = heap_modifytuple(tuple, RelationGetDescr(tgrel), values, nulls, replaces);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Update pg_trigger and its indexes
|
* Update pg_trigger and its indexes
|
||||||
@ -5302,7 +5302,7 @@ ATExecChangeOwner(Oid relationOid, int32 newOwnerSysId)
|
|||||||
repl_val[Anum_pg_class_relacl - 1] = PointerGetDatum(newAcl);
|
repl_val[Anum_pg_class_relacl - 1] = PointerGetDatum(newAcl);
|
||||||
}
|
}
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tuple, class_rel, repl_val, repl_null, repl_repl);
|
newtuple = heap_modifytuple(tuple, RelationGetDescr(class_rel), repl_val, repl_null, repl_repl);
|
||||||
|
|
||||||
simple_heap_update(class_rel, &newtuple->t_self, newtuple);
|
simple_heap_update(class_rel, &newtuple->t_self, newtuple);
|
||||||
CatalogUpdateIndexes(class_rel, newtuple);
|
CatalogUpdateIndexes(class_rel, newtuple);
|
||||||
|
@ -37,7 +37,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.15 2004/12/31 21:59:41 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/tablespace.c,v 1.16 2005/01/27 23:23:55 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -860,7 +860,7 @@ AlterTableSpaceOwner(const char *name, AclId newOwnerSysId)
|
|||||||
repl_val[Anum_pg_tablespace_spcacl - 1] = PointerGetDatum(newAcl);
|
repl_val[Anum_pg_tablespace_spcacl - 1] = PointerGetDatum(newAcl);
|
||||||
}
|
}
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tup, rel, repl_val, repl_null, repl_repl);
|
newtuple = heap_modifytuple(tup, RelationGetDescr(rel), repl_val, repl_null, repl_repl);
|
||||||
|
|
||||||
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
simple_heap_update(rel, &newtuple->t_self, newtuple);
|
||||||
CatalogUpdateIndexes(rel, newtuple);
|
CatalogUpdateIndexes(rel, newtuple);
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.66 2005/01/24 23:21:57 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/typecmds.c,v 1.67 2005/01/27 23:23:56 neilc Exp $
|
||||||
*
|
*
|
||||||
* DESCRIPTION
|
* DESCRIPTION
|
||||||
* The "DefineFoo" routines take the parse tree and pick out the
|
* The "DefineFoo" routines take the parse tree and pick out the
|
||||||
@ -1230,8 +1230,9 @@ AlterDomainDefault(List *names, Node *defaultRaw)
|
|||||||
new_record_repl[Anum_pg_type_typdefault - 1] = 'r';
|
new_record_repl[Anum_pg_type_typdefault - 1] = 'r';
|
||||||
}
|
}
|
||||||
|
|
||||||
newtuple = heap_modifytuple(tup, rel,
|
newtuple = heap_modifytuple(tup, RelationGetDescr(rel),
|
||||||
new_record, new_record_nulls, new_record_repl);
|
new_record, new_record_nulls,
|
||||||
|
new_record_repl);
|
||||||
|
|
||||||
simple_heap_update(rel, &tup->t_self, newtuple);
|
simple_heap_update(rel, &tup->t_self, newtuple);
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.147 2004/12/31 21:59:42 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/commands/user.c,v 1.148 2005/01/27 23:23:56 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -958,7 +958,7 @@ AlterUser(AlterUserStmt *stmt)
|
|||||||
new_record_repl[Anum_pg_shadow_valuntil - 1] = 'r';
|
new_record_repl[Anum_pg_shadow_valuntil - 1] = 'r';
|
||||||
}
|
}
|
||||||
|
|
||||||
new_tuple = heap_modifytuple(tuple, pg_shadow_rel, new_record,
|
new_tuple = heap_modifytuple(tuple, pg_shadow_dsc, new_record,
|
||||||
new_record_nulls, new_record_repl);
|
new_record_nulls, new_record_repl);
|
||||||
simple_heap_update(pg_shadow_rel, &tuple->t_self, new_tuple);
|
simple_heap_update(pg_shadow_rel, &tuple->t_self, new_tuple);
|
||||||
|
|
||||||
@ -1050,7 +1050,7 @@ AlterUserSet(AlterUserSetStmt *stmt)
|
|||||||
repl_null[Anum_pg_shadow_useconfig - 1] = 'n';
|
repl_null[Anum_pg_shadow_useconfig - 1] = 'n';
|
||||||
}
|
}
|
||||||
|
|
||||||
newtuple = heap_modifytuple(oldtuple, rel, repl_val, repl_null, repl_repl);
|
newtuple = heap_modifytuple(oldtuple, RelationGetDescr(rel), repl_val, repl_null, repl_repl);
|
||||||
simple_heap_update(rel, &oldtuple->t_self, newtuple);
|
simple_heap_update(rel, &oldtuple->t_self, newtuple);
|
||||||
|
|
||||||
CatalogUpdateIndexes(rel, newtuple);
|
CatalogUpdateIndexes(rel, newtuple);
|
||||||
@ -1277,7 +1277,7 @@ RenameUser(const char *oldname, const char *newname)
|
|||||||
(errmsg("MD5 password cleared because of user rename")));
|
(errmsg("MD5 password cleared because of user rename")));
|
||||||
}
|
}
|
||||||
|
|
||||||
newtuple = heap_modifytuple(oldtuple, rel, repl_val, repl_null, repl_repl);
|
newtuple = heap_modifytuple(oldtuple, dsc, repl_val, repl_null, repl_repl);
|
||||||
simple_heap_update(rel, &oldtuple->t_self, newtuple);
|
simple_heap_update(rel, &oldtuple->t_self, newtuple);
|
||||||
|
|
||||||
CatalogUpdateIndexes(rel, newtuple);
|
CatalogUpdateIndexes(rel, newtuple);
|
||||||
@ -1672,7 +1672,7 @@ UpdateGroupMembership(Relation group_rel, HeapTuple group_tuple,
|
|||||||
new_record[Anum_pg_group_grolist - 1] = PointerGetDatum(newarray);
|
new_record[Anum_pg_group_grolist - 1] = PointerGetDatum(newarray);
|
||||||
new_record_repl[Anum_pg_group_grolist - 1] = 'r';
|
new_record_repl[Anum_pg_group_grolist - 1] = 'r';
|
||||||
|
|
||||||
tuple = heap_modifytuple(group_tuple, group_rel,
|
tuple = heap_modifytuple(group_tuple, RelationGetDescr(group_rel),
|
||||||
new_record, new_record_nulls, new_record_repl);
|
new_record, new_record_nulls, new_record_repl);
|
||||||
|
|
||||||
simple_heap_update(group_rel, &group_tuple->t_self, tuple);
|
simple_heap_update(group_rel, &group_tuple->t_self, tuple);
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.100 2005/01/10 20:02:21 tgl Exp $
|
* $PostgreSQL: pgsql/src/backend/rewrite/rewriteDefine.c,v 1.101 2005/01/27 23:24:05 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -114,7 +114,7 @@ InsertRule(char *rulname,
|
|||||||
replaces[Anum_pg_rewrite_ev_qual - 1] = 'r';
|
replaces[Anum_pg_rewrite_ev_qual - 1] = 'r';
|
||||||
replaces[Anum_pg_rewrite_ev_action - 1] = 'r';
|
replaces[Anum_pg_rewrite_ev_action - 1] = 'r';
|
||||||
|
|
||||||
tup = heap_modifytuple(oldtup, pg_rewrite_desc,
|
tup = heap_modifytuple(oldtup, RelationGetDescr(pg_rewrite_desc),
|
||||||
values, nulls, replaces);
|
values, nulls, replaces);
|
||||||
|
|
||||||
simple_heap_update(pg_rewrite_desc, &tup->t_self, tup);
|
simple_heap_update(pg_rewrite_desc, &tup->t_self, tup);
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $PostgreSQL: pgsql/src/backend/storage/large_object/inv_api.c,v 1.108 2004/12/31 22:00:59 pgsql Exp $
|
* $PostgreSQL: pgsql/src/backend/storage/large_object/inv_api.c,v 1.109 2005/01/27 23:24:09 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -570,7 +570,7 @@ inv_write(LargeObjectDesc *obj_desc, char *buf, int nbytes)
|
|||||||
memset(replace, ' ', sizeof(replace));
|
memset(replace, ' ', sizeof(replace));
|
||||||
values[Anum_pg_largeobject_data - 1] = PointerGetDatum(&workbuf);
|
values[Anum_pg_largeobject_data - 1] = PointerGetDatum(&workbuf);
|
||||||
replace[Anum_pg_largeobject_data - 1] = 'r';
|
replace[Anum_pg_largeobject_data - 1] = 'r';
|
||||||
newtup = heap_modifytuple(oldtuple, lo_heap_r,
|
newtup = heap_modifytuple(oldtuple, RelationGetDescr(lo_heap_r),
|
||||||
values, nulls, replace);
|
values, nulls, replace);
|
||||||
simple_heap_update(lo_heap_r, &newtup->t_self, newtup);
|
simple_heap_update(lo_heap_r, &newtup->t_self, newtup);
|
||||||
CatalogIndexInsert(indstate, newtup);
|
CatalogIndexInsert(indstate, newtup);
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
* Portions Copyright (c) 1996-2005, PostgreSQL Global Development Group
|
||||||
* Portions Copyright (c) 1994, Regents of the University of California
|
* Portions Copyright (c) 1994, Regents of the University of California
|
||||||
*
|
*
|
||||||
* $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.93 2004/12/31 22:03:21 pgsql Exp $
|
* $PostgreSQL: pgsql/src/include/access/heapam.h,v 1.94 2005/01/27 23:24:11 neilc Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -196,7 +196,7 @@ extern void heap_copytuple_with_tuple(HeapTuple src, HeapTuple dest);
|
|||||||
extern HeapTuple heap_formtuple(TupleDesc tupleDescriptor,
|
extern HeapTuple heap_formtuple(TupleDesc tupleDescriptor,
|
||||||
Datum *values, char *nulls);
|
Datum *values, char *nulls);
|
||||||
extern HeapTuple heap_modifytuple(HeapTuple tuple,
|
extern HeapTuple heap_modifytuple(HeapTuple tuple,
|
||||||
Relation relation,
|
TupleDesc tupleDesc,
|
||||||
Datum *replValues,
|
Datum *replValues,
|
||||||
char *replNulls,
|
char *replNulls,
|
||||||
char *replActions);
|
char *replActions);
|
||||||
|
Loading…
Reference in New Issue
Block a user