From a6f1339490431e3ebae5fd98a74c33b84af12c97 Mon Sep 17 00:00:00 2001 From: Mark Dilger Date: Wed, 3 Jun 2020 09:22:39 -0700 Subject: [PATCH v1] Renaming relkind as objtype where appropriate "relkind" normally refers to a field of type 'char' with values like 'r' for "relation" and 'i' for "index". In AlterTableStmt and CreateTableAsStmt, this naming convention was abused for a field of type enum ObjectType. Usually, such fields are named "objtype". This leads particularly to confusion in functions that also operate on a RangeTableEntry object, which also has a field named relkind. The naming goes back to commit 09d4e96d7e9 from 2004. That commit message does not explain the choice, but the two ObjectType enum values visible in the diffs are OBJECT_TABLE and OBJECT_INDEX, which seems to explain the naming choice. --- src/backend/commands/tablecmds.c | 4 +-- src/backend/nodes/copyfuncs.c | 4 +-- src/backend/nodes/equalfuncs.c | 4 +-- src/backend/parser/analyze.c | 4 +-- src/backend/parser/gram.y | 44 +++++++++++++++--------------- src/backend/parser/parse_utilcmd.c | 6 ++-- src/backend/tcop/utility.c | 4 +-- src/include/nodes/parsenodes.h | 4 +-- 8 files changed, 37 insertions(+), 37 deletions(-) diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 2ab02e01a0..4672986563 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -4709,7 +4709,7 @@ ATParseTransformCmd(List **wqueue, AlteredTableInfo *tab, Relation rel, -1); atstmt->relation->inh = recurse; atstmt->cmds = list_make1(cmd); - atstmt->relkind = OBJECT_TABLE; /* needn't be picky here */ + atstmt->objtype = OBJECT_TABLE; /* needn't be picky here */ atstmt->missing_ok = false; /* Transform the AlterTableStmt */ @@ -15596,7 +15596,7 @@ RangeVarCallbackForAlterRelation(const RangeVar *rv, Oid relid, Oid oldrelid, reltype = ((AlterObjectSchemaStmt *) stmt)->objectType; else if (IsA(stmt, AlterTableStmt)) - reltype = ((AlterTableStmt *) stmt)->relkind; + reltype = ((AlterTableStmt *) stmt)->objtype; else { elog(ERROR, "unrecognized node type: %d", (int) nodeTag(stmt)); diff --git a/src/backend/nodes/copyfuncs.c b/src/backend/nodes/copyfuncs.c index d8cf87e6d0..89c409de66 100644 --- a/src/backend/nodes/copyfuncs.c +++ b/src/backend/nodes/copyfuncs.c @@ -3204,7 +3204,7 @@ _copyAlterTableStmt(const AlterTableStmt *from) COPY_NODE_FIELD(relation); COPY_NODE_FIELD(cmds); - COPY_SCALAR_FIELD(relkind); + COPY_SCALAR_FIELD(objtype); COPY_SCALAR_FIELD(missing_ok); return newnode; @@ -3980,7 +3980,7 @@ _copyCreateTableAsStmt(const CreateTableAsStmt *from) COPY_NODE_FIELD(query); COPY_NODE_FIELD(into); - COPY_SCALAR_FIELD(relkind); + COPY_SCALAR_FIELD(objtype); COPY_SCALAR_FIELD(is_select_into); COPY_SCALAR_FIELD(if_not_exists); diff --git a/src/backend/nodes/equalfuncs.c b/src/backend/nodes/equalfuncs.c index 627b026b19..e3f33c40be 100644 --- a/src/backend/nodes/equalfuncs.c +++ b/src/backend/nodes/equalfuncs.c @@ -1087,7 +1087,7 @@ _equalAlterTableStmt(const AlterTableStmt *a, const AlterTableStmt *b) { COMPARE_NODE_FIELD(relation); COMPARE_NODE_FIELD(cmds); - COMPARE_SCALAR_FIELD(relkind); + COMPARE_SCALAR_FIELD(objtype); COMPARE_SCALAR_FIELD(missing_ok); return true; @@ -1735,7 +1735,7 @@ _equalCreateTableAsStmt(const CreateTableAsStmt *a, const CreateTableAsStmt *b) { COMPARE_NODE_FIELD(query); COMPARE_NODE_FIELD(into); - COMPARE_SCALAR_FIELD(relkind); + COMPARE_SCALAR_FIELD(objtype); COMPARE_SCALAR_FIELD(is_select_into); COMPARE_SCALAR_FIELD(if_not_exists); diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 401da5dedf..c159fb2957 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -229,7 +229,7 @@ transformOptionalSelectInto(ParseState *pstate, Node *parseTree) ctas->query = parseTree; ctas->into = stmt->intoClause; - ctas->relkind = OBJECT_TABLE; + ctas->objtype = OBJECT_TABLE; ctas->is_select_into = true; /* @@ -2572,7 +2572,7 @@ transformCreateTableAsStmt(ParseState *pstate, CreateTableAsStmt *stmt) stmt->query = (Node *) query; /* additional work needed for CREATE MATERIALIZED VIEW */ - if (stmt->relkind == OBJECT_MATVIEW) + if (stmt->objtype == OBJECT_MATVIEW) { /* * Prohibit a data-modifying CTE in the query used to create a diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index e66b850e1a..b9dd9fd036 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -1848,7 +1848,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $3; n->cmds = $4; - n->relkind = OBJECT_TABLE; + n->objtype = OBJECT_TABLE; n->missing_ok = false; $$ = (Node *)n; } @@ -1857,7 +1857,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $5; n->cmds = $6; - n->relkind = OBJECT_TABLE; + n->objtype = OBJECT_TABLE; n->missing_ok = true; $$ = (Node *)n; } @@ -1866,7 +1866,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $3; n->cmds = list_make1($4); - n->relkind = OBJECT_TABLE; + n->objtype = OBJECT_TABLE; n->missing_ok = false; $$ = (Node *)n; } @@ -1875,7 +1875,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $5; n->cmds = list_make1($6); - n->relkind = OBJECT_TABLE; + n->objtype = OBJECT_TABLE; n->missing_ok = true; $$ = (Node *)n; } @@ -1906,7 +1906,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $3; n->cmds = $4; - n->relkind = OBJECT_INDEX; + n->objtype = OBJECT_INDEX; n->missing_ok = false; $$ = (Node *)n; } @@ -1915,7 +1915,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $5; n->cmds = $6; - n->relkind = OBJECT_INDEX; + n->objtype = OBJECT_INDEX; n->missing_ok = true; $$ = (Node *)n; } @@ -1924,7 +1924,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $3; n->cmds = list_make1($4); - n->relkind = OBJECT_INDEX; + n->objtype = OBJECT_INDEX; n->missing_ok = false; $$ = (Node *)n; } @@ -1955,7 +1955,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $3; n->cmds = $4; - n->relkind = OBJECT_SEQUENCE; + n->objtype = OBJECT_SEQUENCE; n->missing_ok = false; $$ = (Node *)n; } @@ -1964,7 +1964,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $5; n->cmds = $6; - n->relkind = OBJECT_SEQUENCE; + n->objtype = OBJECT_SEQUENCE; n->missing_ok = true; $$ = (Node *)n; } @@ -1973,7 +1973,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $3; n->cmds = $4; - n->relkind = OBJECT_VIEW; + n->objtype = OBJECT_VIEW; n->missing_ok = false; $$ = (Node *)n; } @@ -1982,7 +1982,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $5; n->cmds = $6; - n->relkind = OBJECT_VIEW; + n->objtype = OBJECT_VIEW; n->missing_ok = true; $$ = (Node *)n; } @@ -1991,7 +1991,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $4; n->cmds = $5; - n->relkind = OBJECT_MATVIEW; + n->objtype = OBJECT_MATVIEW; n->missing_ok = false; $$ = (Node *)n; } @@ -2000,7 +2000,7 @@ AlterTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $6; n->cmds = $7; - n->relkind = OBJECT_MATVIEW; + n->objtype = OBJECT_MATVIEW; n->missing_ok = true; $$ = (Node *)n; } @@ -2842,7 +2842,7 @@ AlterCompositeTypeStmt: /* can't use qualified_name, sigh */ n->relation = makeRangeVarFromAnyName($3, @3, yyscanner); n->cmds = $4; - n->relkind = OBJECT_TYPE; + n->objtype = OBJECT_TYPE; $$ = (Node *)n; } ; @@ -4058,7 +4058,7 @@ CreateAsStmt: CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = $6; ctas->into = $4; - ctas->relkind = OBJECT_TABLE; + ctas->objtype = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ @@ -4071,7 +4071,7 @@ CreateAsStmt: CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = $9; ctas->into = $7; - ctas->relkind = OBJECT_TABLE; + ctas->objtype = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ @@ -4117,7 +4117,7 @@ CreateMatViewStmt: CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = $7; ctas->into = $5; - ctas->relkind = OBJECT_MATVIEW; + ctas->objtype = OBJECT_MATVIEW; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ @@ -4130,7 +4130,7 @@ CreateMatViewStmt: CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt); ctas->query = $10; ctas->into = $8; - ctas->relkind = OBJECT_MATVIEW; + ctas->objtype = OBJECT_MATVIEW; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ @@ -5124,7 +5124,7 @@ AlterForeignTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $4; n->cmds = $5; - n->relkind = OBJECT_FOREIGN_TABLE; + n->objtype = OBJECT_FOREIGN_TABLE; n->missing_ok = false; $$ = (Node *)n; } @@ -5133,7 +5133,7 @@ AlterForeignTableStmt: AlterTableStmt *n = makeNode(AlterTableStmt); n->relation = $6; n->cmds = $7; - n->relkind = OBJECT_FOREIGN_TABLE; + n->objtype = OBJECT_FOREIGN_TABLE; n->missing_ok = true; $$ = (Node *)n; } @@ -10931,7 +10931,7 @@ ExecuteStmt: EXECUTE name execute_param_clause n->params = $8; ctas->query = (Node *) n; ctas->into = $4; - ctas->relkind = OBJECT_TABLE; + ctas->objtype = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = false; /* cram additional flags into the IntoClause */ @@ -10948,7 +10948,7 @@ ExecuteStmt: EXECUTE name execute_param_clause n->params = $11; ctas->query = (Node *) n; ctas->into = $7; - ctas->relkind = OBJECT_TABLE; + ctas->objtype = OBJECT_TABLE; ctas->is_select_into = false; ctas->if_not_exists = true; /* cram additional flags into the IntoClause */ diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index 0e4caa6ad4..25abc544fc 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -829,7 +829,7 @@ transformColumnDefinition(CreateStmtContext *cxt, ColumnDef *column) stmt = makeNode(AlterTableStmt); stmt->relation = cxt->relation; stmt->cmds = NIL; - stmt->relkind = OBJECT_FOREIGN_TABLE; + stmt->objtype = OBJECT_FOREIGN_TABLE; stmt->cmds = lappend(stmt->cmds, cmd); cxt->alist = lappend(cxt->alist, stmt); @@ -2508,7 +2508,7 @@ transformIndexConstraint(Constraint *constraint, CreateStmtContext *cxt) alterstmt->relation = copyObject(cxt->relation); alterstmt->cmds = notnullcmds; - alterstmt->relkind = OBJECT_TABLE; + alterstmt->objtype = OBJECT_TABLE; alterstmt->missing_ok = false; cxt->alist = lappend(cxt->alist, alterstmt); @@ -2610,7 +2610,7 @@ transformFKConstraints(CreateStmtContext *cxt, alterstmt->relation = cxt->relation; alterstmt->cmds = NIL; - alterstmt->relkind = OBJECT_TABLE; + alterstmt->objtype = OBJECT_TABLE; foreach(fkclist, cxt->fkconstraints) { diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 97cbaa3072..9b0c376c8c 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -2574,7 +2574,7 @@ CreateCommandTag(Node *parsetree) break; case T_AlterTableStmt: - tag = AlterObjectTypeCommandTag(((AlterTableStmt *) parsetree)->relkind); + tag = AlterObjectTypeCommandTag(((AlterTableStmt *) parsetree)->objtype); break; case T_AlterDomainStmt: @@ -2752,7 +2752,7 @@ CreateCommandTag(Node *parsetree) break; case T_CreateTableAsStmt: - switch (((CreateTableAsStmt *) parsetree)->relkind) + switch (((CreateTableAsStmt *) parsetree)->objtype) { case OBJECT_TABLE: if (((CreateTableAsStmt *) parsetree)->is_select_into) diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 5e1ffafb91..151bcdb7ef 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -1776,7 +1776,7 @@ typedef struct AlterTableStmt NodeTag type; RangeVar *relation; /* table to work on */ List *cmds; /* list of subcommands */ - ObjectType relkind; /* type of object */ + ObjectType objtype; /* type of object */ bool missing_ok; /* skip error if table missing */ } AlterTableStmt; @@ -3275,7 +3275,7 @@ typedef struct CreateTableAsStmt NodeTag type; Node *query; /* the query (see comments above) */ IntoClause *into; /* destination table */ - ObjectType relkind; /* OBJECT_TABLE or OBJECT_MATVIEW */ + ObjectType objtype; /* OBJECT_TABLE or OBJECT_MATVIEW */ bool is_select_into; /* it was written as SELECT INTO */ bool if_not_exists; /* just do nothing if it already exists? */ } CreateTableAsStmt; -- 2.21.1 (Apple Git-122.3)