The following bug has been logged online:
Bug reference: 4902
Logged by: Marko Tiikkaja
Email address: marko.tiikkaja@cs.helsinki.fi
PostgreSQL version: 8.4.0
Operating system: Linux
Description: Subquery in VALUES referencing a CTE
Details:
While playing around with common table expressions, I found this:
=> with cte(foo) as ( values(0) ) values((select foo from cte));
ERROR: XX000: SubPlan found with no parent plan
LOCATION: ExecInitExpr, execQual.c:4343
In src/backend/executor/nodeValuesscan.c the comment near line 116 says that
subqueries inside VALUES should be initplans, but in this case we get a
SubPlan. Passing node instead of NULL to ExecInitExpr() below gives the
expected output.