mirror of
https://github.com/postgres/postgres.git
synced 2025-06-13 07:41:39 +03:00
Generated columns
This is an SQL-standard feature that allows creating columns that are computed from expressions rather than assigned, similar to a view or materialized view but on a column basis. This implements one kind of generated column: stored (computed on write). Another kind, virtual (computed on read), is planned for the future, and some room is left for it. Reviewed-by: Michael Paquier <michael@paquier.xyz> Reviewed-by: Pavel Stehule <pavel.stehule@gmail.com> Discussion: https://www.postgresql.org/message-id/flat/b151f851-4019-bdb1-699e-ebab07d2f40a@2ndquadrant.com
This commit is contained in:
@ -280,6 +280,10 @@ expand_partitioned_rtentry(PlannerInfo *root, RangeTblEntry *parentrte,
|
||||
if (!root->partColsUpdated)
|
||||
root->partColsUpdated =
|
||||
has_partition_attrs(parentrel, parentrte->updatedCols, NULL);
|
||||
/*
|
||||
* There shouldn't be any generated columns in the partition key.
|
||||
*/
|
||||
Assert(!has_partition_attrs(parentrel, parentrte->extraUpdatedCols, NULL));
|
||||
|
||||
/*
|
||||
* If the partitioned table has no partitions, treat this as the
|
||||
@ -415,6 +419,8 @@ expand_single_inheritance_child(PlannerInfo *root, RangeTblEntry *parentrte,
|
||||
appinfo->translated_vars);
|
||||
childrte->updatedCols = translate_col_privs(parentrte->updatedCols,
|
||||
appinfo->translated_vars);
|
||||
childrte->extraUpdatedCols = translate_col_privs(parentrte->extraUpdatedCols,
|
||||
appinfo->translated_vars);
|
||||
}
|
||||
|
||||
/*
|
||||
|
Reference in New Issue
Block a user