Minor ON CONFLICT related comments and doc fixes.
Geoff Winkless, Stephen Frost, Peter Geoghegan and me.
This commit is contained in:
parent
53bb309d2d
commit
e8898e9169
|
@ -76,7 +76,7 @@ INSERT INTO <replaceable class="PARAMETER">table_name</replaceable> [ AS <replac
|
|||
<para>
|
||||
<literal>ON CONFLICT</> can be used to specify an alternative
|
||||
action to raising a unique constraint or exclusion constraint
|
||||
violation error . (See <xref linkend="sql-on-conflict"
|
||||
violation error. (See <xref linkend="sql-on-conflict"
|
||||
endterm="sql-on-conflict-title"> below.)
|
||||
</para>
|
||||
|
||||
|
@ -397,7 +397,7 @@ INSERT INTO <replaceable class="PARAMETER">table_name</replaceable> [ AS <replac
|
|||
<emphasis>unique index inference</emphasis> clause or an explicitly
|
||||
named constraint can be used. For <literal>ON CONFLICT DO
|
||||
NOTHING</literal>, it is optional to specify a
|
||||
<parameter>conflict_target</parameter>; when ommitted, conflicts
|
||||
<parameter>conflict_target</parameter>; when omitted, conflicts
|
||||
with all usable constraints (and unique indexes) are handled. For
|
||||
<literal>ON CONFLICT DO UPDATE</literal>, a conflict target
|
||||
<emphasis>must</emphasis> be specified.
|
||||
|
|
|
@ -2068,10 +2068,10 @@ FreeBulkInsertState(BulkInsertState bistate)
|
|||
* Speculatively inserted tuples behave as "value locks" of short duration,
|
||||
* used to implement INSERT .. ON CONFLICT.
|
||||
*
|
||||
* Note that these options will be applied when inserting into the heap's
|
||||
* TOAST table, too, if the tuple requires any out-of-line data.
|
||||
* FIXME: Do we mark TOAST tuples as speculative too? What about confirming
|
||||
* or aborting them?
|
||||
* Note that most of these options will be applied when inserting into the
|
||||
* heap's TOAST table, too, if the tuple requires any out-of-line data. Only
|
||||
* HEAP_INSERT_IS_SPECULATIVE is explicitly ignored, as the toast data does
|
||||
* not partake in speculative insertion.
|
||||
*
|
||||
* The BulkInsertState object (if any; bistate can be NULL for default
|
||||
* behavior) is also just passed through to RelationGetBufferForTuple.
|
||||
|
|
|
@ -66,10 +66,10 @@ int SessionReplicationRole = SESSION_REPLICATION_ROLE_ORIGIN;
|
|||
static int MyTriggerDepth = 0;
|
||||
|
||||
/*
|
||||
* Note that similar macros also exists in executor/execMain.c. There does not
|
||||
* appear to be any good header to put it into, given the structures that it
|
||||
* uses, so we let them be duplicated. Be sure to update both if one needs to
|
||||
* be changed, however.
|
||||
* Note that similar macros also exist in executor/execMain.c. There does not
|
||||
* appear to be any good header to put them into, given the structures that
|
||||
* they use, so we let them be duplicated. Be sure to update all if one needs
|
||||
* to be changed, however.
|
||||
*/
|
||||
#define GetUpdatedColumns(relinfo, estate) \
|
||||
(rt_fetch((relinfo)->ri_RangeTableIndex, (estate)->es_range_table)->updatedCols)
|
||||
|
|
|
@ -1108,7 +1108,7 @@ typedef struct ModifyTableState
|
|||
List *mt_arbiterindexes; /* unique index OIDs to arbitrate taking alt path */
|
||||
TupleTableSlot *mt_existing; /* slot to store existing target tuple in */
|
||||
List *mt_excludedtlist; /* the excluded pseudo relation's tlist */
|
||||
TupleTableSlot *mt_conflproj; /* FIXME*/
|
||||
TupleTableSlot *mt_conflproj; /* CONFLICT ... SET ... projection target */
|
||||
} ModifyTableState;
|
||||
|
||||
/* ----------------
|
||||
|
|
Loading…
Reference in New Issue