29#include "utils/fmgroids.h"
47 return "edge pointing left";
49 return "edge pointing right";
51 return "edge pointing any direction";
53 return "nested path pattern";
98 errmsg(
"\"*\" is not supported here"),
103 errmsg(
"\"*\" not allowed here"),
123 gpr->location =
cref->location;
124 gpr->elvarname = elvarname;
155 if (labelexpr ==
NULL)
179 lref->labelid = labelid;
192 foreach(
lc,
be->args)
206 elog(
ERROR,
"unsupported label expression node: %d", (
int)
nodeTag(labelexpr));
236 errmsg(
"element pattern quantifier is not supported")));
261 return (
Node *) result;
282 errmsg(
"multiple path patterns in one GRAPH_TABLE clause not supported")));
287 return (
Node *) result;
308 return (
Node *) graph_pattern;
#define Assert(condition)
int errcode(int sqlerrcode)
#define ereport(elevel,...)
#define HeapTupleIsValid(tuple)
static void * GETSTRUCT(const HeapTupleData *tuple)
List * lappend(List *list, void *datum)
bool list_member(const List *list, const void *datum)
char * get_rel_name(Oid relid)
Expr * makeBoolExpr(BoolExprType boolop, List *args, int location)
char * pstrdup(const char *in)
#define IsA(nodeptr, _type_)
#define castNode(_type_, nodeptr)
void assign_expr_collations(ParseState *pstate, Node *expr)
Node * transformExpr(ParseState *pstate, Node *expr, ParseExprKind exprKind)
static Node * transformPathTerm(ParseState *pstate, List *path_term)
static const char * get_gep_kind_name(GraphElementPatternKind gepkind)
static Node * transformGraphElementPattern(ParseState *pstate, GraphElementPattern *gep)
static Node * transformLabelExpr(GraphTableParseState *gpstate, Node *labelexpr)
Node * transformGraphPattern(ParseState *pstate, GraphPattern *graph_pattern)
static Node * transformPathPatternList(ParseState *pstate, List *path_pattern)
Node * transformGraphTablePropertyRef(ParseState *pstate, ColumnRef *cref)
int parser_errposition(ParseState *pstate, int location)
@ EXPR_KIND_SELECT_TARGET
#define IS_EDGE_PATTERN(kind)
static int list_length(const List *l)
#define foreach_node(type, var, lst)
END_CATALOG_STRUCT typedef FormData_pg_propgraph_property * Form_pg_propgraph_property
static Datum ObjectIdGetDatum(Oid X)
static Datum CStringGetDatum(const char *X)
void check_stack_depth(void)
ParseExprKind p_expr_kind
GraphTableParseState * p_graph_table_pstate
void ReleaseSysCache(HeapTuple tuple)
HeapTuple SearchSysCache2(SysCacheIdentifier cacheId, Datum key1, Datum key2)
#define GetSysCacheOid2(cacheId, oidcol, key1, key2)
String * makeString(char *str)