Skip to content
Snippets Groups Projects
Commit bef76402 authored by Tom Lane's avatar Tom Lane
Browse files

Fix oversights in processing of LIMIT expressions during planning.

parent 1697568d
No related branches found
No related tags found
No related merge requests found
......@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.100 2004/01/06 04:31:01 tgl Exp $
* $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.101 2004/05/11 13:15:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -171,7 +171,6 @@ set_plan_references(Plan *plan, List *rtable)
case T_Sort:
case T_Unique:
case T_SetOp:
case T_Limit:
/*
* These plan types don't actually bother to evaluate their
......@@ -184,6 +183,15 @@ set_plan_references(Plan *plan, List *rtable)
* the plan tree!
*/
break;
case T_Limit:
/*
* Like the plan types above, Limit doesn't evaluate its
* tlist or quals. It does have live expressions for
* limit/offset, however.
*/
fix_expr_references(plan, ((Limit *) plan)->limitOffset);
fix_expr_references(plan, ((Limit *) plan)->limitCount);
break;
case T_Agg:
case T_Group:
set_uppernode_references(plan, (Index) 0);
......
......@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/optimizer/plan/subselect.c,v 1.88 2004/02/03 17:34:03 tgl Exp $
* $PostgreSQL: pgsql/src/backend/optimizer/plan/subselect.c,v 1.89 2004/05/11 13:15:15 tgl Exp $
*
*-------------------------------------------------------------------------
*/
......@@ -1063,6 +1063,13 @@ finalize_plan(Plan *plan, List *rtable,
&context);
break;
case T_Limit:
finalize_primnode(((Limit *) plan)->limitOffset,
&context);
finalize_primnode(((Limit *) plan)->limitCount,
&context);
break;
case T_Hash:
case T_Agg:
case T_SeqScan:
......@@ -1070,7 +1077,6 @@ finalize_plan(Plan *plan, List *rtable,
case T_Sort:
case T_Unique:
case T_SetOp:
case T_Limit:
case T_Group:
break;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment