git.postgresql.org Git - postgresql.git/commit

git projects / postgresql.git / commit
? search:
summary | shortlog | log | commit | commitdiff | tree
(parent: a571c7f) | patch
Fix no-longer-valid shortcuts in expression_returns_set().
2017年6月14日 15:10:05 +0000 (11:10 -0400)
2017年6月14日 15:10:05 +0000 (11:10 -0400)
commit 8e72239e9d961c27f02b242e33fa832c364c7a4b
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
src/backend/nodes/nodeFuncs.c diff | blob | blame | history
src/test/regress/expected/tsrf.out diff | blob | blame | history
src/test/regress/sql/tsrf.sql diff | blob | blame | history
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /