diff options
Diffstat (limited to 'src/include/rewrite/rewriteManip.h')
-rw-r--r-- | src/include/rewrite/rewriteManip.h | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/include/rewrite/rewriteManip.h b/src/include/rewrite/rewriteManip.h index ea3908739c6..7c018f2a4e3 100644 --- a/src/include/rewrite/rewriteManip.h +++ b/src/include/rewrite/rewriteManip.h @@ -41,6 +41,18 @@ typedef enum ReplaceVarsNoMatchOption REPLACEVARS_SUBSTITUTE_NULL, /* replace with a NULL Const */ } ReplaceVarsNoMatchOption; +typedef struct ChangeVarNodes_context ChangeVarNodes_context; + +typedef bool (*ChangeVarNodes_callback) (Node *node, + ChangeVarNodes_context *arg); + +struct ChangeVarNodes_context +{ + int rt_index; + int new_index; + int sublevels_up; + ChangeVarNodes_callback callback; +}; extern Relids adjust_relid_set(Relids relids, int oldrelid, int newrelid); extern void CombineRangeTables(List **dst_rtable, List **dst_perminfos, @@ -49,7 +61,10 @@ extern void OffsetVarNodes(Node *node, int offset, int sublevels_up); extern void ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up); extern void ChangeVarNodesExtended(Node *node, int rt_index, int new_index, - int sublevels_up, bool change_RangeTblRef); + int sublevels_up, + ChangeVarNodes_callback callback); +extern bool ChangeVarNodesWalkExpression(Node *node, + ChangeVarNodes_context *context); extern void IncrementVarSublevelsUp(Node *node, int delta_sublevels_up, int min_sublevels_up); extern void IncrementVarSublevelsUp_rtable(List *rtable, |