mirror of
https://github.com/postgres/postgres.git
synced 2026-02-15 00:33:54 -05:00
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
24 lines
804 B
C
24 lines
804 B
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* nodeModifyTable.h
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2020, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
* src/include/executor/nodeModifyTable.h
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
#ifndef NODEMODIFYTABLE_H
|
|
#define NODEMODIFYTABLE_H
|
|
|
|
#include "nodes/execnodes.h"
|
|
|
|
extern void ExecComputeStoredGenerated(EState *estate, TupleTableSlot *slot, CmdType cmdtype);
|
|
|
|
extern ModifyTableState *ExecInitModifyTable(ModifyTable *node, EState *estate, int eflags);
|
|
extern void ExecEndModifyTable(ModifyTableState *node);
|
|
extern void ExecReScanModifyTable(ModifyTableState *node);
|
|
|
|
#endif /* NODEMODIFYTABLE_H */
|