diff options
Diffstat (limited to 'src/backend/executor')
-rw-r--r-- | src/backend/executor/execReplication.c | 6 | ||||
-rw-r--r-- | src/backend/executor/nodeModifyTable.c | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src/backend/executor/execReplication.c b/src/backend/executor/execReplication.c index 0cad843fb69..db685473fc0 100644 --- a/src/backend/executor/execReplication.c +++ b/src/backend/executor/execReplication.c @@ -509,6 +509,7 @@ ExecSimpleRelationInsert(ResultRelInfo *resultRelInfo, if (!skip_tuple) { List *recheckIndexes = NIL; + bool insertIndexes; /* Compute stored generated columns */ if (rel->rd_att->constr && @@ -523,9 +524,10 @@ ExecSimpleRelationInsert(ResultRelInfo *resultRelInfo, ExecPartitionCheck(resultRelInfo, slot, estate, true); /* OK, store the tuple and create index entries for it */ - simple_table_tuple_insert(resultRelInfo->ri_RelationDesc, slot); + simple_table_tuple_insert(resultRelInfo->ri_RelationDesc, slot, + &insertIndexes); - if (resultRelInfo->ri_NumIndices > 0) + if (insertIndexes && resultRelInfo->ri_NumIndices > 0) recheckIndexes = ExecInsertIndexTuples(resultRelInfo, slot, estate, false, false, NULL, NIL, false); diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index 325d380b0a9..df63844b350 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -1135,13 +1135,15 @@ ExecInsert(ModifyTableContext *context, } else { + bool insertIndexes; + /* insert the tuple normally */ slot = table_tuple_insert(resultRelationDesc, slot, estate->es_output_cid, - 0, NULL); + 0, NULL, &insertIndexes); /* insert index entries for tuple */ - if (resultRelInfo->ri_NumIndices > 0) + if (insertIndexes && resultRelInfo->ri_NumIndices > 0) recheckIndexes = ExecInsertIndexTuples(resultRelInfo, slot, estate, false, false, NULL, NIL, |