Re: BUG #14351: Upsert not working in case of partitioned tables

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Marco Colombo <ing(dot)marco(dot)colombo(at)gmail(dot)com>
Cc: David Fetter <david(at)fetter(dot)org>, pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #14351: Upsert not working in case of partitioned tables
Date: 2016-10-06 17:56:56
Message-ID: 27411.1475776616@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

Marco Colombo <ing(dot)marco(dot)colombo(at)gmail(dot)com> writes:
> Hi, are information provided sufficient to reproduce the problem?

I think you're hoping for a feature that doesn't exist, and is unlikely to
do so anytime soon. The INSERT ... ON CONFLICT clause describes what to
do in case the unique constraint on table dh_1 is violated. But it isn't,
since indeed no insert into dh_1 happens at all. Some other constraint on
some other table is being violated. The fact that that other insert is
being driven from an ON-INSERT trigger belonging to dh_1 isn't enough to
make a connection --- after all, that trigger could do anything at all.

If we had a true partitioning feature where the connection between the
table insertions was hardwired into the system (rather than emerging from
user-written triggers) and the partitions were all guaranteed to have
identical unique constraints, then it would be reasonable to expect INSERT
... ON CONFLICT to handle conflicts within the partitions. But we're
still some ways away from having that.

regards, tom lane

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message hubert depesz lubaczewski 2016-10-06 18:05:33 Rows go missing when selecting "for update" after savepoint "play"
Previous Message Kouber Saparev 2016-10-06 15:27:47 Re: BUG #14354: Wrong interpretation of JSON 'null'