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",
309 return ((
const Var *) expr)->vartypmod;
311 return ((
const Const *) expr)->consttypmod;
313 return ((
const Param *) expr)->paramtypmod;
350 elog(
ERROR,
"cannot get type for untransformed sublink");
432 if (arrayexpr->elements ==
NIL)
437 if (arrayexpr->multidims)
441 foreach(elem, arrayexpr->elements)
519 return jexpr->returning->typmod;
777 if (expr->funcretset)
831 coll = ((
const Var *) expr)->varcollid;
834 coll = ((
const Const *) expr)->constcollid;
837 coll = ((
const Param *) expr)->paramcollid;
889 elog(
ERROR,
"cannot get collation for untransformed sublink");
1129 ((
Var *) expr)->varcollid = collation;
1132 ((
Const *) expr)->constcollid = collation;
1135 ((
Param *) expr)->paramcollid = collation;
1138 ((
Aggref *) expr)->aggcollid = collation;
1144 ((
WindowFunc *) expr)->wincollid = collation;
1153 ((
FuncExpr *) expr)->funccollid = collation;
1159 ((
OpExpr *) expr)->opcollid = collation;
1176#ifdef USE_ASSERT_CHECKING
1188 elog(
ERROR,
"cannot set collation for untransformed sublink");
1222 ((
CaseExpr *) expr)->casecollid = collation;
1225 ((
ArrayExpr *) expr)->array_collid = collation;
1239 ((
MinMaxExpr *) expr)->minmaxcollid = collation;
1273 jexpr->collation = collation;
1393 loc = ((
const RangeVar *) expr)->location;
1396 loc = ((
const TableFunc *) expr)->location;
1399 loc = ((
const Var *) expr)->location;
1402 loc = ((
const Const *) expr)->location;
1405 loc = ((
const Param *) expr)->location;
1409 loc = ((
const Aggref *) expr)->location;
1535 loc = ((
const CaseExpr *) expr)->location;
1539 loc = ((
const CaseWhen *) expr)->location;
1543 loc = ((
const ArrayExpr *) expr)->location;
1547 loc = ((
const RowExpr *) expr)->location;
1648 foreach(
lc, (
const List *) expr)
1667 loc = ((
const ColumnRef *) expr)->location;
1670 loc = ((
const ParamRef *) expr)->location;
1673 loc = ((
const A_Const *) expr)->location;
1691 loc = ((
const ResTarget *) expr)->location;
1718 loc = ((
const WindowDef *) expr)->location;
1724 loc = ((
const TypeName *) expr)->location;
1727 loc = ((
const ColumnDef *) expr)->location;
1730 loc = ((
const IndexElem *) expr)->location;
1946 if (
checker(expr->opfuncid, context))
1955 if (
checker(expr->opfuncid, context))
2106#define WALK(n) walker((Node *) (n), context)
2108#define LIST_WALK(l) expression_tree_walker_impl((Node *) (l), walker, context)
2169 if (
WALK(expr->runCondition))
2348 if (
WALK(
jve->formatted_expr))
2437 if (
WALK(cte->search_clause))
2439 if (
WALK(cte->cycle_clause))
2567 if (
WALK(action->qual))
2569 if (
WALK(action->targetList))
2654 if (
WALK(tf->ns_uris))
2662 if (
WALK(tf->coldefexprs))
2664 if (
WALK(tf->colvalexprs))
2666 if (
WALK(tf->passingvalexprs))
2671 elog(
ERROR,
"unrecognized node type: %d",
2713 if (
WALK(query->withCheckOptions))
2835 switch (
rte->rtekind)
2958#define FLATCOPY(newnode, node, nodetype) \
2959 ( (newnode) = palloc_object(nodetype), \
2960 memcpy((newnode), (node), sizeof(nodetype)) )
2962#define MUTATE(newfield, oldfield, fieldtype) \
2963 ( (newfield) = (fieldtype) mutator((Node *) (oldfield), context) )
3747 elog(
ERROR,
"unrecognized node type: %d",
3792 MUTATE(query->withCheckOptions, query->withCheckOptions,
List *);
3881 switch (
rte->rtekind)
3979 return mutator(node, context);
4097 if (
WALK(
jve->formatted_expr))
4223 if (
WALK(join->alias))
4236 if (
WALK(into->viewQuery))
4452 if (
WALK(
rt->indirection))
4478 if (
WALK(
wd->partitionClause))
4480 if (
WALK(
wd->orderClause))
4482 if (
WALK(
wd->startOffset))
4506 if (
WALK(
rf->coldeflist))
4555 if (
WALK(
tn->arrayBounds))
4708 elog(
ERROR,
"unrecognized node type: %d",
4730#define PSWALK(n) walker(n, context)
4832 for (
int j = 0;
j < nplans;
j++)
#define Assert(condition)
#define OidIsValid(objectId)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#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