52 type = ((
const Var *) expr)->vartype;
108 elog(
ERROR,
"cannot get type for untransformed sublink");
118 errmsg(
"could not find array type for data type %s",
149 errmsg(
"could not find array type for data type %s",
312 return ((
const Var *) expr)->vartypmod;
314 return ((
const Const *) expr)->consttypmod;
316 return ((
const Param *) expr)->paramtypmod;
353 elog(
ERROR,
"cannot get type for untransformed sublink");
435 if (arrayexpr->elements ==
NIL)
440 if (arrayexpr->multidims)
444 foreach(elem, arrayexpr->elements)
522 return jexpr->returning->typmod;
782 if (expr->funcretset)
836 coll = ((
const Var *) expr)->varcollid;
839 coll = ((
const Const *) expr)->constcollid;
842 coll = ((
const Param *) expr)->paramcollid;
894 elog(
ERROR,
"cannot get collation for untransformed sublink");
1137 ((
Var *) expr)->varcollid = collation;
1140 ((
Const *) expr)->constcollid = collation;
1143 ((
Param *) expr)->paramcollid = collation;
1146 ((
Aggref *) expr)->aggcollid = collation;
1152 ((
WindowFunc *) expr)->wincollid = collation;
1161 ((
FuncExpr *) expr)->funccollid = collation;
1167 ((
OpExpr *) expr)->opcollid = collation;
1184#ifdef USE_ASSERT_CHECKING
1196 elog(
ERROR,
"cannot set collation for untransformed sublink");
1230 ((
CaseExpr *) expr)->casecollid = collation;
1233 ((
ArrayExpr *) expr)->array_collid = collation;
1247 ((
MinMaxExpr *) expr)->minmaxcollid = collation;
1281 jexpr->collation = collation;
1401 loc = ((
const RangeVar *) expr)->location;
1404 loc = ((
const TableFunc *) expr)->location;
1407 loc = ((
const Var *) expr)->location;
1410 loc = ((
const Const *) expr)->location;
1413 loc = ((
const Param *) expr)->location;
1417 loc = ((
const Aggref *) expr)->location;
1543 loc = ((
const CaseExpr *) expr)->location;
1547 loc = ((
const CaseWhen *) expr)->location;
1551 loc = ((
const ArrayExpr *) expr)->location;
1555 loc = ((
const RowExpr *) expr)->location;
1656 foreach(
lc, (
const List *) expr)
1675 loc = ((
const ColumnRef *) expr)->location;
1678 loc = ((
const ParamRef *) expr)->location;
1681 loc = ((
const A_Const *) expr)->location;
1699 loc = ((
const ResTarget *) expr)->location;
1726 loc = ((
const WindowDef *) expr)->location;
1732 loc = ((
const TypeName *) expr)->location;
1735 loc = ((
const ColumnDef *) expr)->location;
1738 loc = ((
const IndexElem *) expr)->location;
1954 if (
checker(expr->opfuncid, context))
1963 if (
checker(expr->opfuncid, context))
2114#define WALK(n) walker((Node *) (n), context)
2116#define LIST_WALK(l) expression_tree_walker_impl((Node *) (l), walker, context)
2178 if (
WALK(expr->runCondition))
2357 if (
WALK(
jve->formatted_expr))
2446 if (
WALK(cte->search_clause))
2448 if (
WALK(cte->cycle_clause))
2576 if (
WALK(action->qual))
2578 if (
WALK(action->targetList))
2663 if (
WALK(tf->ns_uris))
2671 if (
WALK(tf->coldefexprs))
2673 if (
WALK(tf->colvalexprs))
2675 if (
WALK(tf->passingvalexprs))
2695 if (
WALK(
gp->whereClause))
2700 elog(
ERROR,
"unrecognized node type: %d",
2742 if (
WALK(query->withCheckOptions))
2864 switch (
rte->rtekind)
2895 if (
WALK(
rte->graph_table_columns))
2993#define FLATCOPY(newnode, node, nodetype) \
2994 ( (newnode) = palloc_object(nodetype), \
2995 memcpy((newnode), (node), sizeof(nodetype)) )
2997#define MUTATE(newfield, oldfield, fieldtype) \
2998 ( (newfield) = (fieldtype) mutator((Node *) (oldfield), context) )
3782 elog(
ERROR,
"unrecognized node type: %d",
3827 MUTATE(query->withCheckOptions, query->withCheckOptions,
List *);
3916 switch (
rte->rtekind)
4018 return mutator(node, context);
4136 if (
WALK(
jve->formatted_expr))
4262 if (
WALK(join->alias))
4275 if (
WALK(into->viewQuery))
4491 if (
WALK(
rt->indirection))
4517 if (
WALK(
wd->partitionClause))
4519 if (
WALK(
wd->orderClause))
4521 if (
WALK(
wd->startOffset))
4545 if (
WALK(
rf->coldeflist))
4606 if (
WALK(
tn->arrayBounds))
4772 if (
WALK(
gp->path_pattern_list))
4774 if (
WALK(
gp->whereClause))
4779 elog(
ERROR,
"unrecognized node type: %d",
4801#define PSWALK(n) walker(n, context)
4903 for (
int j = 0;
j < nplans;
j++)
#define Assert(condition)
#define OidIsValid(objectId)
int errcode(int sqlerrcode)
#define ereport(elevel,...)
#define outerPlanState(node)
#define innerPlanState(node)
List * lappend(List *list, void *datum)
List * list_copy(const List *oldlist)
void getTypeOutputInfo(Oid type, Oid *typOutput, bool *typIsVarlena)
RegProcedure get_opcode(Oid opno)
void getTypeInputInfo(Oid type, Oid *typInput, Oid *typIOParam)
Oid get_promoted_array_type(Oid typid)
bool query_tree_walker_impl(Query *query, tree_walker_callback walker, void *context, int flags)
#define FLATCOPY(newnode, node, nodetype)
bool raw_expression_tree_walker_impl(Node *node, tree_walker_callback walker, void *context)
Oid exprType(const Node *expr)
bool range_table_entry_walker_impl(RangeTblEntry *rte, tree_walker_callback walker, void *context, int flags)
bool exprIsLengthCoercion(const Node *expr, int32 *coercedTypmod)
void exprSetCollation(Node *expr, Oid collation)
Oid exprInputCollation(const Node *expr)
int32 exprTypmod(const Node *expr)
static bool planstate_walk_subplans(List *plans, planstate_tree_walker_callback walker, void *context)
bool check_functions_in_node(Node *node, check_function_callback checker, void *context)
Oid exprCollation(const Node *expr)
static bool fix_opfuncids_walker(Node *node, void *context)
void exprSetInputCollation(Node *expr, Oid inputcollation)
bool query_or_expression_tree_walker_impl(Node *node, tree_walker_callback walker, void *context, int flags)
bool expression_tree_walker_impl(Node *node, tree_walker_callback walker, void *context)
bool range_table_walker_impl(List *rtable, tree_walker_callback walker, void *context, int flags)
Node * query_or_expression_tree_mutator_impl(Node *node, tree_mutator_callback mutator, void *context, int flags)
Query * query_tree_mutator_impl(Query *query, tree_mutator_callback mutator, void *context, int flags)
#define MUTATE(newfield, oldfield, fieldtype)
Node * applyRelabelType(Node *arg, Oid rtype, int32 rtypmod, Oid rcollid, CoercionForm rformat, int rlocation, bool overwrite_ok)
static int leftmostLoc(int loc1, int loc2)
Node * strip_implicit_coercions(Node *node)
int exprLocation(const Node *expr)
List * range_table_mutator_impl(List *rtable, tree_mutator_callback mutator, void *context, int flags)
bool expression_returns_set(Node *clause)
bool planstate_tree_walker_impl(PlanState *planstate, planstate_tree_walker_callback walker, void *context)
void fix_opfuncids(Node *node)
Node * expression_tree_mutator_impl(Node *node, tree_mutator_callback mutator, void *context)
Node * relabel_to_typmod(Node *expr, int32 typmod)
static bool expression_returns_set_walker(Node *node, void *context)
void set_sa_opfuncid(ScalarArrayOpExpr *opexpr)
static bool planstate_walk_members(PlanState **planstates, int nplans, planstate_tree_walker_callback walker, void *context)
void set_opfuncid(OpExpr *opexpr)
Node *(* tree_mutator_callback)(Node *node, void *context)
#define QTW_DONT_COPY_QUERY
#define QTW_IGNORE_CTE_SUBQUERIES
#define QTW_IGNORE_RT_SUBQUERIES
#define range_table_walker(rt, w, c, f)
#define query_tree_walker(q, w, c, f)
#define range_table_entry_walker(r, w, c, f)
#define QTW_EXAMINE_RTES_AFTER
#define QTW_EXAMINE_SORTGROUP
bool(* tree_walker_callback)(Node *node, void *context)
#define QTW_IGNORE_GROUPEXPRS
#define expression_tree_walker(n, w, c)
#define query_tree_mutator(q, m, c, f)
bool(* check_function_callback)(Oid func_id, void *context)
bool(* planstate_tree_walker_callback)(PlanState *planstate, void *context)
#define QTW_EXAMINE_RTES_BEFORE
#define range_table_mutator(rt, m, c, f)
#define QTW_IGNORE_RANGE_TABLE
#define QTW_IGNORE_JOINALIASES
#define IsA(nodeptr, _type_)
#define lfirst_node(type, lc)
static int list_length(const List *l)
#define linitial_node(type, l)
#define for_each_from(cell, lst, N)
static rewind_source * source
static int32 DatumGetInt32(Datum X)
static int fc(const char *x)
void check_stack_depth(void)
Node * cycle_mark_default
JsonReturning * returning
JsonTablePathSpec * pathspec
JsonValueExpr * context_item
Node * mergeJoinCondition
OnConflictExpr * onConflict