30#define JSONPATH_VERSION (0x01)
31#define JSONPATH_LAX (0x80000000)
32#define JSONPATH_HDRSZ (offsetof(JsonPath, data))
46#define PG_GETARG_JSONPATH_P(x) DatumGetJsonPathP(PG_GETARG_DATUM(x))
47#define PG_GETARG_JSONPATH_P_COPY(x) DatumGetJsonPathPCopy(PG_GETARG_DATUM(x))
48#define PG_RETURN_JSONPATH_P(p) PG_RETURN_POINTER(p)
50#define jspIsScalar(type) ((type) >= jpiNull && (type) <= jpiBool)
129#define JSP_REGEX_ICASE 0x01
130#define JSP_REGEX_DOTALL 0x02
131#define JSP_REGEX_MLINE 0x04
132#define JSP_REGEX_WSPACE 0x08
133#define JSP_REGEX_QUOTE 0x10
202#define jspHasNext(jsp) ((jsp)->nextPos > 0)
287 struct Node *escontext);
290 struct Node *escontext);
310 const char *column_name);
313 const char *column_name);
#define FLEXIBLE_ARRAY_MEMBER
#define PG_DETOAST_DATUM_COPY(datum)
#define PG_DETOAST_DATUM(datum)
PGDLLIMPORT const TableFuncRoutine JsonbTableRoutine
bool JsonPathExists(Datum jb, JsonPath *jp, bool *error, List *vars)
bool jspIsMutable(JsonPath *path, List *varnames, List *varexprs)
void jspGetLeftArg(JsonPathItem *v, JsonPathItem *a)
void jspGetArg(JsonPathItem *v, JsonPathItem *a)
void jspInitByBuffer(JsonPathItem *v, char *base, int32 pos)
bool jspGetBool(JsonPathItem *v)
void jspInit(JsonPathItem *v, JsonPath *js)
Datum JsonPathQuery(Datum jb, JsonPath *jp, JsonWrapper wrapper, bool *empty, bool *error, List *vars, const char *column_name)
char * jspGetString(JsonPathItem *v, int32 *len)
bool jspConvertRegexFlags(uint32 xflags, int *result, struct Node *escontext)
Numeric jspGetNumeric(JsonPathItem *v)
bool jspGetArraySubscript(JsonPathItem *v, JsonPathItem *from, JsonPathItem *to, int i)
static JsonPath * DatumGetJsonPathPCopy(Datum d)
const char * jspOperationName(JsonPathItemType type)
bool jspGetNext(JsonPathItem *v, JsonPathItem *a)
JsonbValue * JsonPathValue(Datum jb, JsonPath *jp, bool *empty, bool *error, List *vars, const char *column_name)
JsonPathParseResult * parsejsonpath(const char *str, int len, struct Node *escontext)
static JsonPath * DatumGetJsonPathP(Datum d)
void jspGetRightArg(JsonPathItem *v, JsonPathItem *a)
struct JsonPathItem::@158::@162 value
struct JsonPathItem::@158::@160 array
struct JsonPathItem::@158::@163 like_regex
struct JsonPathItem::@158::@159 args
struct JsonPathItem::@158::@160::@164 * elems
union JsonPathItem::@158 content
struct JsonPathItem::@158::@161 anybounds
struct JsonPathParseItem::@165::@166 args
struct JsonPathParseItem::@165::@168 anybounds
JsonPathParseItem * right
struct JsonPathParseItem::@165::@167 array
struct JsonPathParseItem::@165::@169 like_regex
struct JsonPathParseItem::@165::@170 string
struct JsonPathParseItem::@165::@167::@171 * elems
union JsonPathParseItem::@165 value