From e13486eba05cc46951a34263d19b65d1eca0176b Mon Sep 17 00:00:00 2001 From: Robert Haas Date: Fri, 23 Dec 2016 07:35:01 -0500 Subject: Remove sql_inheritance GUC. This backward-compatibility GUC is long overdue for removal. Discussion: http://postgr.es/m/CA+TgmoYe+EG7LdYX6pkcNxr4ygkP4+A=jm9o-CPXyOvRiCNwaQ@mail.gmail.com --- src/backend/parser/analyze.c | 4 ++-- src/backend/parser/gram.y | 9 ++++----- src/backend/parser/parse_clause.c | 26 +------------------------- 3 files changed, 7 insertions(+), 32 deletions(-) (limited to 'src/backend/parser') diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c index 5e65fe75bd5..601e22abfa3 100644 --- a/src/backend/parser/analyze.c +++ b/src/backend/parser/analyze.c @@ -380,7 +380,7 @@ transformDeleteStmt(ParseState *pstate, DeleteStmt *stmt) /* set up range table with just the result rel */ qry->resultRelation = setTargetTable(pstate, stmt->relation, - interpretInhOption(stmt->relation->inhOpt), + (stmt->relation->inhOpt == INH_YES), true, ACL_DELETE); @@ -2177,7 +2177,7 @@ transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt) } qry->resultRelation = setTargetTable(pstate, stmt->relation, - interpretInhOption(stmt->relation->inhOpt), + (stmt->relation->inhOpt == INH_YES), true, ACL_UPDATE); diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 2ed7b5259d0..931bc9aca68 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -28,12 +28,11 @@ * current transaction and are just parsing commands to find the next * ROLLBACK or COMMIT. If you make use of SET variables, then you * will do the wrong thing in multi-query strings like this: - * SET SQL_inheritance TO off; SELECT * FROM foo; + * SET constraint_exclusion TO off; SELECT * FROM foo; * because the entire string is parsed by gram.y before the SET gets * executed. Anything that depends on the database or changeable state * should be handled during parse analysis so that it happens at the - * right time not the wrong time. The handling of SQL_inheritance is - * a good example. + * right time not the wrong time. * * WARNINGS * If you use a list, make sure the datum is a node so that the printing @@ -11249,9 +11248,9 @@ join_qual: USING '(' name_list ')' { $$ = (Node *) $3; } relation_expr: qualified_name { - /* default inheritance */ + /* inheritance query, implicitly */ $$ = $1; - $$->inhOpt = INH_DEFAULT; + $$->inhOpt = INH_YES; $$->alias = NULL; } | qualified_name '*' diff --git a/src/backend/parser/parse_clause.c b/src/backend/parser/parse_clause.c index 751de4bddb5..a96b3f92809 100644 --- a/src/backend/parser/parse_clause.c +++ b/src/backend/parser/parse_clause.c @@ -228,30 +228,6 @@ setTargetTable(ParseState *pstate, RangeVar *relation, return rtindex; } -/* - * Simplify InhOption (yes/no/default) into boolean yes/no. - * - * The reason we do things this way is that we don't want to examine the - * SQL_inheritance option flag until parse_analyze() is run. Otherwise, - * we'd do the wrong thing with query strings that intermix SET commands - * with queries. - */ -bool -interpretInhOption(InhOption inhOpt) -{ - switch (inhOpt) - { - case INH_NO: - return false; - case INH_YES: - return true; - case INH_DEFAULT: - return SQL_inheritance; - } - elog(ERROR, "bogus InhOption value: %d", inhOpt); - return false; /* keep compiler quiet */ -} - /* * Given a relation-options list (of DefElems), return true iff the specified * table/result set should be created with OIDs. This needs to be done after @@ -437,7 +413,7 @@ transformTableEntry(ParseState *pstate, RangeVar *r) /* We need only build a range table entry */ rte = addRangeTableEntry(pstate, r, r->alias, - interpretInhOption(r->inhOpt), true); + (r->inhOpt == INH_YES), true); return rte; } -- cgit v1.2.3