1
0
mirror of https://github.com/postgres/postgres.git synced 2026-10-23 13:29:09 +03:00

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
This commit is contained in:
Tom Lane
2026-09-18 11:02:10 -04:00
parent d21d4f1ca0
commit 70d0ac3c91

View File

@@ -409,6 +409,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