pg.ddx.io  pgsql-admin@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Andres Freund <andres@anarazel.de>
To: Peter Geoghegan <pg@heroku.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: hlinnaka <hlinnaka@iki.fi>
Cc: Jeff Janes <jeff.janes@gmail.com>
Cc: Stephen Frost <sfrost@snowman.net>
Cc: Dean Rasheed <dean.a.rasheed@gmail.com>
Cc: Bruce Momjian <bruce@momjian.us>
Cc: Pg Hackers <pgsql-hackers@postgresql.org>
Subject: Re: INSERT ... ON CONFLICT UPDATE/IGNORE 4.0, parser/executor stuff
Date: Mon, 27 Apr 2015 23:52:58 +0200
Message-ID: <20150427215258.GE7296@alap3.anarazel.de> (raw)
In-Reply-To: <20150427142849.GD7296@alap3.anarazel.de>
References: <CAM3SWZTGE0z5_E8wRi9wt3qgOiMpSwtwr5uDcZDGhRZ1_pz6vg@mail.gmail.com>
	<20150427142849.GD7296@alap3.anarazel.de>
List-Unsubscribe: <mailto:majordomo@postgresql.org?body=unsub%20pgsql-hackers>

On 2015-04-27 16:28:49 +0200, Andres Freund wrote:
> On 2015-04-26 18:02:06 -0700, Peter Geoghegan wrote:
> > * So far, there has been a lack of scrutiny about what the patch does
> > in the rewriter (in particular, to support the EXCLUDED.* pseudo-alias
> > expression) and optimizer (the whole concept of an "auxiliary"
> > query/plan that share a target RTE, and later target ResultRelation).
> > If someone took a close look at that, it would be most helpful.
> > ruleutils.c is also modified for the benefit of EXPLAIN output. This
> > all applies only to the ON CONFLICT UPDATE patch. A committer could
> > push out the IGNORE patch before this was 100% firm.
>
> I'm far from an expert on the relevant regions; but I'm starting to look
> nonetheless. I have to say that on a preliminary look it looks more
> complicated than it has to.

So, I'm looking. And I've a few questions:
* Why do we need to spread knowledge about speculative inserts that wide?
  It's now in 1) Query, 2) ParseState 3) ModifyTable 4) InsertStmt. That
  seems a bit wide - and as far as I see not really necessary. That e.g.
  transformUpdateStmt() has if (!pstate->p_is_speculative) blocks seems
  wrong.

* afaics 'auxiliary query' isn't something we have under that
  name. This isn't really different to what wCTEs do, so I don't think
  we need this term here.

* You refer to 'join like syntax' in a couple places. I don't really see
  the current syntax being that join like? Is that just a different
  perception of terminology or is that just remnants of earlier
  approaches?

* I am rather unconvinced we need the whole 'ExcludedVar' mechanism. I
  don't really see why we need it at all? Can't we 'just' make those
  plain vars referring to the normal targetlist "entry"? I feel like I'm
  missing something here.

* The whole dealing with the update clause doesn't seem super
  clean. I'm not sure yet how to do it nicer though :(

Greetings,

Andres Freund

--
 Andres Freund	                   http://www.2ndQuadrant.com/
 PostgreSQL Development, 24x7 Support, Training & Services


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers



view thread (5+ messages)  latest in thread

Message-ID: <20150427215258.GE7296@alap3.anarazel.de>
Permalink:  ../20150427215258.GE7296@alap3.anarazel.de/
Also on:    postgresql.org/message-id/20150427215258.GE7296@alap3.anarazel.de

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-admin@postgresql.org
  Cc: andres@anarazel.de, pg@heroku.com, tgl@sss.pgh.pa.us, hlinnaka@iki.fi, jeff.janes@gmail.com, sfrost@snowman.net, dean.a.rasheed@gmail.com, bruce@momjian.us, pgsql-hackers@postgresql.org
  Subject: Re: INSERT ... ON CONFLICT UPDATE/IGNORE 4.0, parser/executor stuff
  In-Reply-To: <20150427215258.GE7296@alap3.anarazel.de>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox