diff options
Diffstat (limited to 'src/backend/optimizer')
| -rw-r--r-- | src/backend/optimizer/path/allpaths.c | 24 | ||||
| -rw-r--r-- | src/backend/optimizer/prep/prepjointree.c | 26 | ||||
| -rw-r--r-- | src/backend/optimizer/util/plancat.c | 4 | 
3 files changed, 27 insertions, 27 deletions
diff --git a/src/backend/optimizer/path/allpaths.c b/src/backend/optimizer/path/allpaths.c index 84544a20115..7e7666015a1 100644 --- a/src/backend/optimizer/path/allpaths.c +++ b/src/backend/optimizer/path/allpaths.c @@ -8,7 +8,7 @@   *   *   * IDENTIFICATION - *	  $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.129 2005/04/28 21:47:13 tgl Exp $ + *	  $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.130 2005/06/04 19:19:41 tgl Exp $   *   *-------------------------------------------------------------------------   */ @@ -58,10 +58,10 @@ static void compare_tlist_datatypes(List *tlist, List *colTypes,  						bool *differentTypes);  static bool qual_is_pushdown_safe(Query *subquery, Index rti, Node *qual,  					  bool *differentTypes); -static void subquery_push_qual(Query *subquery, List *rtable, -				   Index rti, Node *qual); +static void subquery_push_qual(Query *subquery, +							   RangeTblEntry *rte, Index rti, Node *qual);  static void recurse_push_qual(Node *setOp, Query *topquery, -				  List *rtable, Index rti, Node *qual); +				  RangeTblEntry *rte, Index rti, Node *qual);  /* @@ -365,7 +365,7 @@ set_subquery_pathlist(Query *root, RelOptInfo *rel,  			if (qual_is_pushdown_safe(subquery, rti, clause, differentTypes))  			{  				/* Push it down */ -				subquery_push_qual(subquery, root->rtable, rti, clause); +				subquery_push_qual(subquery, rte, rti, clause);  			}  			else  			{ @@ -769,13 +769,13 @@ qual_is_pushdown_safe(Query *subquery, Index rti, Node *qual,   * subquery_push_qual - push down a qual that we have determined is safe   */  static void -subquery_push_qual(Query *subquery, List *rtable, Index rti, Node *qual) +subquery_push_qual(Query *subquery, RangeTblEntry *rte, Index rti, Node *qual)  {  	if (subquery->setOperations != NULL)  	{  		/* Recurse to push it separately to each component query */  		recurse_push_qual(subquery->setOperations, subquery, -						  rtable, rti, qual); +						  rte, rti, qual);  	}  	else  	{ @@ -789,7 +789,7 @@ subquery_push_qual(Query *subquery, List *rtable, Index rti, Node *qual)  		 * This step also ensures that when we are pushing into a setop tree,  		 * each component query gets its own copy of the qual.  		 */ -		qual = ResolveNew(qual, rti, 0, rtable, +		qual = ResolveNew(qual, rti, 0, rte,  						  subquery->targetList,  						  CMD_SELECT, 0); @@ -817,7 +817,7 @@ subquery_push_qual(Query *subquery, List *rtable, Index rti, Node *qual)   */  static void  recurse_push_qual(Node *setOp, Query *topquery, -				  List *rtable, Index rti, Node *qual) +				  RangeTblEntry *rte, Index rti, Node *qual)  {  	if (IsA(setOp, RangeTblRef))  	{ @@ -826,14 +826,14 @@ recurse_push_qual(Node *setOp, Query *topquery,  		Query	   *subquery = subrte->subquery;  		Assert(subquery != NULL); -		subquery_push_qual(subquery, rtable, rti, qual); +		subquery_push_qual(subquery, rte, rti, qual);  	}  	else if (IsA(setOp, SetOperationStmt))  	{  		SetOperationStmt *op = (SetOperationStmt *) setOp; -		recurse_push_qual(op->larg, topquery, rtable, rti, qual); -		recurse_push_qual(op->rarg, topquery, rtable, rti, qual); +		recurse_push_qual(op->larg, topquery, rte, rti, qual); +		recurse_push_qual(op->rarg, topquery, rte, rti, qual);  	}  	else  	{ diff --git a/src/backend/optimizer/prep/prepjointree.c b/src/backend/optimizer/prep/prepjointree.c index b5b658cf58a..67f4e823d86 100644 --- a/src/backend/optimizer/prep/prepjointree.c +++ b/src/backend/optimizer/prep/prepjointree.c @@ -16,7 +16,7 @@   *   *   * IDENTIFICATION - *	  $PostgreSQL: pgsql/src/backend/optimizer/prep/prepjointree.c,v 1.27 2005/04/28 21:47:14 tgl Exp $ + *	  $PostgreSQL: pgsql/src/backend/optimizer/prep/prepjointree.c,v 1.28 2005/06/04 19:19:41 tgl Exp $   *   *-------------------------------------------------------------------------   */ @@ -46,7 +46,7 @@ typedef struct reduce_outer_joins_state  static bool is_simple_subquery(Query *subquery);  static bool has_nullable_targetlist(Query *subquery);  static void resolvenew_in_jointree(Node *jtnode, int varno, -					   List *rtable, List *subtlist); +					   RangeTblEntry *rte, List *subtlist);  static reduce_outer_joins_state *reduce_outer_joins_pass1(Node *jtnode);  static void reduce_outer_joins_pass2(Node *jtnode,  						 reduce_outer_joins_state *state, @@ -243,18 +243,18 @@ pull_up_subqueries(Query *parse, Node *jtnode, bool below_outer_join)  			subtlist = subquery->targetList;  			parse->targetList = (List *)  				ResolveNew((Node *) parse->targetList, -						   varno, 0, parse->rtable, +						   varno, 0, rte,  						   subtlist, CMD_SELECT, 0);  			resolvenew_in_jointree((Node *) parse->jointree, varno, -								   parse->rtable, subtlist); +								   rte, subtlist);  			Assert(parse->setOperations == NULL);  			parse->havingQual =  				ResolveNew(parse->havingQual, -						   varno, 0, parse->rtable, +						   varno, 0, rte,  						   subtlist, CMD_SELECT, 0);  			parse->in_info_list = (List *)  				ResolveNew((Node *) parse->in_info_list, -						   varno, 0, parse->rtable, +						   varno, 0, rte,  						   subtlist, CMD_SELECT, 0);  			foreach(rt, parse->rtable) @@ -264,7 +264,7 @@ pull_up_subqueries(Query *parse, Node *jtnode, bool below_outer_join)  				if (otherrte->rtekind == RTE_JOIN)  					otherrte->joinaliasvars = (List *)  						ResolveNew((Node *) otherrte->joinaliasvars, -								   varno, 0, parse->rtable, +								   varno, 0, rte,  								   subtlist, CMD_SELECT, 0);  			} @@ -492,7 +492,7 @@ has_nullable_targetlist(Query *subquery)   */  static void  resolvenew_in_jointree(Node *jtnode, int varno, -					   List *rtable, List *subtlist) +					   RangeTblEntry *rte, List *subtlist)  {  	if (jtnode == NULL)  		return; @@ -506,19 +506,19 @@ resolvenew_in_jointree(Node *jtnode, int varno,  		ListCell   *l;  		foreach(l, f->fromlist) -			resolvenew_in_jointree(lfirst(l), varno, rtable, subtlist); +			resolvenew_in_jointree(lfirst(l), varno, rte, subtlist);  		f->quals = ResolveNew(f->quals, -							  varno, 0, rtable, +							  varno, 0, rte,  							  subtlist, CMD_SELECT, 0);  	}  	else if (IsA(jtnode, JoinExpr))  	{  		JoinExpr   *j = (JoinExpr *) jtnode; -		resolvenew_in_jointree(j->larg, varno, rtable, subtlist); -		resolvenew_in_jointree(j->rarg, varno, rtable, subtlist); +		resolvenew_in_jointree(j->larg, varno, rte, subtlist); +		resolvenew_in_jointree(j->rarg, varno, rte, subtlist);  		j->quals = ResolveNew(j->quals, -							  varno, 0, rtable, +							  varno, 0, rte,  							  subtlist, CMD_SELECT, 0);  		/* diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c index 35277073569..a86bdbfb61d 100644 --- a/src/backend/optimizer/util/plancat.c +++ b/src/backend/optimizer/util/plancat.c @@ -9,7 +9,7 @@   *   *   * IDENTIFICATION - *	  $PostgreSQL: pgsql/src/backend/optimizer/util/plancat.c,v 1.109 2005/05/30 18:55:49 tgl Exp $ + *	  $PostgreSQL: pgsql/src/backend/optimizer/util/plancat.c,v 1.110 2005/06/04 19:19:42 tgl Exp $   *   *-------------------------------------------------------------------------   */ @@ -451,7 +451,7 @@ build_physical_tlist(Query *root, RelOptInfo *rel)  			break;  		case RTE_FUNCTION: -			expandRTE(root->rtable, varno, 0, true /* include dropped */, +			expandRTE(rte, varno, 0, true /* include dropped */,  					  NULL, &colvars);  			foreach(l, colvars)  			{  | 
