Heikki Linnakangas <[EMAIL PROTECTED]> writes: > Tom Lane wrote: >> It looks like the parser's code path for multi-row VALUES is neglecting >> to detect sublinks and set pstate->p_hasSubLinks. I'm too tired to look >> closer tonight; anyone want to poke into it?
> I think the parser is OK, but the p_hasSubLinks is lost in the rewrite > phase. Yeah, clearly so after comparing parser and rewriter outputs. > In ResolveNew, we set p_hasSubLinks whenever a Var with a SubLink > is found. In case of Values RTE, however, there's no Vars, but plain > SubLink nodes. This patch seems to fix it: No, that's not really where the problem is. After tracing through it, it seems that the fault is with rewriteRuleAction(). That pastes the source query's rtable into the rule action's query, but neglects to consider the possibility that this change is introducing sublinks. There is code there that will notice sublinks added from the source query's jointree (ie, sublinks that are in WHERE or JOIN/ON), but we are missing out on sublinks in VALUES RTEs ... and FUNCTION RTEs too I suppose, so this goes back a ways. (The code was correct when originally written, but now that we have expressions in some types of RTEs, it's not.) Will fix. regards, tom lane -- Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-bugs