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;
78 var->vartypmod = vartypmod;
79 var->varcollid = varcollid;
89 var->varnullingrels = NULL;
90 var->varnosyn = (
Index) varno;
91 var->varattnosyn = varattno;
151 (
errcode(ERRCODE_WRONG_OBJECT_TYPE),
152 errmsg(
"relation \"%s\" does not have a composite type",
193 else if (allowScalar)
249 tle->resname = resname;
260 tle->resjunk = resjunk;
316 if (!constisnull && constlen == -1)
320 cnst->consttypmod = consttypmod;
321 cnst->constcollid = constcollid;
322 cnst->constlen = constlen;
323 cnst->constvalue = constvalue;
324 cnst->constisnull = constisnull;
325 cnst->constbyval = constbyval;
377 b->location = location;
394 a->colnames = colnames;
411 r->resulttypmod = rtypmod;
412 r->resultcollid = rcollid;
413 r->relabelformat = rformat;
550 funcexpr->
funcid = funcid;
551 funcexpr->funcresulttype = rettype;
552 funcexpr->funcretset =
false;
553 funcexpr->funcvariadic =
false;
554 funcexpr->funcformat = fformat;
555 funcexpr->funccollid = funccollid;
556 funcexpr->inputcollid = inputcollid;
591 res->defnamespace = NULL;
595 res->location = location;
610 res->defnamespace = nameSpace;
613 res->defaction = defaction;
614 res->location = location;
653 Oid opcollid,
Oid inputcollid)
659 expr->opresulttype = opresulttype;
660 expr->opretset = opretset;
661 expr->opcollid = opcollid;
662 expr->inputcollid = inputcollid;
668 return (
Expr *) expr;
682 expr->
args = andclauses;
684 return (
Expr *) expr;
698 expr->
args = orclauses;
700 return (
Expr *) expr;
716 return (
Expr *) expr;
751 if (andclauses ==
NIL)
772 !((
Const *) clause)->constisnull &&
785 List *predicates,
bool unique,
bool nulls_not_distinct,
786 bool isready,
bool concurrent,
bool summarizing,
787 bool withoutoverlaps)
805 Assert(!summarizing || (numkeyattrs == numattrs));
909 behavior->
btype = btype;
910 behavior->
expr = expr;
937 bool unique_keys,
int location)
966 pathspec->
location = string_location;
981 path->
value = pathvalue;
982 path->
name = pathname;
Datum boolop(PG_FUNCTION_ARGS)
#define InvalidAttrNumber
#define Assert(condition)
#define OidIsValid(objectId)
static void PGresult * res
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
String * makeString(char *str)