pgsql: Optimize update of tables with generated columns

Started by Peter Eisentrautover 6 years ago1 messagescomitters
Jump to latest
#1Peter Eisentraut
peter_e@gmx.net

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: /messages/by-id/b05e781a-fa16-6b52-6738-761181204567@2ndquadrant.com

Branch
------
master

Details
-------
https://git.postgresql.org/pg/commitdiff/c6679e4fca21d253ced84c51ac1a31c1b2aec72f

Modified Files
--------------
src/backend/commands/copy.c | 2 +-
src/backend/executor/execReplication.c | 4 ++--
src/backend/executor/nodeModifyTable.c | 37 ++++++++++++++++++++++++++++------
src/include/executor/nodeModifyTable.h | 2 +-
src/include/nodes/execnodes.h | 3 +++
5 files changed, 38 insertions(+), 10 deletions(-)