Re: Partitioning vs ON CONFLICT
Peter Geoghegan <pg@bowt.ie>
From: Peter Geoghegan <pg@bowt.ie>
To: Amit Langote <Langote_Amit_f8@lab.ntt.co.jp>
Cc: Simon Riggs <simon@2ndquadrant.com>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>,
Thom Brown <thom@linux.com>
Date: 2017-02-17T04:25:03Z
Lists: pgsql-hackers
On Thu, Feb 16, 2017 at 8:21 PM, Amit Langote <Langote_Amit_f8@lab.ntt.co.jp> wrote: > would be working on a leaf partition chosen by tuple-routing after an > insert on a partitioned table. The leaf partitions can very well have a > unique index, which can be used for inference. The problem however is > that infer_arbiter_indexes() in the optimizer would be looking at the root > partitioned, which cannot yet have any indexes defined on them, let alone > unique indexes. When we develop a feature where defining an index on the > root partitioned table would create the same index on all the leaf > partitions and then extend it to support unique indexes, then we can > perhaps talk about supporting ON CONFLICT handing. Does that make sense? Yes, that makes sense, but I wasn't arguing that that should be possible today. I was arguing that when you don't spell out an arbiter, which ON CONFLICT DO NOTHING permits, then it should be possible for it to just work today -- infer_arbiter_indexes() will return immediately. This should be just like the old approach involving inheritance, in that that should be possible. No? -- Peter Geoghegan
Commits
-
Revert "Allow ON CONFLICT .. DO NOTHING on a partitioned table."
- f05230752d53 10.0 landed
-
Allow ON CONFLICT .. DO NOTHING on a partitioned table.
- 8355a011a012 10.0 landed