struct replace_rte_variables_context
{
replace_rte_variables_callback callback; /* callback function */ void *callback_arg; /* context data for callback function */ int target_varno; /* RTE index to search for */ int sublevels_up; /* (current) nesting depth */ bool inserted_sublink; /* have we inserted a SubLink? */
};
typedefenum ReplaceVarsNoMatchOption
{
REPLACEVARS_REPORT_ERROR, /* throw error if no match */
REPLACEVARS_CHANGE_VARNO, /* change the Var's varno, nothing else */
REPLACEVARS_SUBSTITUTE_NULL, /* replace with a NULL Const */
} ReplaceVarsNoMatchOption;
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); externvoid CombineRangeTables(List **dst_rtable, List **dst_perminfos,
List *src_rtable, List *src_perminfos); externvoid OffsetVarNodes(Node *node, int offset, int sublevels_up); externvoid ChangeVarNodes(Node *node, int rt_index, int new_index, int sublevels_up); externvoid ChangeVarNodesExtended(Node *node, int rt_index, int new_index, int sublevels_up,
ChangeVarNodes_callback callback); externbool ChangeVarNodesWalkExpression(Node *node,
ChangeVarNodes_context *context); externvoid IncrementVarSublevelsUp(Node *node, int delta_sublevels_up, int min_sublevels_up); externvoid IncrementVarSublevelsUp_rtable(List *rtable, int delta_sublevels_up, int min_sublevels_up);
externbool rangeTableEntry_used(Node *node, int rt_index, int sublevels_up);
extern Node *replace_rte_variables(Node *node, int target_varno, int sublevels_up,
replace_rte_variables_callback callback, void *callback_arg, bool *outer_hasSubLinks); extern Node *replace_rte_variables_mutator(Node *node,
replace_rte_variables_context *context);
extern Node *map_variable_attnos(Node *node, int target_varno, int sublevels_up, conststruct AttrMap *attno_map,
Oid to_rowtype, bool *found_whole_row);
extern Node *ReplaceVarFromTargetList(Var *var,
RangeTblEntry *target_rte,
List *targetlist, int result_relation,
ReplaceVarsNoMatchOption nomatch_option, int nomatch_varno); extern Node *ReplaceVarsFromTargetList(Node *node, int target_varno, int sublevels_up,
RangeTblEntry *target_rte,
List *targetlist, int result_relation,
ReplaceVarsNoMatchOption nomatch_option, int nomatch_varno, bool *outer_hasSubLinks);
#endif/* REWRITEMANIP_H */
Messung V0.5 in Prozent
¤ Dauer der Verarbeitung: 0.16 Sekunden
(vorverarbeitet am 2026-08-08)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.