On Fri, Mar 23, 2018 at 6:45 AM, Peter Geoghegan <pg@bowt.ie> wrote:
On Thu, Mar 22, 2018 at 6:02 PM, Alvaro Herrera <alvherre@alvh.no-ip.org> wrote: > Incremental development is a good thing. Trying to do everything in a > single commit is great when time is infinite or even merely very long, > but if you run out of it, which I'm sure is common, leaving some things > out that can be reasonable implemented in a separate patch is perfectly > acceptable.
We're talking about something that took me less than an hour to get working. AFAICT, it's just a matter of tweaking the grammar, and adding a bit of transformWithClause() boilerplate to the start of transformMergeStmt().
I quickly implemented CTE support myself (not wCTE support, since MERGE doesn't use RETURNING), and it wasn't tricky. It seems to work when I mechanically duplicate the approach taken with other types of DML statement in the parser. I have written a few tests, and so far it holds up.
Ok, thanks. I started doing something similar, but great if you have already implemented. I will focus on other things for now.
I am sorry. I was under the impression that you're actually writing this piece of code and hence did not pay much attention till now. I should have confirmed with you instead of assuming. I think it's a bit too late now, but I will give it a fair try tomorrow. I don't want to spend too much time on it though given how close we are to the deadline. As Alvaro said, we can always revisit this for pg12.
As I've pointed out on this thread already, I'm often concerned about supporting functionality like this because it increases my overall confidence in the design. If it was genuinely hard to add WITH clause support, then that would probably tell us something about the overall design that likely creates problems elsewhere. It's easy to say that it isn't worth holding the patch up for WITH clause support, because that's true, but it's also beside the point.