mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
Fix create_rule is->as.
This commit is contained in:
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.38 1999/01/25 18:02:15 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/planner.c,v 1.39 1999/02/02 17:46:14 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -235,11 +235,10 @@ union_planner(Query *parse)
|
||||
|
||||
/***S*H***/
|
||||
/* Use 'new_tlist' instead of 'tlist' */
|
||||
result_plan =
|
||||
make_groupPlan(&new_tlist,
|
||||
tuplePerGroup,
|
||||
parse->groupClause,
|
||||
result_plan);
|
||||
result_plan = make_groupPlan(&new_tlist,
|
||||
tuplePerGroup,
|
||||
parse->groupClause,
|
||||
result_plan);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -255,13 +254,12 @@ union_planner(Query *parse)
|
||||
result_plan = (Plan *) make_agg(tlist, result_plan);
|
||||
|
||||
/*
|
||||
* set the varno/attno entries to the appropriate references to
|
||||
* get the varno/attno entries to the appropriate references to
|
||||
* the result tuple of the subplans.
|
||||
*/
|
||||
((Agg *) result_plan)->aggs =
|
||||
get_agg_tlist_references((Agg *) result_plan);
|
||||
|
||||
|
||||
/***S*H***/
|
||||
if(parse->havingQual!=NULL)
|
||||
{
|
||||
@ -299,11 +297,13 @@ union_planner(Query *parse)
|
||||
((Agg *) result_plan)->plan.qual=(List *) parse->havingQual;
|
||||
|
||||
/* Check every clause of the havingQual for aggregates used and append
|
||||
* them to result_plan->aggs */
|
||||
* them to result_plan->aggs
|
||||
*/
|
||||
foreach(clause, ((Agg *) result_plan)->plan.qual)
|
||||
{
|
||||
/* Make sure there are aggregates in the havingQual
|
||||
* if so, the list must be longer after check_having_qual_for_aggs */
|
||||
* if so, the list must be longer after check_having_qual_for_aggs
|
||||
*/
|
||||
old_length=length(((Agg *) result_plan)->aggs);
|
||||
|
||||
((Agg *) result_plan)->aggs = nconc(((Agg *) result_plan)->aggs,
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.34 1999/01/26 05:57:14 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/setrefs.c,v 1.35 1999/02/02 17:46:15 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -701,7 +701,7 @@ OperandIsInner(Node *opnd, int inner_relid)
|
||||
/*---------------------------------------------------------
|
||||
*
|
||||
* get_agg_tlist_references -
|
||||
* changes the target list of an Agg node so that it points to
|
||||
* generates the target list of an Agg node so that it points to
|
||||
* the tuples returned by its left tree subplan.
|
||||
*
|
||||
* We now also generate a linked list of Aggref pointers for Agg.
|
||||
@ -1177,8 +1177,7 @@ check_having_qual_for_aggs(Node *clause, List *subplanTargetList, List *groupCla
|
||||
foreach(t, ((List *) ((SubLink *) ((SubPlan *)
|
||||
((Expr *) clause)->oper)->sublink)->lefthand))
|
||||
{
|
||||
agg_list =
|
||||
nconc(agg_list,
|
||||
agg_list = nconc(agg_list,
|
||||
check_having_qual_for_aggs(lfirst(t),
|
||||
subplanTargetList, groupClause));
|
||||
}
|
||||
@ -1190,9 +1189,8 @@ check_having_qual_for_aggs(Node *clause, List *subplanTargetList, List *groupCla
|
||||
foreach(tmp_ptr, ((SubLink *) ((SubPlan *)
|
||||
((Expr *) clause)->oper)->sublink)->oper)
|
||||
{
|
||||
agg_list =
|
||||
nconc(agg_list,
|
||||
check_having_qual_for_aggs((Node *) lfirst(((Expr *)
|
||||
agg_list = nconc(agg_list,
|
||||
check_having_qual_for_aggs((Node *) lfirst(((Expr *)
|
||||
lfirst(tmp_ptr))->args),
|
||||
subplanTargetList, groupClause));
|
||||
}
|
||||
@ -1220,9 +1218,8 @@ check_having_qual_for_aggs(Node *clause, List *subplanTargetList, List *groupCla
|
||||
*/
|
||||
if (contained_in_group_clause)
|
||||
{
|
||||
agg_list =
|
||||
nconc(agg_list,
|
||||
check_having_qual_for_aggs(lfirst(t),
|
||||
agg_list = nconc(agg_list,
|
||||
check_having_qual_for_aggs(lfirst(t),
|
||||
subplanTargetList, groupClause));
|
||||
}
|
||||
else
|
||||
@ -1235,7 +1232,6 @@ check_having_qual_for_aggs(Node *clause, List *subplanTargetList, List *groupCla
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
/*
|
||||
* Ooops! we can not handle that!
|
||||
*/
|
||||
|
Reference in New Issue
Block a user