Skip to content

Commit fa5cbc3

Browse files
committed
Support all Define stmts
1 parent 9d6b779 commit fa5cbc3

File tree

1 file changed

+40
-5
lines changed

1 file changed

+40
-5
lines changed

src/backend/parser/cypher_gram.y

+40-5
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
283283
AlterGroupStmt
284284
AlterRoleStmt AlterRoleSetStmt AlterOwnerStmt AlterObjectSchemaStmt AlterOperatorStmt
285285
AlterTableStmt AlterTblSpcStmt AnalyzeStmt AlterOpFamilyStmt AlterTypeStmt
286-
CreateConversionStmt CreateOpFamilyStmt CallStmt CreateStatsStmt
286+
CreateConversionStmt CreateOpFamilyStmt CallStmt CreateStatsStmt ClosePortalStmt
287287
CopyStmt ClusterStmt CreateAsStmt CreateOpClassStmt CreateGroupStmt CreatePolicyStmt
288288
CreateTransformStmt DefACLAction
289289
CreateCastStmt CreatedbStmt CreateEventTrigStmt CreateSchemaStmt
@@ -615,6 +615,7 @@ static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
615615
opt_type_modifiers
616616
def_list operator_def_list
617617
execute_param_clause using_clause
618+
opt_enum_val_list enum_val_list
618619
indirection opt_indirection
619620
attrs
620621
var_list
@@ -900,6 +901,7 @@ stmt:
900901
| CreateConversionStmt
901902
| ConstraintsSetStmt
902903
| CopyStmt
904+
| ClosePortalStmt
903905
| ClusterStmt
904906
| CreateAsStmt
905907
| CreateCastStmt
@@ -2858,6 +2860,29 @@ opt_nowait_or_skip:
28582860
;
28592861

28602862

2863+
2864+
/*****************************************************************************
2865+
*
2866+
* QUERY :
2867+
* close <portalname>
2868+
*
2869+
*****************************************************************************/
2870+
2871+
ClosePortalStmt:
2872+
CLOSE cursor_name
2873+
{
2874+
ClosePortalStmt *n = makeNode(ClosePortalStmt);
2875+
n->portalname = $2;
2876+
$$ = (Node *)n;
2877+
}
2878+
| CLOSE ALL
2879+
{
2880+
ClosePortalStmt *n = makeNode(ClosePortalStmt);
2881+
n->portalname = NULL;
2882+
$$ = (Node *)n;
2883+
}
2884+
;
2885+
28612886
/*****************************************************************************
28622887
*
28632888
* QUERY :
@@ -5252,6 +5277,16 @@ old_aggr_elem: IDENTIFIER '=' def_arg
52525277
}
52535278
;
52545279

5280+
opt_enum_val_list:
5281+
enum_val_list { $$ = $1; }
5282+
| /*EMPTY*/ { $$ = NIL; }
5283+
;
5284+
5285+
enum_val_list: Sconst
5286+
{ $$ = list_make1(makeString($1)); }
5287+
| enum_val_list ',' Sconst
5288+
{ $$ = lappend($1, makeString($3)); }
5289+
;
52555290

52565291
OptInherit: INHERITS '(' qualified_name_list ')' { $$ = $3; }
52575292
| /*EMPTY*/ { $$ = NIL; }
@@ -8435,21 +8470,21 @@ DefineStmt:
84358470
n->coldeflist = $6;
84368471
$$ = (Node *)n;
84378472
}
8438-
/*| CREATE TYPE_P any_name AS ENUM_P '(' opt_enum_val_list ')'
8473+
| CREATE TYPE_P any_name AS ENUM_P '(' opt_enum_val_list ')'
84398474
{
84408475
CreateEnumStmt *n = makeNode(CreateEnumStmt);
84418476
n->typeName = $3;
84428477
n->vals = $7;
84438478
$$ = (Node *)n;
8444-
}*/
8479+
}
84458480
| CREATE TYPE_P any_name AS RANGE definition
84468481
{
84478482
CreateRangeStmt *n = makeNode(CreateRangeStmt);
84488483
n->typeName = $3;
84498484
n->params = $6;
84508485
$$ = (Node *)n;
84518486
}
8452-
/*| CREATE TEXT_P SEARCH PARSER any_name definition TODO
8487+
| CREATE TEXT_P SEARCH PARSER any_name definition
84538488
{
84548489
DefineStmt *n = makeNode(DefineStmt);
84558490
n->kind = OBJECT_TSPARSER;
@@ -8522,7 +8557,7 @@ DefineStmt:
85228557
n->definition = list_make1(makeDefElem("from", (Node *) $8, @8));
85238558
n->if_not_exists = true;
85248559
$$ = (Node *)n;
8525-
}*/
8560+
}
85268561
;
85278562

85288563
definition: '(' def_list ')' { $$ = $2; }

0 commit comments

Comments
 (0)