mirror of
https://github.com/postgres/postgres.git
synced 2025-07-30 11:03:19 +03:00
Re-allow INSERT .. ON CONFLICT DO NOTHING on partitioned tables.
Commit8355a011a0
was reverted inf05230752d
, but this attempt is hopefully better-considered: we now pass the correct value to ExecOpenIndices, which should avoid the crash that we hit before. Amit Langote, reviewed by Simon Riggs and by me. Some final editing by me. Discussion: http://postgr.es/m/7ff1e8ec-dc39-96b1-7f47-ff5965dceeac@lab.ntt.co.jp
This commit is contained in:
@ -3288,10 +3288,15 @@ ALTER TABLE measurement ATTACH PARTITION measurement_y2008m02
|
||||
<listitem>
|
||||
<para>
|
||||
Using the <literal>ON CONFLICT</literal> clause with partitioned tables
|
||||
will cause an error, because unique or exclusion constraints can only be
|
||||
created on individual partitions. There is no support for enforcing
|
||||
uniqueness (or an exclusion constraint) across an entire partitioning
|
||||
hierarchy.
|
||||
will cause an error if the conflict target is specified (see
|
||||
<xref linkend="sql-on-conflict" /> for more details on how the clause
|
||||
works). Therefore, it is not possible to specify
|
||||
<literal>DO UPDATE</literal> as the alternative action, because
|
||||
specifying the conflict target is mandatory in that case. On the other
|
||||
hand, specifying <literal>DO NOTHING</literal> as the alternative action
|
||||
works fine provided the conflict target is not specified. In that case,
|
||||
unique constraints (or exclusion constraints) of the individual leaf
|
||||
partitions are considered.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
|
Reference in New Issue
Block a user