diff options
Diffstat (limited to 'src/include')
-rw-r--r-- | src/include/nodes/execnodes.h | 3 | ||||
-rw-r--r-- | src/include/nodes/parsenodes.h | 10 | ||||
-rw-r--r-- | src/include/optimizer/plancat.h | 3 | ||||
-rw-r--r-- | src/include/rewrite/rewriteHandler.h | 4 |
4 files changed, 6 insertions, 14 deletions
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index 2cd0a4f472f..20f4c8b35f3 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -462,6 +462,9 @@ typedef struct ResultRelInfo */ AttrNumber ri_RowIdAttNo; + /* For INSERT/UPDATE, attnums of generated columns to be computed */ + Bitmapset *ri_extraUpdatedCols; + /* Projection to generate new tuple in an INSERT/UPDATE */ ProjectionInfo *ri_projectNew; /* Slot to hold that tuple */ diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 6300945734c..cfeca96d532 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -1153,7 +1153,6 @@ typedef struct RangeTblEntry bool lateral; /* subquery, function, or values is LATERAL? */ bool inh; /* inheritance requested? */ bool inFromCl; /* present in FROM clause? */ - Bitmapset *extraUpdatedCols; /* generated columns being updated */ List *securityQuals; /* security barrier quals to apply, if any */ } RangeTblEntry; @@ -1189,15 +1188,6 @@ typedef struct RangeTblEntry * updatedCols is also used in some other places, for example, to determine * which triggers to fire and in FDWs to know which changed columns they need * to ship off. - * - * Generated columns that are caused to be updated by an update to a base - * column are listed in extraUpdatedCols. This is not considered for - * permission checking, but it is useful in those places that want to know the - * full set of columns being updated as opposed to only the ones the user - * explicitly mentioned in the query. (There is currently no need for an - * extraInsertedCols, but it could exist.) Note that extraUpdatedCols is - * populated during query rewrite, NOT in the parser, since generated columns - * could be added after a rule has been parsed and stored. */ typedef struct RTEPermissionInfo { diff --git a/src/include/optimizer/plancat.h b/src/include/optimizer/plancat.h index 21edac04ea5..eb1c3ccc4bf 100644 --- a/src/include/optimizer/plancat.h +++ b/src/include/optimizer/plancat.h @@ -74,4 +74,7 @@ extern bool has_row_triggers(PlannerInfo *root, Index rti, CmdType event); extern bool has_stored_generated_columns(PlannerInfo *root, Index rti); +extern Bitmapset *get_dependent_generated_columns(PlannerInfo *root, Index rti, + Bitmapset *target_cols); + #endif /* PLANCAT_H */ diff --git a/src/include/rewrite/rewriteHandler.h b/src/include/rewrite/rewriteHandler.h index 62bca7cfdf8..b71e20b087c 100644 --- a/src/include/rewrite/rewriteHandler.h +++ b/src/include/rewrite/rewriteHandler.h @@ -24,10 +24,6 @@ extern void AcquireRewriteLocks(Query *parsetree, extern Node *build_column_default(Relation rel, int attrno); -extern void fill_extraUpdatedCols(RangeTblEntry *target_rte, - RTEPermissionInfo *target_perminfo, - Relation target_relation); - extern Query *get_view_query(Relation view); extern const char *view_query_is_auto_updatable(Query *viewquery, bool check_cols); |