postgres.git / summary / log / commit / refs
commit 47c43ffdae795e382903c63fd2169daa6b13be30
Author: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri Sep 18 15:02:10 2026 +0000
Use default limitOption in subquery generated for MIN/MAX index scan.
We unintentionally copied the original query's limitOption field while
building the modified subquery. If it was LIMIT_OPTION_WITH_TIES,
that behavior would propagate through to execution, potentially
causing a "more than one row returned by a subquery used as an
expression" error. Fix by resetting to the default LIMIT_OPTION_COUNT.
This bug dates back to the introduction of WITH TIES.
Bug: #19694
Reported-by: Chaitanya Choudhary <chaitanyyachoudhary@gmail.com>
Author: Chaitanya Choudhary <chaitanyyachoudhary@gmail.com>
Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us>
Discussion: https://postgr.es/m/19694-4e61bd0475398eef@postgresql.org
Backpatch-through: 14
src/backend/optimizer/plan/planagg.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/backend/optimizer/plan/planagg.c b/src/backend/optimizer/plan/planagg.c
index 9330908cbf1..597178d55d5 100644
--- a/src/backend/optimizer/plan/planagg.c
+++ b/src/backend/optimizer/plan/planagg.c
@@ -410,6 +410,7 @@ build_minmax_path(PlannerInfo *root, MinMaxAggInfo *mminfo,
sizeof(int64),
Int64GetDatum(1), false,
FLOAT8PASSBYVAL);
+ parse->limitOption = LIMIT_OPTION_COUNT;
/*
* Generate the best paths for this query, telling query_planner that we
[parent: 9b8c0f238952]