Remove field UpdateContext->updated in nodeModifyTable.c
authorDean Rasheed <[email protected]>
Thu, 29 Feb 2024 11:49:30 +0000 (11:49 +0000)
committerDean Rasheed <[email protected]>
Thu, 29 Feb 2024 11:49:30 +0000 (11:49 +0000)
This field has been redundant ever since it was added by commit
25e777cf8e, which split up ExecUpdate() and ExecDelete() into reusable
pieces. The only place that reads it is ExecMergeMatched(), if the
result from ExecUpdateAct() is TM_Ok. However, all paths through
ExecUpdateAct() that return TM_Ok also set this field to true, so the
return status by itself is sufficient to tell if the update happened.

Removing this field is a modest simplification, and it brings the
UPDATE path in ExecMergeMatched() more into line with ExecUpdate(),
ensuring that ExecUpdateEpilogue() is always called if ExecUpdateAct()
returns TM_Ok, reducing the chance of bugs.

Dean Rasheed, reviewed by Alvaro Herrera.

Discussion: https://postgr.es/m/CAEZATCWGGmigGBzLHkJm5Ccv2mMxXmwi3%2Buq0yhwDHm-tsvSLg%40mail.gmail.com

src/backend/executor/nodeModifyTable.c

index 9fc5abff8f0c6e1962fa50b94de60d46f0edd0b3..098ed4026b60096fa8f6ce6bce0c2c672b0fb20e 100644 (file)
@@ -109,7 +109,6 @@ typedef struct ModifyTableContext
  */
 typedef struct UpdateContext
 {
-   bool        updated;        /* did UPDATE actually occur? */
    bool        crossPartUpdate;    /* was it a cross-partition update? */
    TU_UpdateIndexes updateIndexes; /* Which index updates are required? */
 
@@ -2042,7 +2041,6 @@ lreplace:
                                     &insert_destrel))
        {
            /* success! */
-           updateCxt->updated = true;
            updateCxt->crossPartUpdate = true;
 
            /*
@@ -2111,8 +2109,6 @@ lreplace:
                                true /* wait for commit */ ,
                                &context->tmfd, &updateCxt->lockmode,
                                &updateCxt->updateIndexes);
-   if (result == TM_Ok)
-       updateCxt->updated = true;
 
    return result;
 }
@@ -2919,7 +2915,7 @@ lmerge_matched:
                    return true;
                }
 
-               if (result == TM_Ok && updateCxt.updated)
+               if (result == TM_Ok)
                {
                    ExecUpdateEpilogue(context, &updateCxt, resultRelInfo,
                                       tupleid, NULL, newslot);