]> granicus.if.org Git - postgresql/commitdiff
Minor ON CONFLICT related comments and doc fixes.
authorAndres Freund <andres@anarazel.de>
Fri, 8 May 2015 16:00:01 +0000 (18:00 +0200)
committerAndres Freund <andres@anarazel.de>
Fri, 8 May 2015 17:24:14 +0000 (19:24 +0200)
Geoff Winkless, Stephen Frost, Peter Geoghegan and me.

doc/src/sgml/ref/insert.sgml
src/backend/access/heap/heapam.c
src/backend/commands/trigger.c
src/include/nodes/execnodes.h

index c88d1b7b50a30dacf4c1809e73e84eacf2ca3611..eff52cb1e0c8f4250b27180edeca17217be86f32 100644 (file)
@@ -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.
index 7ea9a77e7ea338e669dc3fd8e61501c542161f34..1a8d2f2d0b5b5709ad7d35095ffd2a312741a433 100644 (file)
@@ -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.
index b537ca5e661ca5de2b37b316791029457d4a4ef9..d9b9587f1e64610bab97835d26f55bb5974727ed 100644 (file)
@@ -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)
index 210dbe4a534f99552039b5760b941063d5ebbf7f..9de6d1484eb7a22e9ea0a3f36738df8b31a20d7a 100644 (file)
@@ -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;
 
 /* ----------------