114 return context.varnos;
140 return context.varnos;
222 (
void *) context, 0);
223 context->sublevels_up--;
251 context.
varno = varno;
338 (
void *) context, 0);
339 context->sublevels_up--;
370 if (((
Var *) node)->varlevelsup == 0)
398 int sublevels_up = levelsup;
402 (
void *) &sublevels_up,
413 if (((
Var *) node)->varlevelsup == *sublevels_up)
419 if (*sublevels_up == 0)
437 (
void *) sublevels_up,
444 (
void *) sublevels_up);
513 context->sublevels_up--;
575 context.
flags = flags;
588 if (((
Var *) node)->varlevelsup != 0)
589 elog(
ERROR,
"Upper-level Var found where not expected");
595 if (((
Aggref *) node)->agglevelsup != 0)
596 elog(
ERROR,
"Upper-level Aggref found where not expected");
608 elog(
ERROR,
"Aggref found where not expected");
613 elog(
ERROR,
"Upper-level GROUPING found where not expected");
631 elog(
ERROR,
"GROUPING found where not expected");
647 elog(
ERROR,
"WindowFunc found where not expected");
652 elog(
ERROR,
"Upper-level PlaceHolderVar found where not expected");
664 elog(
ERROR,
"PlaceHolderVar found where not expected");
701 context.
query = query;
762 fields =
lappend(fields, newvar);
767 rowexpr->
args = fields;
773 return (
Node *) rowexpr;
823 bool save_inserted_sublink;
833 context->inserted_sublink = save_inserted_sublink;
834 context->sublevels_up--;
835 return (
Node *) newnode;
List * pull_vars_of_level(Node *node, int levelsup)
Relids pull_varnos(PlannerInfo *root, Node *node)
bool query_tree_walker(Query *query, bool(*walker)(), void *context, int flags)
#define PVC_RECURSE_PLACEHOLDERS
#define IsA(nodeptr, _type_)
Node * expression_tree_mutator(Node *node, Node *(*mutator)(), void *context)
#define forboth(cell1, list1, cell2, list2)
void IncrementVarSublevelsUp(Node *node, int delta_sublevels_up, int min_sublevels_up)
bool checkExprHasSubLink(Node *node)
static Relids alias_relid_set(Query *query, Relids relids)
static bool pull_vars_walker(Node *node, pull_vars_context *context)
int bms_next_member(const Bitmapset *a, int prevbit)
static bool pull_varnos_walker(Node *node, pull_varnos_context *context)
#define FirstLowInvalidHeapAttributeNumber
List * pull_var_clause(Node *node, int flags)
bool contain_var_clause(Node *node)
#define PVC_INCLUDE_AGGREGATES
void pull_varattnos(Node *node, Index varno, Bitmapset **varattnos)
#define PVC_INCLUDE_WINDOWFUNCS
int locate_var_of_level(Node *node, int levelsup)
static bool pull_varattnos_walker(Node *node, pull_varattnos_context *context)
static void * list_nth(const List *list, int n)
Bitmapset * bms_join(Bitmapset *a, Bitmapset *b)
Relids get_relids_for_join(Query *query, int joinrelid)
#define rt_fetch(rangetable_index, rangetable)
List * lappend(List *list, void *datum)
bool query_or_expression_tree_walker(Node *node, bool(*walker)(), void *context, int flags)
static bool contain_var_clause_walker(Node *node, void *context)
#define PVC_INCLUDE_PLACEHOLDERS
static bool locate_var_of_level_walker(Node *node, locate_var_of_level_context *context)
Node * flatten_join_alias_vars(Query *query, Node *node)
#define Assert(condition)
bool contain_vars_of_level(Node *node, int levelsup)
bool expression_tree_walker(Node *node, bool(*walker)(), void *context)
static int list_length(const List *l)
Bitmapset * bms_add_member(Bitmapset *a, int x)
#define InvalidAttrNumber
static bool contain_vars_of_level_walker(Node *node, int *sublevels_up)
static bool pull_var_clause_walker(Node *node, pull_var_clause_context *context)
#define PVC_RECURSE_WINDOWFUNCS
static Node * flatten_join_alias_vars_mutator(Node *node, flatten_join_alias_vars_context *context)
Relids pull_varnos_of_level(PlannerInfo *root, Node *node, int levelsup)
#define PVC_RECURSE_AGGREGATES
Query * query_tree_mutator(Query *query, Node *(*mutator)(), void *context, int flags)
Bitmapset * bms_add_members(Bitmapset *a, const Bitmapset *b)
#define QTW_IGNORE_JOINALIASES