180 context->
root != NULL)
249 newevalat =
bms_join(newevalat, delta);
264 (
void *) context, 0);
265 context->sublevels_up--;
293 context.
varno = varno;
380 (
void *) context, 0);
381 context->sublevels_up--;
412 if (((
Var *) node)->varlevelsup == 0)
440 int sublevels_up = levelsup;
444 (
void *) &sublevels_up,
455 if (((
Var *) node)->varlevelsup == *sublevels_up)
461 if (*sublevels_up == 0)
479 (
void *) sublevels_up,
486 (
void *) sublevels_up);
555 context->sublevels_up--;
617 context.
flags = flags;
630 if (((
Var *) node)->varlevelsup != 0)
631 elog(
ERROR,
"Upper-level Var found where not expected");
637 if (((
Aggref *) node)->agglevelsup != 0)
638 elog(
ERROR,
"Upper-level Aggref found where not expected");
650 elog(
ERROR,
"Aggref found where not expected");
655 elog(
ERROR,
"Upper-level GROUPING found where not expected");
667 elog(
ERROR,
"GROUPING found where not expected");
683 elog(
ERROR,
"WindowFunc found where not expected");
688 elog(
ERROR,
"Upper-level PlaceHolderVar found where not expected");
700 elog(
ERROR,
"PlaceHolderVar found where not expected");
737 context.
query = query;
795 fields =
lappend(fields, newvar);
800 rowexpr->
args = fields;
807 return (
Node *) rowexpr;
857 bool save_inserted_sublink;
867 context->inserted_sublink = save_inserted_sublink;
868 context->sublevels_up--;
869 return (
Node *) newnode;
#define InvalidAttrNumber
Bitmapset * bms_join(Bitmapset *a, Bitmapset *b)
bool bms_equal(const Bitmapset *a, const Bitmapset *b)
int bms_next_member(const Bitmapset *a, int prevbit)
Bitmapset * bms_add_member(Bitmapset *a, int x)
Bitmapset * bms_difference(const Bitmapset *a, const Bitmapset *b)
Bitmapset * bms_add_members(Bitmapset *a, const Bitmapset *b)
Assert(fmt[strlen(fmt) - 1] !='\n')
List * lappend(List *list, void *datum)
bool query_or_expression_tree_walker(Node *node, bool(*walker)(), void *context, int flags)
bool query_tree_walker(Query *query, bool(*walker)(), void *context, int flags)
Query * query_tree_mutator(Query *query, Node *(*mutator)(), void *context, int flags)
bool expression_tree_walker(Node *node, bool(*walker)(), void *context)
Node * expression_tree_mutator(Node *node, Node *(*mutator)(), void *context)
#define QTW_IGNORE_JOINALIASES
#define IsA(nodeptr, _type_)
#define PVC_RECURSE_AGGREGATES
#define PVC_RECURSE_PLACEHOLDERS
#define PVC_RECURSE_WINDOWFUNCS
#define PVC_INCLUDE_WINDOWFUNCS
#define PVC_INCLUDE_PLACEHOLDERS
#define PVC_INCLUDE_AGGREGATES
#define rt_fetch(rangetable_index, rangetable)
static int list_length(const List *l)
#define forboth(cell1, list1, cell2, list2)
static void * list_nth(const List *list, int n)
Relids get_relids_for_join(Query *query, int joinrelid)
bool checkExprHasSubLink(Node *node)
void IncrementVarSublevelsUp(Node *node, int delta_sublevels_up, int min_sublevels_up)
#define FirstLowInvalidHeapAttributeNumber
static bool pull_varattnos_walker(Node *node, pull_varattnos_context *context)
List * pull_vars_of_level(Node *node, int levelsup)
bool contain_vars_of_level(Node *node, int levelsup)
List * pull_var_clause(Node *node, int flags)
static Node * flatten_join_alias_vars_mutator(Node *node, flatten_join_alias_vars_context *context)
bool contain_var_clause(Node *node)
Relids pull_varnos_of_level(PlannerInfo *root, Node *node, int levelsup)
Relids pull_varnos(PlannerInfo *root, Node *node)
static bool pull_varnos_walker(Node *node, pull_varnos_context *context)
static bool pull_var_clause_walker(Node *node, pull_var_clause_context *context)
static Relids alias_relid_set(Query *query, Relids relids)
static bool contain_vars_of_level_walker(Node *node, int *sublevels_up)
void pull_varattnos(Node *node, Index varno, Bitmapset **varattnos)
static bool locate_var_of_level_walker(Node *node, locate_var_of_level_context *context)
int locate_var_of_level(Node *node, int levelsup)
Node * flatten_join_alias_vars(Query *query, Node *node)
static bool contain_var_clause_walker(Node *node, void *context)
static bool pull_vars_walker(Node *node, pull_vars_context *context)