aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/analyze.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser/analyze.c')
-rw-r--r--src/backend/parser/analyze.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index 6676412842b..eee9c33637b 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -1281,9 +1281,12 @@ transformSelectStmt(ParseState *pstate, SelectStmt *stmt)
/* transform LIMIT */
qry->limitOffset = transformLimitClause(pstate, stmt->limitOffset,
- EXPR_KIND_OFFSET, "OFFSET");
+ EXPR_KIND_OFFSET, "OFFSET",
+ stmt->limitOption);
qry->limitCount = transformLimitClause(pstate, stmt->limitCount,
- EXPR_KIND_LIMIT, "LIMIT");
+ EXPR_KIND_LIMIT, "LIMIT",
+ stmt->limitOption);
+ qry->limitOption = stmt->limitOption;
/* transform window clauses after we have seen all window functions */
qry->windowClause = transformWindowDefinitions(pstate,
@@ -1524,9 +1527,12 @@ transformValuesClause(ParseState *pstate, SelectStmt *stmt)
false /* allow SQL92 rules */ );
qry->limitOffset = transformLimitClause(pstate, stmt->limitOffset,
- EXPR_KIND_OFFSET, "OFFSET");
+ EXPR_KIND_OFFSET, "OFFSET",
+ stmt->limitOption);
qry->limitCount = transformLimitClause(pstate, stmt->limitCount,
- EXPR_KIND_LIMIT, "LIMIT");
+ EXPR_KIND_LIMIT, "LIMIT",
+ stmt->limitOption);
+ qry->limitOption = stmt->limitOption;
if (stmt->lockingClause)
ereport(ERROR,
@@ -1775,9 +1781,12 @@ transformSetOperationStmt(ParseState *pstate, SelectStmt *stmt)
exprLocation(list_nth(qry->targetList, tllen)))));
qry->limitOffset = transformLimitClause(pstate, limitOffset,
- EXPR_KIND_OFFSET, "OFFSET");
+ EXPR_KIND_OFFSET, "OFFSET",
+ stmt->limitOption);
qry->limitCount = transformLimitClause(pstate, limitCount,
- EXPR_KIND_LIMIT, "LIMIT");
+ EXPR_KIND_LIMIT, "LIMIT",
+ stmt->limitOption);
+ qry->limitOption = stmt->limitOption;
qry->rtable = pstate->p_rtable;
qry->jointree = makeFromExpr(pstate->p_joinlist, NULL);