MergeAttributes() and related variable renaming
authorPeter Eisentraut <peter@eisentraut.org>
Tue, 26 Sep 2023 15:08:35 +0000 (16:08 +0100)
committerPeter Eisentraut <peter@eisentraut.org>
Tue, 26 Sep 2023 15:08:35 +0000 (16:08 +0100)
Mainly, rename "schema" to "columns" and related changes.  The
previous naming has long been confusing.

Discussion: https://www.postgresql.org/message-id/flat/52a125e4-ff9a-95f5-9f61-b87cf447e4da%40eisentraut.org

src/backend/access/common/tupdesc.c
src/backend/commands/tablecmds.c
src/include/access/tupdesc.h

index 7c5c390503b44276e648a47ecf2c82ce7f445a65..253d6c86f86bf94388991e06f80b759b128bb2c0 100644 (file)
@@ -782,12 +782,12 @@ TupleDescInitEntryCollation(TupleDesc desc,
 /*
  * BuildDescForRelation
  *
- * Given a relation schema (list of ColumnDef nodes), build a TupleDesc.
+ * Given a list of ColumnDef nodes, build a TupleDesc.
  *
  * Note: tdtypeid will need to be filled in later on.
  */
 TupleDesc
-BuildDescForRelation(List *schema)
+BuildDescForRelation(const List *columns)
 {
        int                     natts;
        AttrNumber      attnum;
@@ -803,13 +803,13 @@ BuildDescForRelation(List *schema)
        /*
         * allocate a new tuple descriptor
         */
-       natts = list_length(schema);
+       natts = list_length(columns);
        desc = CreateTemplateTupleDesc(natts);
        has_not_null = false;
 
        attnum = 0;
 
-       foreach(l, schema)
+       foreach(l, columns)
        {
                ColumnDef  *entry = lfirst(l);
                AclResult       aclresult;
@@ -891,7 +891,7 @@ BuildDescForRelation(List *schema)
  * with functions returning RECORD.
  */
 TupleDesc
-BuildDescFromLists(List *names, List *types, List *typmods, List *collations)
+BuildDescFromLists(const List *names, const List *types, const List *typmods, const List *collations)
 {
        int                     natts;
        AttrNumber      attnum;
index b73f4c96a4cc0076fd72ce80ef1d0dd42551cc9c..ad398e837d577345a9307f1fc50c8914de96893f 100644 (file)
@@ -350,7 +350,7 @@ static void truncate_check_perms(Oid relid, Form_pg_class reltuple);
 static void truncate_check_activity(Relation rel);
 static void RangeVarCallbackForTruncate(const RangeVar *relation,
                                                                                Oid relId, Oid oldRelId, void *arg);
-static List *MergeAttributes(List *schema, List *supers, char relpersistence,
+static List *MergeAttributes(List *columns, const List *supers, char relpersistence,
                                                         bool is_partition, List **supconstr,
                                                         List **supnotnulls);
 static List *MergeCheckConstraint(List *constraints, const char *name, Node *expr);
@@ -361,7 +361,7 @@ static void StoreCatalogInheritance(Oid relationId, List *supers,
 static void StoreCatalogInheritance1(Oid relationId, Oid parentOid,
                                                                         int32 seqNumber, Relation inhRelation,
                                                                         bool child_is_partition);
-static int     findAttrByName(const char *attributeName, List *schema);
+static int     findAttrByName(const char *attributeName, const List *columns);
 static void AlterIndexNamespaces(Relation classRel, Relation rel,
                                                                 Oid oldNspOid, Oid newNspOid, ObjectAddresses *objsMoved);
 static void AlterSeqNamespaces(Relation classRel, Relation rel,
@@ -2307,7 +2307,7 @@ storage_name(char c)
  *             Returns new schema given initial schema and superclasses.
  *
  * Input arguments:
- * 'schema' is the column/attribute definition for the table. (It's a list
+ * 'columns' is the column/attribute definition for the table. (It's a list
  *             of ColumnDef's.) It is destructively changed.
  * 'supers' is a list of OIDs of parent relations, already locked by caller.
  * 'relpersistence' is the persistence type of the table.
@@ -2369,17 +2369,17 @@ storage_name(char c)
  *----------
  */
 static List *
-MergeAttributes(List *schema, List *supers, char relpersistence,
+MergeAttributes(List *columns, const List *supers, char relpersistence,
                                bool is_partition, List **supconstr, List **supnotnulls)
 {
-       List       *inhSchema = NIL;
+       List       *inh_columns = NIL;
        List       *constraints = NIL;
        List       *nnconstraints = NIL;
        bool            have_bogus_defaults = false;
        int                     child_attno;
        static Node bogus_marker = {0}; /* marks conflicting defaults */
-       List       *saved_schema = NIL;
-       ListCell   *entry;
+       List       *saved_columns = NIL;
+       ListCell   *lc;
 
        /*
         * Check for and reject tables with too many columns. We perform this
@@ -2392,7 +2392,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
         * Note that we also need to check that we do not exceed this figure after
         * including columns from inherited relations.
         */
-       if (list_length(schema) > MaxHeapAttributeNumber)
+       if (list_length(columns) > MaxHeapAttributeNumber)
                ereport(ERROR,
                                (errcode(ERRCODE_TOO_MANY_COLUMNS),
                                 errmsg("tables can have at most %d columns",
@@ -2406,15 +2406,15 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
         * sense to assume such conflicts are errors.
         *
         * We don't use foreach() here because we have two nested loops over the
-        * schema list, with possible element deletions in the inner one.  If we
+        * columns list, with possible element deletions in the inner one.  If we
         * used foreach_delete_current() it could only fix up the state of one of
         * the loops, so it seems cleaner to use looping over list indexes for
         * both loops.  Note that any deletion will happen beyond where the outer
         * loop is, so its index never needs adjustment.
         */
-       for (int coldefpos = 0; coldefpos < list_length(schema); coldefpos++)
+       for (int coldefpos = 0; coldefpos < list_length(columns); coldefpos++)
        {
-               ColumnDef  *coldef = list_nth_node(ColumnDef, schema, coldefpos);
+               ColumnDef  *coldef = list_nth_node(ColumnDef, columns, coldefpos);
 
                if (!is_partition && coldef->typeName == NULL)
                {
@@ -2431,9 +2431,9 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                }
 
                /* restpos scans all entries beyond coldef; incr is in loop body */
-               for (int restpos = coldefpos + 1; restpos < list_length(schema);)
+               for (int restpos = coldefpos + 1; restpos < list_length(columns);)
                {
-                       ColumnDef  *restdef = list_nth_node(ColumnDef, schema, restpos);
+                       ColumnDef  *restdef = list_nth_node(ColumnDef, columns, restpos);
 
                        if (strcmp(coldef->colname, restdef->colname) == 0)
                        {
@@ -2447,7 +2447,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                                        coldef->cooked_default = restdef->cooked_default;
                                        coldef->constraints = restdef->constraints;
                                        coldef->is_from_type = false;
-                                       schema = list_delete_nth_cell(schema, restpos);
+                                       columns = list_delete_nth_cell(columns, restpos);
                                }
                                else
                                        ereport(ERROR,
@@ -2467,18 +2467,18 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
         */
        if (is_partition)
        {
-               saved_schema = schema;
-               schema = NIL;
+               saved_columns = columns;
+               columns = NIL;
        }
 
        /*
         * Scan the parents left-to-right, and merge their attributes to form a
-        * list of inherited attributes (inhSchema).
+        * list of inherited columns (inh_columns).
         */
        child_attno = 0;
-       foreach(entry, supers)
+       foreach(lc, supers)
        {
-               Oid                     parent = lfirst_oid(entry);
+               Oid                     parent = lfirst_oid(lc);
                Relation        relation;
                TupleDesc       tupleDesc;
                TupleConstr *constr;
@@ -2486,7 +2486,6 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                List       *inherited_defaults;
                List       *cols_with_defaults;
                List       *nnconstrs;
-               AttrNumber      parent_attno;
                ListCell   *lc1;
                ListCell   *lc2;
                Bitmapset  *pkattrs;
@@ -2507,8 +2506,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                 * We do not allow partitioned tables and partitions to participate in
                 * regular inheritance.
                 */
-               if (relation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE &&
-                       !is_partition)
+               if (relation->rd_rel->relkind == RELKIND_PARTITIONED_TABLE && !is_partition)
                        ereport(ERROR,
                                        (errcode(ERRCODE_WRONG_OBJECT_TYPE),
                                         errmsg("cannot inherit from partitioned table \"%s\"",
@@ -2593,7 +2591,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                        nncols = bms_add_member(nncols,
                                                                        ((CookedConstraint *) lfirst(lc1))->attnum);
 
-               for (parent_attno = 1; parent_attno <= tupleDesc->natts;
+               for (AttrNumber parent_attno = 1; parent_attno <= tupleDesc->natts;
                         parent_attno++)
                {
                        Form_pg_attribute attribute = TupleDescAttr(tupleDesc,
@@ -2611,7 +2609,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                        /*
                         * Does it conflict with some previously inherited column?
                         */
-                       exist_attno = findAttrByName(attributeName, inhSchema);
+                       exist_attno = findAttrByName(attributeName, inh_columns);
                        if (exist_attno > 0)
                        {
                                Oid                     defTypeId;
@@ -2624,7 +2622,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                                ereport(NOTICE,
                                                (errmsg("merging multiple inherited definitions of column \"%s\"",
                                                                attributeName)));
-                               def = (ColumnDef *) list_nth(inhSchema, exist_attno - 1);
+                               def = (ColumnDef *) list_nth(inh_columns, exist_attno - 1);
 
                                /*
                                 * Must have the same type and typmod
@@ -2761,7 +2759,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                                if (CompressionMethodIsValid(attribute->attcompression))
                                        def->compression =
                                                pstrdup(GetCompressionMethodName(attribute->attcompression));
-                               inhSchema = lappend(inhSchema, def);
+                               inh_columns = lappend(inh_columns, def);
                                newattmap->attnums[parent_attno - 1] = ++child_attno;
 
                                /*
@@ -2862,7 +2860,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                         * If we already had a default from some prior parent, check to
                         * see if they are the same.  If so, no problem; if not, mark the
                         * column as having a bogus default.  Below, we will complain if
-                        * the bogus default isn't overridden by the child schema.
+                        * the bogus default isn't overridden by the child columns.
                         */
                        Assert(def->raw_default == NULL);
                        if (def->cooked_default == NULL)
@@ -2882,9 +2880,8 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                if (constr && constr->num_check > 0)
                {
                        ConstrCheck *check = constr->check;
-                       int                     i;
 
-                       for (i = 0; i < constr->num_check; i++)
+                       for (int i = 0; i < constr->num_check; i++)
                        {
                                char       *name = check[i].ccname;
                                Node       *expr;
@@ -2945,27 +2942,27 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
        }
 
        /*
-        * If we had no inherited attributes, the result schema is just the
+        * If we had no inherited attributes, the result columns are just the
         * explicitly declared columns.  Otherwise, we need to merge the declared
-        * columns into the inherited schema list.  Although, we never have any
+        * columns into the inherited column list.  Although, we never have any
         * explicitly declared columns if the table is a partition.
         */
-       if (inhSchema != NIL)
+       if (inh_columns != NIL)
        {
-               int                     schema_attno = 0;
+               int                     newcol_attno = 0;
 
-               foreach(entry, schema)
+               foreach(lc, columns)
                {
-                       ColumnDef  *newdef = lfirst(entry);
+                       ColumnDef  *newdef = lfirst(lc);
                        char       *attributeName = newdef->colname;
                        int                     exist_attno;
 
-                       schema_attno++;
+                       newcol_attno++;
 
                        /*
                         * Does it conflict with some previously inherited column?
                         */
-                       exist_attno = findAttrByName(attributeName, inhSchema);
+                       exist_attno = findAttrByName(attributeName, inh_columns);
                        if (exist_attno > 0)
                        {
                                ColumnDef  *def;
@@ -2985,7 +2982,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                                /*
                                 * Yes, try to merge the two column definitions.
                                 */
-                               if (exist_attno == schema_attno)
+                               if (exist_attno == newcol_attno)
                                        ereport(NOTICE,
                                                        (errmsg("merging column \"%s\" with inherited definition",
                                                                        attributeName)));
@@ -2993,7 +2990,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                                        ereport(NOTICE,
                                                        (errmsg("moving and merging column \"%s\" with inherited definition", attributeName),
                                                         errdetail("User-specified column moved to the position of the inherited column.")));
-                               def = (ColumnDef *) list_nth(inhSchema, exist_attno - 1);
+                               def = (ColumnDef *) list_nth(inh_columns, exist_attno - 1);
 
                                /*
                                 * Must have the same type and typmod
@@ -3118,19 +3115,19 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
                        else
                        {
                                /*
-                                * No, attach new column to result schema
+                                * No, attach new column to result columns
                                 */
-                               inhSchema = lappend(inhSchema, newdef);
+                               inh_columns = lappend(inh_columns, newdef);
                        }
                }
 
-               schema = inhSchema;
+               columns = inh_columns;
 
                /*
                 * Check that we haven't exceeded the legal # of columns after merging
                 * in inherited columns.
                 */
-               if (list_length(schema) > MaxHeapAttributeNumber)
+               if (list_length(columns) > MaxHeapAttributeNumber)
                        ereport(ERROR,
                                        (errcode(ERRCODE_TOO_MANY_COLUMNS),
                                         errmsg("tables can have at most %d columns",
@@ -3144,13 +3141,13 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
         */
        if (is_partition)
        {
-               foreach(entry, saved_schema)
+               foreach(lc, saved_columns)
                {
-                       ColumnDef  *restdef = lfirst(entry);
+                       ColumnDef  *restdef = lfirst(lc);
                        bool            found = false;
                        ListCell   *l;
 
-                       foreach(l, schema)
+                       foreach(l, columns)
                        {
                                ColumnDef  *coldef = lfirst(l);
 
@@ -3222,9 +3219,9 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
         */
        if (have_bogus_defaults)
        {
-               foreach(entry, schema)
+               foreach(lc, columns)
                {
-                       ColumnDef  *def = lfirst(entry);
+                       ColumnDef  *def = lfirst(lc);
 
                        if (def->cooked_default == &bogus_marker)
                        {
@@ -3247,7 +3244,7 @@ MergeAttributes(List *schema, List *supers, char relpersistence,
        *supconstr = constraints;
        *supnotnulls = nnconstraints;
 
-       return schema;
+       return columns;
 }
 
 
@@ -3402,22 +3399,20 @@ StoreCatalogInheritance1(Oid relationId, Oid parentOid,
 }
 
 /*
- * Look for an existing schema entry with the given name.
+ * Look for an existing column entry with the given name.
  *
- * Returns the index (starting with 1) if attribute already exists in schema,
+ * Returns the index (starting with 1) if attribute already exists in columns,
  * 0 if it doesn't.
  */
 static int
-findAttrByName(const char *attributeName, List *schema)
+findAttrByName(const char *attributeName, const List *columns)
 {
-       ListCell   *s;
+       ListCell   *lc;
        int                     i = 1;
 
-       foreach(s, schema)
+       foreach(lc, columns)
        {
-               ColumnDef  *def = lfirst(s);
-
-               if (strcmp(attributeName, def->colname) == 0)
+               if (strcmp(attributeName, lfirst_node(ColumnDef, lc)->colname) == 0)
                        return i;
 
                i++;
index b4286cf92220d22dda3ad9e2c173db51df21f1c5..f6cc28a6618db0f5cf6e35444a879f14cb95f6a3 100644 (file)
@@ -147,8 +147,8 @@ extern void TupleDescInitEntryCollation(TupleDesc desc,
                                                                                AttrNumber attributeNumber,
                                                                                Oid collationid);
 
-extern TupleDesc BuildDescForRelation(List *schema);
+extern TupleDesc BuildDescForRelation(const List *columns);
 
-extern TupleDesc BuildDescFromLists(List *names, List *types, List *typmods, List *collations);
+extern TupleDesc BuildDescFromLists(const List *names, const List *types, const List *typmods, const List *collations);
 
 #endif                                                 /* TUPDESC_H */