aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2018-07-17 09:48:29 +0200
committerPeter Eisentraut <peter_e@gmx.net>2018-08-17 22:08:21 +0200
commite4597ee65d683e11a57a4b7f597807ebf44b6cf1 (patch)
treec50ca6a729c9bdab71071f6f111832a1e6022767 /src
parent520acab171244b55d816c70b9a89280b09937925 (diff)
downloadpostgresql-e4597ee65d683e11a57a4b7f597807ebf44b6cf1.tar.gz
postgresql-e4597ee65d683e11a57a4b7f597807ebf44b6cf1.zip
InsertPgAttributeTuple() to set attcacheoff
InsertPgAttributeTuple() is the interface between in-memory tuple descriptors and on-disk pg_attribute, so it makes sense to give it the job of resetting attcacheoff. This avoids having all the callers having to do so. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Diffstat (limited to 'src')
-rw-r--r--src/backend/catalog/heap.c9
-rw-r--r--src/backend/catalog/index.c5
-rw-r--r--src/backend/commands/tablecmds.c1
3 files changed, 4 insertions, 11 deletions
diff --git a/src/backend/catalog/heap.c b/src/backend/catalog/heap.c
index 4cfc0c89116..ac5a677c5f7 100644
--- a/src/backend/catalog/heap.c
+++ b/src/backend/catalog/heap.c
@@ -592,8 +592,8 @@ CheckAttributeType(const char *attname,
* Construct and insert a new tuple in pg_attribute.
*
* Caller has already opened and locked pg_attribute. new_attribute is the
- * attribute to insert (but we ignore attacl and attoptions, which are always
- * initialized to NULL).
+ * attribute to insert. attcacheoff is always initialized to -1, attacl and
+ * attoptions are always initialized to NULL.
*
* indstate is the index state for CatalogTupleInsertWithInfo. It can be
* passed as NULL, in which case we'll fetch the necessary info. (Don't do
@@ -620,7 +620,7 @@ InsertPgAttributeTuple(Relation pg_attribute_rel,
values[Anum_pg_attribute_attlen - 1] = Int16GetDatum(new_attribute->attlen);
values[Anum_pg_attribute_attnum - 1] = Int16GetDatum(new_attribute->attnum);
values[Anum_pg_attribute_attndims - 1] = Int32GetDatum(new_attribute->attndims);
- values[Anum_pg_attribute_attcacheoff - 1] = Int32GetDatum(new_attribute->attcacheoff);
+ values[Anum_pg_attribute_attcacheoff - 1] = Int32GetDatum(-1);
values[Anum_pg_attribute_atttypmod - 1] = Int32GetDatum(new_attribute->atttypmod);
values[Anum_pg_attribute_attbyval - 1] = BoolGetDatum(new_attribute->attbyval);
values[Anum_pg_attribute_attstorage - 1] = CharGetDatum(new_attribute->attstorage);
@@ -689,9 +689,8 @@ AddNewAttributeTuples(Oid new_rel_oid,
attr = TupleDescAttr(tupdesc, i);
/* Fill in the correct relation OID */
attr->attrelid = new_rel_oid;
- /* Make sure these are OK, too */
+ /* Make sure this is OK, too */
attr->attstattarget = -1;
- attr->attcacheoff = -1;
InsertPgAttributeTuple(rel, attr, indstate);
diff --git a/src/backend/catalog/index.c b/src/backend/catalog/index.c
index 2dad7b059e9..b2560549083 100644
--- a/src/backend/catalog/index.c
+++ b/src/backend/catalog/index.c
@@ -557,12 +557,7 @@ AppendAttributeTuples(Relation indexRelation, int numatts)
{
Form_pg_attribute attr = TupleDescAttr(indexTupDesc, i);
- /*
- * There used to be very grotty code here to set these fields, but I
- * think it's unnecessary. They should be set already.
- */
Assert(attr->attnum == i + 1);
- Assert(attr->attcacheoff == -1);
InsertPgAttributeTuple(pg_attribute, attr, indstate);
}
diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c
index f6210226e98..7cedc28c6b5 100644
--- a/src/backend/commands/tablecmds.c
+++ b/src/backend/commands/tablecmds.c
@@ -5522,7 +5522,6 @@ ATExecAddColumn(List **wqueue, AlteredTableInfo *tab, Relation rel,
attribute.atttypid = typeOid;
attribute.attstattarget = (newattnum > 0) ? -1 : 0;
attribute.attlen = tform->typlen;
- attribute.attcacheoff = -1;
attribute.atttypmod = typmod;
attribute.attnum = newattnum;
attribute.attbyval = tform->typbyval;