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;
845 coll = ((
const Aggref *) expr)->aggcollid;
851 coll = ((
const WindowFunc *) expr)->wincollid;
860 coll = ((
const FuncExpr *) expr)->funccollid;
866 coll = ((
const OpExpr *) expr)->opcollid;
894 elog(
ERROR,
"cannot get collation for untransformed sublink");
957 coll = ((
const CaseExpr *) expr)->casecollid;
963 coll = ((
const ArrayExpr *) expr)->array_collid;
977 coll = ((
const MinMaxExpr *) expr)->minmaxcollid;
1013 else if (
ctor->func)
1102 coll = ((
const Aggref *) expr)->inputcollid;
1105 coll = ((
const WindowFunc *) expr)->inputcollid;
1108 coll = ((
const FuncExpr *) expr)->inputcollid;
1111 coll = ((
const OpExpr *) expr)->inputcollid;
1117 coll = ((
const NullIfExpr *) expr)->inputcollid;
1123 coll = ((
const MinMaxExpr *) expr)->inputcollid;
1145 ((
Var *) expr)->varcollid = collation;
1148 ((
Const *) expr)->constcollid = collation;
1151 ((
Param *) expr)->paramcollid = collation;
1154 ((
Aggref *) expr)->aggcollid = collation;
1160 ((
WindowFunc *) expr)->wincollid = collation;
1169 ((
FuncExpr *) expr)->funccollid = collation;
1175 ((
OpExpr *) expr)->opcollid = collation;
1192#ifdef USE_ASSERT_CHECKING
1204 elog(
ERROR,
"cannot set collation for untransformed sublink");
1238 ((
CaseExpr *) expr)->casecollid = collation;
1241 ((
ArrayExpr *) expr)->array_collid = collation;
1255 ((
MinMaxExpr *) expr)->minmaxcollid = collation;
1278 else if (
ctor->func)
1292 jexpr->collation = collation;
1412 loc = ((
const RangeVar *) expr)->location;
1415 loc = ((
const TableFunc *) expr)->location;
1418 loc = ((
const Var *) expr)->location;
1421 loc = ((
const Const *) expr)->location;
1424 loc = ((
const Param *) expr)->location;
1428 loc = ((
const Aggref *) expr)->location;
1554 loc = ((
const CaseExpr *) expr)->location;
1558 loc = ((
const CaseWhen *) expr)->location;
1562 loc = ((
const ArrayExpr *) expr)->location;
1566 loc = ((
const RowExpr *) expr)->location;
1667 foreach(
lc, (
const List *) expr)
1686 loc = ((
const ColumnRef *) expr)->location;
1689 loc = ((
const ParamRef *) expr)->location;
1692 loc = ((
const A_Const *) expr)->location;
1710 loc = ((
const ResTarget *) expr)->location;
1737 loc = ((
const WindowDef *) expr)->location;
1743 loc = ((
const TypeName *) expr)->location;
1746 loc = ((
const ColumnDef *) expr)->location;
1749 loc = ((
const IndexElem *) expr)->location;
1965 if (
checker(expr->opfuncid, context))
1974 if (
checker(expr->opfuncid, context))
2002 foreach(opid,
rcexpr->opnos)
2125#define WALK(n) walker((Node *) (n), context)
2127#define LIST_WALK(l) expression_tree_walker_impl((Node *) (l), walker, context)
2190 if (
WALK(expr->runCondition))
2369 if (
WALK(
jve->formatted_expr))
2458 if (
WALK(cte->search_clause))
2460 if (
WALK(cte->cycle_clause))
2588 if (
WALK(action->qual))
2590 if (
WALK(action->targetList))
2693 if (
WALK(tf->ns_uris))
2701 if (
WALK(tf->coldefexprs))
2703 if (
WALK(tf->colvalexprs))
2705 if (
WALK(tf->passingvalexprs))
2727 if (
WALK(
gp->whereClause))
2732 elog(
ERROR,
"unrecognized node type: %d",
2774 if (
WALK(query->withCheckOptions))
2898 switch (
rte->rtekind)
2929 if (
WALK(
rte->graph_table_columns))
3027#define FLATCOPY(newnode, node, nodetype) \
3028 ( (newnode) = palloc_object(nodetype), \
3029 memcpy((newnode), (node), sizeof(nodetype)) )
3031#define MUTATE(newfield, oldfield, fieldtype) \
3032 ( (newfield) = (fieldtype) mutator((Node *) (oldfield), context) )
3858 elog(
ERROR,
"unrecognized node type: %d",
3903 MUTATE(query->withCheckOptions, query->withCheckOptions,
List *);
3993 switch (
rte->rtekind)
4095 return mutator(node, context);
4213 if (
WALK(
jve->formatted_expr))
4339 if (
WALK(join->alias))
4352 if (
WALK(into->viewQuery))
4568 if (
WALK(
rt->indirection))
4594 if (
WALK(
wd->partitionClause))
4596 if (
WALK(
wd->orderClause))
4598 if (
WALK(
wd->startOffset))
4622 if (
WALK(
rf->coldeflist))
4683 if (
WALK(
tn->arrayBounds))
4851 if (
WALK(
gp->path_pattern_list))
4853 if (
WALK(
gp->whereClause))
4858 elog(
ERROR,
"unrecognized node type: %d",
4880#define PSWALK(n) walker(n, context)
4982 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
ForPortionOfExpr * forPortionOf