From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Marko Tiikkaja <marko(dot)tiikkaja(at)cs(dot)helsinki(dot)fi> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Query::targetList and RETURNING |
Date: | 2009-11-10 16:02:24 |
Message-ID: | 29749.1257868944@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Marko Tiikkaja <marko(dot)tiikkaja(at)cs(dot)helsinki(dot)fi> writes:
> I wouldn't care for this at all, but with things the way they are right
> now, the writeable CTE patch has to do quite a few of these:
[ shrug... ] How many is "quite a few"? In a quick search for existing
references to targetList in the planner, it looked to me like the
majority were places that wouldn't be relevant for writable CTEs anyway.
For example, none of the references in allpaths.c are, because they have
to do with deciding whether quals can be pushed down into the subquery.
And the answer to that, for a non-SELECT CTE, is always "no".
> if (query->cmdType != CMD_SELECT)
> cteList = query->returningList;
> else
> cteList = query->targetList;
Just a thought ... where you do need this, would it be better to phrase
it as
if (query->returningList)
cteList = query->returningList;
else
cteList = query->targetList;
? I'm not sure myself, but it's something to consider.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Marko Tiikkaja | 2009-11-10 16:11:13 | Re: Query::targetList and RETURNING |
Previous Message | Marko Tiikkaja | 2009-11-10 15:46:46 | Re: Query::targetList and RETURNING |