diff options
author | Peter Eisentraut <peter_e@gmx.net> | 2018-10-23 14:45:29 +0200 |
---|---|---|
committer | Peter Eisentraut <peter_e@gmx.net> | 2018-10-23 14:47:14 +0200 |
commit | 5d7c703a44101f0d686fb66f4ff671429f46a84c (patch) | |
tree | 2b101e37b1756b229a4b3da3a9c4dacb9381e696 /src/backend/commands/tablecmds.c | |
parent | c903bb7b1c3ce82e21d6bd1af1dc45a58cd88455 (diff) | |
download | postgresql-5d7c703a44101f0d686fb66f4ff671429f46a84c.tar.gz postgresql-5d7c703a44101f0d686fb66f4ff671429f46a84c.zip |
Remove get_attidentity()
All existing uses can get this information more easily from the
relation descriptor, so the detour through the syscache is not
necessary.
Reviewed-by: Michael Paquier <michael@paquier.xyz>
Diffstat (limited to 'src/backend/commands/tablecmds.c')
-rw-r--r-- | src/backend/commands/tablecmds.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 3e112b4ef42..153aec263ef 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -5917,6 +5917,7 @@ static ObjectAddress ATExecDropNotNull(Relation rel, const char *colName, LOCKMODE lockmode) { HeapTuple tuple; + Form_pg_attribute attTup; AttrNumber attnum; Relation attr_rel; List *indexoidlist; @@ -5929,14 +5930,13 @@ ATExecDropNotNull(Relation rel, const char *colName, LOCKMODE lockmode) attr_rel = heap_open(AttributeRelationId, RowExclusiveLock); tuple = SearchSysCacheCopyAttName(RelationGetRelid(rel), colName); - if (!HeapTupleIsValid(tuple)) ereport(ERROR, (errcode(ERRCODE_UNDEFINED_COLUMN), errmsg("column \"%s\" of relation \"%s\" does not exist", colName, RelationGetRelationName(rel)))); - - attnum = ((Form_pg_attribute) GETSTRUCT(tuple))->attnum; + attTup = (Form_pg_attribute) GETSTRUCT(tuple); + attnum = attTup->attnum; /* Prevent them from altering a system attribute */ if (attnum <= 0) @@ -5945,7 +5945,7 @@ ATExecDropNotNull(Relation rel, const char *colName, LOCKMODE lockmode) errmsg("cannot alter system column \"%s\"", colName))); - if (get_attidentity(RelationGetRelid(rel), attnum)) + if (attTup->attidentity) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("column \"%s\" of relation \"%s\" is an identity column", @@ -6014,9 +6014,9 @@ ATExecDropNotNull(Relation rel, const char *colName, LOCKMODE lockmode) /* * Okay, actually perform the catalog change ... if needed */ - if (((Form_pg_attribute) GETSTRUCT(tuple))->attnotnull) + if (attTup->attnotnull) { - ((Form_pg_attribute) GETSTRUCT(tuple))->attnotnull = false; + attTup->attnotnull = false; CatalogTupleUpdate(attr_rel, &tuple->t_self, tuple); @@ -6128,6 +6128,7 @@ static ObjectAddress ATExecColumnDefault(Relation rel, const char *colName, Node *newDefault, LOCKMODE lockmode) { + TupleDesc tupdesc = RelationGetDescr(rel); AttrNumber attnum; ObjectAddress address; @@ -6148,7 +6149,7 @@ ATExecColumnDefault(Relation rel, const char *colName, errmsg("cannot alter system column \"%s\"", colName))); - if (get_attidentity(RelationGetRelid(rel), attnum)) + if (TupleDescAttr(tupdesc, attnum - 1)->attidentity) ereport(ERROR, (errcode(ERRCODE_SYNTAX_ERROR), errmsg("column \"%s\" of relation \"%s\" is an identity column", |