diff options
| author | Peter Eisentraut <peter@eisentraut.org> | 2020-02-17 15:19:58 +0100 |
|---|---|---|
| committer | Peter Eisentraut <peter@eisentraut.org> | 2020-02-17 15:20:58 +0100 |
| commit | c6679e4fca21d253ced84c51ac1a31c1b2aec72f (patch) | |
| tree | af48ab74e7d45752731f72081c303ca98aa969cc /src/backend/commands/copy.c | |
| parent | ad3ae64770e5b4391ad07fb2a689d72aa45b4689 (diff) | |
| download | postgresql-c6679e4fca21d253ced84c51ac1a31c1b2aec72f.tar.gz | |
Optimize update of tables with generated columns
When updating a table row with generated columns, only recompute those
generated columns whose base columns have changed in this update and
keep the rest unchanged. This can result in a significant performance
benefit. The required information was already kept in
RangeTblEntry.extraUpdatedCols; we just have to make use of it.
Reviewed-by: Pavel Stehule <pavel.stehule@gmail.com>
Discussion: https://www.postgresql.org/message-id/flat/b05e781a-fa16-6b52-6738-761181204567@2ndquadrant.com
Diffstat (limited to 'src/backend/commands/copy.c')
| -rw-r--r-- | src/backend/commands/copy.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/backend/commands/copy.c b/src/backend/commands/copy.c index 40a8ec1abd..e79ede4cb8 100644 --- a/src/backend/commands/copy.c +++ b/src/backend/commands/copy.c @@ -3222,7 +3222,7 @@ CopyFrom(CopyState cstate) /* Compute stored generated columns */ if (resultRelInfo->ri_RelationDesc->rd_att->constr && resultRelInfo->ri_RelationDesc->rd_att->constr->has_generated_stored) - ExecComputeStoredGenerated(estate, myslot); + ExecComputeStoredGenerated(estate, myslot, CMD_INSERT); /* * If the target is a plain table, check the constraints of |
