31 Node *lexpr,
Node *rexpr,
int location)
39 a->location = location;
49 Node *lexpr,
Node *rexpr,
int location)
57 a->location = location;
77 var->vartype = vartype;
91 var->varnullingrels =
NULL;
92 var->varnosyn = (
Index) varno;
93 var->varattnosyn = varattno;
146 switch (
rte->rtekind)
154 errmsg(
"relation \"%s\" does not have a composite type",
180 errmsg(
"relation \"%s\" does not have a composite type",
183 else if (
rte->functions)
305 tle->ressortgroupref = 0;
368 cnst->consttype = consttype;
426 b->location = location;
443 a->colnames = colnames;
600 funcexpr->
funcid = funcid;
601 funcexpr->funcresulttype = rettype;
602 funcexpr->funcretset =
false;
603 funcexpr->funcvariadic =
false;
604 funcexpr->funcformat =
fformat;
606 funcexpr->inputcollid = inputcollid;
607 funcexpr->
args = args;
712 expr->inputcollid = inputcollid;
718 return (
Expr *) expr;
734 return (
Expr *) expr;
750 return (
Expr *) expr;
766 return (
Expr *) expr;
928 jf->location = location;
943 jve->raw_expr = raw_expr;
944 jve->formatted_expr = formatted_expr;
959 behavior->
btype = btype;
960 behavior->
expr = expr;
987 bool unique_keys,
int location)
1032 path->
name = pathname;
Datum boolop(PG_FUNCTION_ARGS)
#define InvalidAttrNumber
#define Assert(condition)
#define OidIsValid(objectId)
int errcode(int sqlerrcode)
int errmsg(const char *fmt,...)
#define ereport(elevel,...)
#define PG_DETOAST_DATUM(datum)
char * get_rel_name(Oid relid)
bool type_is_rowtype(Oid typid)
void get_typlenbyval(Oid typid, int16 *typlen, bool *typbyval)
Oid get_rel_type_id(Oid relid)
Alias * makeAlias(const char *aliasname, List *colnames)
Expr * make_orclause(List *orclauses)
Expr * make_ands_explicit(List *andclauses)
Expr * makeBoolExpr(BoolExprType boolop, List *args, int location)
VacuumRelation * makeVacuumRelation(RangeVar *relation, Oid oid, List *va_cols)
DefElem * makeDefElem(char *name, Node *arg, int location)
A_Expr * makeA_Expr(A_Expr_Kind kind, List *name, Node *lexpr, Node *rexpr, int location)
TypeName * makeTypeNameFromNameList(List *names)
Var * makeVarFromTargetEntry(int varno, TargetEntry *tle)
FromExpr * makeFromExpr(List *fromlist, Node *quals)
JsonBehavior * makeJsonBehavior(JsonBehaviorType btype, Node *expr, int location)
IndexInfo * makeIndexInfo(int numattrs, int numkeyattrs, Oid amoid, List *expressions, List *predicates, bool unique, bool nulls_not_distinct, bool isready, bool concurrent, bool summarizing, bool withoutoverlaps)
JsonTablePath * makeJsonTablePath(Const *pathvalue, char *pathname)
DefElem * makeDefElemExtended(char *nameSpace, char *name, Node *arg, DefElemAction defaction, int location)
A_Expr * makeSimpleA_Expr(A_Expr_Kind kind, char *name, Node *lexpr, Node *rexpr, int location)
Var * makeVar(int varno, AttrNumber varattno, Oid vartype, int32 vartypmod, Oid varcollid, Index varlevelsup)
Node * makeJsonKeyValue(Node *key, Node *value)
ColumnDef * makeColumnDef(const char *colname, Oid typeOid, int32 typmod, Oid collOid)
Const * makeNullConst(Oid consttype, int32 consttypmod, Oid constcollid)
Var * makeWholeRowVar(RangeTblEntry *rte, int varno, Index varlevelsup, bool allowScalar)
Node * makeBoolConst(bool value, bool isnull)
RelabelType * makeRelabelType(Expr *arg, Oid rtype, int32 rtypmod, Oid rcollid, CoercionForm rformat)
Node * makeStringConst(char *str, int location)
RangeVar * makeRangeVar(char *schemaname, char *relname, int location)
TypeName * makeTypeName(char *typnam)
Expr * make_andclause(List *andclauses)
FuncCall * makeFuncCall(List *name, List *args, CoercionForm funcformat, int location)
JsonTablePathSpec * makeJsonTablePathSpec(char *string, char *name, int string_location, int name_location)
TargetEntry * makeTargetEntry(Expr *expr, AttrNumber resno, char *resname, bool resjunk)
FuncExpr * makeFuncExpr(Oid funcid, Oid rettype, List *args, Oid funccollid, Oid inputcollid, CoercionForm fformat)
Expr * make_opclause(Oid opno, Oid opresulttype, bool opretset, Expr *leftop, Expr *rightop, Oid opcollid, Oid inputcollid)
Constraint * makeNotNullConstraint(String *colname)
Expr * make_notclause(Expr *notclause)
JsonValueExpr * makeJsonValueExpr(Expr *raw_expr, Expr *formatted_expr, JsonFormat *format)
Node * make_and_qual(Node *qual1, Node *qual2)
JsonFormat * makeJsonFormat(JsonFormatType type, JsonEncoding encoding, int location)
Const * makeConst(Oid consttype, int32 consttypmod, Oid constcollid, int constlen, Datum constvalue, bool constisnull, bool constbyval)
GroupingSet * makeGroupingSet(GroupingSetKind kind, List *content, int location)
List * make_ands_implicit(Expr *clause)
TypeName * makeTypeNameFromOid(Oid typeOid, int32 typmod)
TargetEntry * flatCopyTargetEntry(TargetEntry *src_tle)
Node * makeJsonIsPredicate(Node *expr, JsonFormat *format, JsonValueType item_type, bool unique_keys, int location)
char * pstrdup(const char *in)
MemoryContext CurrentMemoryContext
Oid exprType(const Node *expr)
int32 exprTypmod(const Node *expr)
Oid exprCollation(const Node *expr)
static bool is_andclause(const void *clause)
#define IsA(nodeptr, _type_)
#define castNode(_type_, nodeptr)
static int list_length(const List *l)
#define list_make2(x1, x2)
static bool DatumGetBool(Datum X)
static Datum PointerGetDatum(const void *X)
static Datum BoolGetDatum(bool X)
CollateClause * collClause
uint16 * ii_ExclusionStrats
ExprState * ii_PredicateState
List * ii_ExpressionsState
VarReturningType varreturningtype
String * makeString(char *str)