diff options
Diffstat (limited to 'src/include/nodes/execnodes.h')
-rw-r--r-- | src/include/nodes/execnodes.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/include/nodes/execnodes.h b/src/include/nodes/execnodes.h index 580e99242be..f34d06eff4f 100644 --- a/src/include/nodes/execnodes.h +++ b/src/include/nodes/execnodes.h @@ -558,6 +558,19 @@ typedef struct ResultRelInfo List *ri_ancestorResultRels; } ResultRelInfo; +/* + * To avoid an ABI-breaking change in the size of ResultRelInfo in back + * branches, we create one of these for each result relation for which we've + * computed extraUpdatedCols, and store it in EState.es_resultrelinfo_extra. + */ +typedef struct ResultRelInfoExtra +{ + ResultRelInfo *rinfo; /* owning ResultRelInfo */ + + /* For INSERT/UPDATE, attnums of generated columns to be computed */ + Bitmapset *ri_extraUpdatedCols; +} ResultRelInfoExtra; + /* ---------------- * AsyncRequest * @@ -684,6 +697,9 @@ typedef struct EState */ List *es_insert_pending_result_relations; List *es_insert_pending_modifytables; + + /* List of ResultRelInfoExtra structs (see above) */ + List *es_resultrelinfo_extra; } EState; |