77 *
88 *
99 * IDENTIFICATION
10- * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.67 2000/01/27 18:11:37 tgl Exp $
10+ * $Header: /cvsroot/pgsql/src/backend/rewrite/rewriteHandler.c,v 1.68 2000/03/12 18:57:05 tgl Exp $
1111 *
1212 *-------------------------------------------------------------------------
1313 */
@@ -958,10 +958,6 @@ fireRIRonSubselect(Node *node, void *context)
958958return false;
959959if (IsA (node ,SubLink ))
960960{
961- /*
962- * Standard expression_tree_walker will not recurse into subselect,
963- * but here we must do so.
964- */
965961SubLink * sub = (SubLink * )node ;
966962Query * qry ;
967963
@@ -971,14 +967,12 @@ fireRIRonSubselect(Node *node, void *context)
971967/* Do what we came for */
972968qry = fireRIRrules ((Query * ) (sub -> subselect ));
973969sub -> subselect = (Node * )qry ;
974- /* Must recurse to handle any sub-subselects! */
975- if (fireRIRonSubselect ((Node * )qry ,context ))
976- return true;
970+ /* Need not recurse into subselect, because fireRIRrules did it */
977971return false;
978972}
979973if (IsA (node ,Query ))
980974{
981- /* Reach hereafter recursing down into subselect above... */
975+ /* Reach herewhen called from fireRIRrules */
982976Query * qry = (Query * )node ;
983977
984978if (fireRIRonSubselect ((Node * ) (qry -> targetList ),context ))
@@ -1107,12 +1101,12 @@ fireRIRrules(Query *parsetree)
11071101heap_close (rel ,AccessShareLock );
11081102}
11091103
1110- if (parsetree -> hasSubLinks )
1111- fireRIRonSubselect ((Node * )parsetree ,NULL );
1112-
11131104if (parsetree -> hasAggs )
11141105parsetree -> qual = modifyAggrefQual (parsetree -> qual ,parsetree );
11151106
1107+ if (parsetree -> hasSubLinks )
1108+ fireRIRonSubselect ((Node * )parsetree ,NULL );
1109+
11161110return parsetree ;
11171111}
11181112