mirror of
https://github.com/postgres/postgres.git
synced 2025-11-21 00:42:43 +03:00
pgindent run before PG 9.1 beta 1.
This commit is contained in:
@@ -1429,7 +1429,7 @@ pullup_replace_vars_callback(Var *var,
|
||||
*
|
||||
* If a query's setOperations tree consists entirely of simple UNION ALL
|
||||
* operations, flatten it into an append relation, which we can process more
|
||||
* intelligently than the general setops case. Otherwise, do nothing.
|
||||
* intelligently than the general setops case. Otherwise, do nothing.
|
||||
*
|
||||
* In most cases, this can succeed only for a top-level query, because for a
|
||||
* subquery in FROM, the parent query's invocation of pull_up_subqueries would
|
||||
@@ -1478,10 +1478,10 @@ flatten_simple_union_all(PlannerInfo *root)
|
||||
|
||||
/*
|
||||
* Make a copy of the leftmost RTE and add it to the rtable. This copy
|
||||
* will represent the leftmost leaf query in its capacity as a member
|
||||
* of the appendrel. The original will represent the appendrel as a
|
||||
* whole. (We must do things this way because the upper query's Vars
|
||||
* have to be seen as referring to the whole appendrel.)
|
||||
* will represent the leftmost leaf query in its capacity as a member of
|
||||
* the appendrel. The original will represent the appendrel as a whole.
|
||||
* (We must do things this way because the upper query's Vars have to be
|
||||
* seen as referring to the whole appendrel.)
|
||||
*/
|
||||
childRTE = copyObject(leftmostRTE);
|
||||
parse->rtable = lappend(parse->rtable, childRTE);
|
||||
@@ -1503,8 +1503,8 @@ flatten_simple_union_all(PlannerInfo *root)
|
||||
parse->jointree->fromlist = list_make1(rtr);
|
||||
|
||||
/*
|
||||
* Now pretend the query has no setops. We must do this before trying
|
||||
* to do subquery pullup, because of Assert in pull_up_simple_subquery.
|
||||
* Now pretend the query has no setops. We must do this before trying to
|
||||
* do subquery pullup, because of Assert in pull_up_simple_subquery.
|
||||
*/
|
||||
parse->setOperations = NULL;
|
||||
|
||||
@@ -1842,9 +1842,9 @@ reduce_outer_joins_pass2(Node *jtnode,
|
||||
* never both, to the children of an outer join.
|
||||
*
|
||||
* Note that a SEMI join works like an inner join here: it's okay
|
||||
* to pass down both local and upper constraints. (There can't
|
||||
* be any upper constraints affecting its inner side, but it's
|
||||
* not worth having a separate code path to avoid passing them.)
|
||||
* to pass down both local and upper constraints. (There can't be
|
||||
* any upper constraints affecting its inner side, but it's not
|
||||
* worth having a separate code path to avoid passing them.)
|
||||
*
|
||||
* At a FULL join we just punt and pass nothing down --- is it
|
||||
* possible to be smarter?
|
||||
@@ -1882,7 +1882,7 @@ reduce_outer_joins_pass2(Node *jtnode,
|
||||
pass_nonnullable_vars = local_nonnullable_vars;
|
||||
pass_forced_null_vars = local_forced_null_vars;
|
||||
}
|
||||
else if (jointype != JOIN_FULL) /* ie, LEFT or ANTI */
|
||||
else if (jointype != JOIN_FULL) /* ie, LEFT or ANTI */
|
||||
{
|
||||
/* can't pass local constraints to non-nullable side */
|
||||
pass_nonnullable_rels = nonnullable_rels;
|
||||
|
||||
@@ -54,12 +54,12 @@ static Expr *process_duplicate_ors(List *orlist);
|
||||
* Although this can be invoked on its own, it's mainly intended as a helper
|
||||
* for eval_const_expressions(), and that context drives several design
|
||||
* decisions. In particular, if the input is already AND/OR flat, we must
|
||||
* preserve that property. We also don't bother to recurse in situations
|
||||
* preserve that property. We also don't bother to recurse in situations
|
||||
* where we can assume that lower-level executions of eval_const_expressions
|
||||
* would already have simplified sub-clauses of the input.
|
||||
*
|
||||
* The difference between this and a simple make_notclause() is that this
|
||||
* tries to get rid of the NOT node by logical simplification. It's clearly
|
||||
* tries to get rid of the NOT node by logical simplification. It's clearly
|
||||
* always a win if the NOT node can be eliminated altogether. However, our
|
||||
* use of DeMorgan's laws could result in having more NOT nodes rather than
|
||||
* fewer. We do that unconditionally anyway, because in WHERE clauses it's
|
||||
@@ -141,21 +141,21 @@ negate_clause(Node *node)
|
||||
|
||||
switch (expr->boolop)
|
||||
{
|
||||
/*--------------------
|
||||
* Apply DeMorgan's Laws:
|
||||
* (NOT (AND A B)) => (OR (NOT A) (NOT B))
|
||||
* (NOT (OR A B)) => (AND (NOT A) (NOT B))
|
||||
* i.e., swap AND for OR and negate each subclause.
|
||||
*
|
||||
* If the input is already AND/OR flat and has no NOT
|
||||
* directly above AND or OR, this transformation preserves
|
||||
* those properties. For example, if no direct child of
|
||||
* the given AND clause is an AND or a NOT-above-OR, then
|
||||
* the recursive calls of negate_clause() can't return any
|
||||
* OR clauses. So we needn't call pull_ors() before
|
||||
* building a new OR clause. Similarly for the OR case.
|
||||
*--------------------
|
||||
*/
|
||||
/*--------------------
|
||||
* Apply DeMorgan's Laws:
|
||||
* (NOT (AND A B)) => (OR (NOT A) (NOT B))
|
||||
* (NOT (OR A B)) => (AND (NOT A) (NOT B))
|
||||
* i.e., swap AND for OR and negate each subclause.
|
||||
*
|
||||
* If the input is already AND/OR flat and has no NOT
|
||||
* directly above AND or OR, this transformation preserves
|
||||
* those properties. For example, if no direct child of
|
||||
* the given AND clause is an AND or a NOT-above-OR, then
|
||||
* the recursive calls of negate_clause() can't return any
|
||||
* OR clauses. So we needn't call pull_ors() before
|
||||
* building a new OR clause. Similarly for the OR case.
|
||||
*--------------------
|
||||
*/
|
||||
case AND_EXPR:
|
||||
{
|
||||
List *nargs = NIL;
|
||||
@@ -183,6 +183,7 @@ negate_clause(Node *node)
|
||||
}
|
||||
break;
|
||||
case NOT_EXPR:
|
||||
|
||||
/*
|
||||
* NOT underneath NOT: they cancel. We assume the
|
||||
* input is already simplified, so no need to recurse.
|
||||
@@ -218,8 +219,8 @@ negate_clause(Node *node)
|
||||
break;
|
||||
case T_BooleanTest:
|
||||
{
|
||||
BooleanTest *expr = (BooleanTest *) node;
|
||||
BooleanTest *newexpr = makeNode(BooleanTest);
|
||||
BooleanTest *expr = (BooleanTest *) node;
|
||||
BooleanTest *newexpr = makeNode(BooleanTest);
|
||||
|
||||
newexpr->arg = expr->arg;
|
||||
switch (expr->booltesttype)
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Routines to preprocess the parse tree target list
|
||||
*
|
||||
* For INSERT and UPDATE queries, the targetlist must contain an entry for
|
||||
* each attribute of the target relation in the correct order. For all query
|
||||
* each attribute of the target relation in the correct order. For all query
|
||||
* types, we may need to add junk tlist entries for Vars used in the RETURNING
|
||||
* list and row ID information needed for EvalPlanQual checking.
|
||||
*
|
||||
@@ -80,7 +80,7 @@ preprocess_targetlist(PlannerInfo *root, List *tlist)
|
||||
/*
|
||||
* Add necessary junk columns for rowmarked rels. These values are needed
|
||||
* for locking of rels selected FOR UPDATE/SHARE, and to do EvalPlanQual
|
||||
* rechecking. See comments for PlanRowMark in plannodes.h.
|
||||
* rechecking. See comments for PlanRowMark in plannodes.h.
|
||||
*/
|
||||
foreach(lc, root->rowMarks)
|
||||
{
|
||||
|
||||
@@ -938,7 +938,7 @@ generate_setop_tlist(List *colTypes, int flag,
|
||||
* The Vars are always generated with varno 0.
|
||||
*/
|
||||
static List *
|
||||
generate_append_tlist(List *colTypes, List*colCollations, bool flag,
|
||||
generate_append_tlist(List *colTypes, List *colCollations, bool flag,
|
||||
List *input_plans,
|
||||
List *refnames_tlist)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user