8
8
*
9
9
*
10
10
* IDENTIFICATION
11
- * $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.129 2005/04/28 21:47:13 tgl Exp $
11
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.130 2005/06/04 19:19:41 tgl Exp $
12
12
*
13
13
*-------------------------------------------------------------------------
14
14
*/
@@ -58,10 +58,10 @@ static void compare_tlist_datatypes(List *tlist, List *colTypes,
58
58
bool * differentTypes );
59
59
static bool qual_is_pushdown_safe (Query * subquery , Index rti , Node * qual ,
60
60
bool * differentTypes );
61
- static void subquery_push_qual (Query * subquery , List * rtable ,
62
- Index rti , Node * qual );
61
+ static void subquery_push_qual (Query * subquery ,
62
+ RangeTblEntry * rte , Index rti , Node * qual );
63
63
static void recurse_push_qual (Node * setOp , Query * topquery ,
64
- List * rtable , Index rti , Node * qual );
64
+ RangeTblEntry * rte , Index rti , Node * qual );
65
65
66
66
67
67
/*
@@ -365,7 +365,7 @@ set_subquery_pathlist(Query *root, RelOptInfo *rel,
365
365
if (qual_is_pushdown_safe (subquery , rti , clause , differentTypes ))
366
366
{
367
367
/* Push it down */
368
- subquery_push_qual (subquery , root -> rtable , rti , clause );
368
+ subquery_push_qual (subquery , rte , rti , clause );
369
369
}
370
370
else
371
371
{
@@ -769,13 +769,13 @@ qual_is_pushdown_safe(Query *subquery, Index rti, Node *qual,
769
769
* subquery_push_qual - push down a qual that we have determined is safe
770
770
*/
771
771
static void
772
- subquery_push_qual (Query * subquery , List * rtable , Index rti , Node * qual )
772
+ subquery_push_qual (Query * subquery , RangeTblEntry * rte , Index rti , Node * qual )
773
773
{
774
774
if (subquery -> setOperations != NULL )
775
775
{
776
776
/* Recurse to push it separately to each component query */
777
777
recurse_push_qual (subquery -> setOperations , subquery ,
778
- rtable , rti , qual );
778
+ rte , rti , qual );
779
779
}
780
780
else
781
781
{
@@ -789,7 +789,7 @@ subquery_push_qual(Query *subquery, List *rtable, Index rti, Node *qual)
789
789
* This step also ensures that when we are pushing into a setop tree,
790
790
* each component query gets its own copy of the qual.
791
791
*/
792
- qual = ResolveNew (qual , rti , 0 , rtable ,
792
+ qual = ResolveNew (qual , rti , 0 , rte ,
793
793
subquery -> targetList ,
794
794
CMD_SELECT , 0 );
795
795
@@ -817,7 +817,7 @@ subquery_push_qual(Query *subquery, List *rtable, Index rti, Node *qual)
817
817
*/
818
818
static void
819
819
recurse_push_qual (Node * setOp , Query * topquery ,
820
- List * rtable , Index rti , Node * qual )
820
+ RangeTblEntry * rte , Index rti , Node * qual )
821
821
{
822
822
if (IsA (setOp , RangeTblRef ))
823
823
{
@@ -826,14 +826,14 @@ recurse_push_qual(Node *setOp, Query *topquery,
826
826
Query * subquery = subrte -> subquery ;
827
827
828
828
Assert (subquery != NULL );
829
- subquery_push_qual (subquery , rtable , rti , qual );
829
+ subquery_push_qual (subquery , rte , rti , qual );
830
830
}
831
831
else if (IsA (setOp , SetOperationStmt ))
832
832
{
833
833
SetOperationStmt * op = (SetOperationStmt * ) setOp ;
834
834
835
- recurse_push_qual (op -> larg , topquery , rtable , rti , qual );
836
- recurse_push_qual (op -> rarg , topquery , rtable , rti , qual );
835
+ recurse_push_qual (op -> larg , topquery , rte , rti , qual );
836
+ recurse_push_qual (op -> rarg , topquery , rte , rti , qual );
837
837
}
838
838
else
839
839
{
0 commit comments