diff --git a/doc/src/sgml/ref/insert.sgml b/doc/src/sgml/ref/insert.sgml
index c88d1b7b50a..eff52cb1e0c 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 7ea9a77e7ea..1a8d2f2d0b5 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 b537ca5e661..d9b9587f1e6 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 210dbe4a534..9de6d1484eb 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;
/* ----------------