Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitbef7640

Browse files
committed
Fix oversights in processing of LIMIT expressions during planning.
1 parent1697568 commitbef7640

File tree

2 files changed

+18
-4
lines changed

2 files changed

+18
-4
lines changed

‎src/backend/optimizer/plan/setrefs.c

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
*
1010
*
1111
* IDENTIFICATION
12-
* $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.100 2004/01/06 04:31:01 tgl Exp $
12+
* $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.101 2004/05/11 13:15:15 tgl Exp $
1313
*
1414
*-------------------------------------------------------------------------
1515
*/
@@ -171,7 +171,6 @@ set_plan_references(Plan *plan, List *rtable)
171171
caseT_Sort:
172172
caseT_Unique:
173173
caseT_SetOp:
174-
caseT_Limit:
175174

176175
/*
177176
* These plan types don't actually bother to evaluate their
@@ -184,6 +183,15 @@ set_plan_references(Plan *plan, List *rtable)
184183
* the plan tree!
185184
*/
186185
break;
186+
caseT_Limit:
187+
/*
188+
* Like the plan types above, Limit doesn't evaluate its
189+
* tlist or quals. It does have live expressions for
190+
* limit/offset, however.
191+
*/
192+
fix_expr_references(plan, ((Limit*)plan)->limitOffset);
193+
fix_expr_references(plan, ((Limit*)plan)->limitCount);
194+
break;
187195
caseT_Agg:
188196
caseT_Group:
189197
set_uppernode_references(plan, (Index)0);

‎src/backend/optimizer/plan/subselect.c

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* Portions Copyright (c) 1994, Regents of the University of California
88
*
99
* IDENTIFICATION
10-
* $PostgreSQL: pgsql/src/backend/optimizer/plan/subselect.c,v 1.88 2004/02/03 17:34:03 tgl Exp $
10+
* $PostgreSQL: pgsql/src/backend/optimizer/plan/subselect.c,v 1.89 2004/05/11 13:15:15 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -1063,14 +1063,20 @@ finalize_plan(Plan *plan, List *rtable,
10631063
&context);
10641064
break;
10651065

1066+
caseT_Limit:
1067+
finalize_primnode(((Limit*)plan)->limitOffset,
1068+
&context);
1069+
finalize_primnode(((Limit*)plan)->limitCount,
1070+
&context);
1071+
break;
1072+
10661073
caseT_Hash:
10671074
caseT_Agg:
10681075
caseT_SeqScan:
10691076
caseT_Material:
10701077
caseT_Sort:
10711078
caseT_Unique:
10721079
caseT_SetOp:
1073-
caseT_Limit:
10741080
caseT_Group:
10751081
break;
10761082

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp