From e8898e9169c851c2b8c98f981c1c4755a5758f8e Mon Sep 17 00:00:00 2001 From: Andres Freund Date: Fri, 8 May 2015 18:00:01 +0200 Subject: [PATCH] Minor ON CONFLICT related comments and doc fixes. Geoff Winkless, Stephen Frost, Peter Geoghegan and me. --- doc/src/sgml/ref/insert.sgml | 4 ++-- src/backend/access/heap/heapam.c | 8 ++++---- src/backend/commands/trigger.c | 8 ++++---- src/include/nodes/execnodes.h | 2 +- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/doc/src/sgml/ref/insert.sgml b/doc/src/sgml/ref/insert.sgml index c88d1b7b50..eff52cb1e0 100644 --- a/doc/src/sgml/ref/insert.sgml +++ b/doc/src/sgml/ref/insert.sgml @@ -76,7 +76,7 @@ INSERT INTO table_name [ AS ON CONFLICT can be used to specify an alternative action to raising a unique constraint or exclusion constraint - violation error . (See below.) @@ -397,7 +397,7 @@ INSERT INTO table_name [ AS unique index inference clause or an explicitly named constraint can be used. For ON CONFLICT DO NOTHING, it is optional to specify a - conflict_target; when ommitted, conflicts + conflict_target; when omitted, conflicts with all usable constraints (and unique indexes) are handled. For ON CONFLICT DO UPDATE, a conflict target must be specified. diff --git a/src/backend/access/heap/heapam.c b/src/backend/access/heap/heapam.c index 7ea9a77e7e..1a8d2f2d0b 100644 --- a/src/backend/access/heap/heapam.c +++ b/src/backend/access/heap/heapam.c @@ -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. diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index b537ca5e66..d9b9587f1e 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -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) diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index 210dbe4a53..9de6d1484e 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -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; /* ----------------