86 (
errcode(ERRCODE_PROGRAM_LIMIT_EXCEEDED),
87 errmsg(
"target lists can have at most %d entries",
149 pcbstate->
pstate = pstate;
212 if (*containerType == INT2VECTOROID)
213 *containerType = INT2ARRAYOID;
214 else if (*containerType == OIDVECTOROID)
215 *containerType = OIDARRAYOID;
251 int32 containerTypMod,
258 bool isSlice =
false;
276 (
errcode(ERRCODE_DATATYPE_MISMATCH),
277 errmsg(
"cannot subscript type %s because it does not support subscripting",
288 foreach(idx, indirection)
317 sbsroutines->
transform(sbsref, indirection, pstate,
318 isSlice, isAssignment);
326 (
errcode(ERRCODE_DATATYPE_MISMATCH),
327 errmsg(
"cannot subscript type %s because it does not support subscripting",
368 typelen =
sizeof(
int32);
382 if (val64 == (int64) val32)
387 typelen =
sizeof(
int32);
395 typelen =
sizeof(int64);
Oid getBaseTypeAndTypmod(Oid typid, int32 *typmod)
void table_close(Relation relation, LOCKMODE lockmode)
int exprLocation(const Node *expr)
#define MaxTupleAttributeNumber
QueryEnvironment * p_queryEnv
ParseState * parentParseState
CoerceParamHook p_coerce_param_hook
int errcode(int sqlerrcode)
Datum idx(PG_FUNCTION_ARGS)
ErrorContextCallback errcallback
Const * make_const(ParseState *pstate, Value *value, int location)
Const * makeConst(Oid consttype, int32 consttypmod, Oid constcollid, int constlen, Datum constvalue, bool constisnull, bool constbyval)
void(* callback)(void *arg)
struct ErrorContextCallback * previous
#define OidIsValid(objectId)
const struct SubscriptRoutines * getSubscriptingRoutines(Oid typid, Oid *typelemp)
PostParseColumnRefHook p_post_columnref_hook
ParseState * make_parsestate(ParseState *parentParseState)
int pg_mbstrlen_with_len(const char *mbstr, int limit)
ErrorContextCallback * error_context_stack
void pfree(void *pointer)
void cancel_parser_errposition_callback(ParseCallbackState *pcbstate)
#define ObjectIdGetDatum(X)
Datum bit_in(PG_FUNCTION_ARGS)
#define lfirst_node(type, lc)
ParseParamRefHook p_paramref_hook
SubscriptingRef * transformContainerSubscripts(ParseState *pstate, Node *containerBase, Oid containerType, int32 containerTypMod, List *indirection, bool isAssignment)
#define CStringGetDatum(X)
Datum numeric_in(PG_FUNCTION_ARGS)
const char * p_sourcetext
Datum Int64GetDatum(int64 X)
void transformContainerType(Oid *containerType, int32 *containerTypmod)
void setup_parser_errposition_callback(ParseCallbackState *pcbstate, ParseState *pstate, int location)
#define DirectFunctionCall3(func, arg1, arg2, arg3)
void * palloc0(Size size)
#define ereport(elevel,...)
int parser_errposition(ParseState *pstate, int location)
int errmsg(const char *fmt,...)
SubscriptTransform transform
Relation p_target_relation
PreParseColumnRefHook p_pre_columnref_hook
void free_parsestate(ParseState *pstate)
static void pcb_error_callback(void *arg)
int errposition(int cursorpos)
bool scanint8(const char *str, bool errorOK, int64 *result)