[COMMITTERS] pgsql: Fix no-longer-valid shortcuts in expression_returns_set().
| От | Tom Lane |
|---|---|
| Тема | [COMMITTERS] pgsql: Fix no-longer-valid shortcuts in expression_returns_set(). |
| Дата | |
| Msg-id | E1dL9vx-0008C8-DL@gemulon.postgresql.org обсуждение исходный текст |
| Список | pgsql-committers |
Fix no-longer-valid shortcuts in expression_returns_set(). expression_returns_set() used to short-circuit its recursion upon seeing certain node types, such as DistinctExpr, that it knew the executor did not support set-valued arguments for. That was never inherent, though, just a reflection of laziness in execQual.c. With the new implementation of SRFs there is no reason to think that any scalar-valued expression node could not have a set-valued subexpression, except for AggRefs and WindowFuncs where we know there is a parser check rejecting it. And indeed, the shortcut causes unexpected failures for cases such as a SRF underneath DistinctExpr, because the planner stops looking for SRFs too soon. Discussion: https://postgr.es/m/5259.1497044025@sss.pgh.pa.us Branch ------ master Details ------- https://git.postgresql.org/pg/commitdiff/8e72239e9d961c27f02b242e33fa832c364c7a4b Modified Files -------------- src/backend/nodes/nodeFuncs.c | 30 +----------------------------- src/test/regress/expected/tsrf.out | 8 ++++++++ src/test/regress/sql/tsrf.sql | 1 + 3 files changed, 10 insertions(+), 29 deletions(-)
В списке pgsql-committers по дате отправления: