pgsql: Don't apply sortgroupref labels to a tlist that might not match.
От | Tom Lane |
---|---|
Тема | pgsql: Don't apply sortgroupref labels to a tlist that might not match. |
Дата | |
Msg-id | E1bHuEf-0000D3-2U@gemulon.postgresql.org обсуждение исходный текст |
Список | pgsql-committers |
Don't apply sortgroupref labels to a tlist that might not match. If we need to use a gating Result node for pseudoconstant quals, create_scan_plan() intentionally suppresses use_physical_tlist's checks on whether there are matches for sortgroupref labels, on the grounds that we don't need matches because we can label the Result's projection output properly. However, it then called apply_pathtarget_labeling_to_tlist anyway. This oversight was harmless when written, but in commit aeb9ae645 I made that function throw an error if there was no match. Thus, the combination of a table scan, pseudoconstant quals, and a non-simple-Var sortgroupref column threw the dreaded "ORDER/GROUP BY expression not found in targetlist" error. To fix, just skip applying the labeling in this case. Per report from Rushabh Lathia. Report: <CAGPqQf2iLB8t6t-XrL-zR233DFTXxEsfVZ4WSqaYfLupEoDxXA@mail.gmail.com> Branch ------ master Details ------- http://git.postgresql.org/pg/commitdiff/c12f02ffc94faac09eae254b3bf114c153f116f6 Modified Files -------------- src/backend/optimizer/plan/createplan.c | 14 ++++++++++---- src/test/regress/expected/aggregates.out | 19 +++++++++++++++++++ src/test/regress/sql/aggregates.sql | 5 +++++ 3 files changed, 34 insertions(+), 4 deletions(-)
В списке pgsql-committers по дате отправления: