mirror of
https://github.com/postgres/postgres.git
synced 2025-11-01 21:31:19 +03:00
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
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
@@ -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 '*'
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user