-
Notifications
You must be signed in to change notification settings - Fork 20
/
Copy pathn1ql-ddl.ebnf
36 lines (21 loc) · 924 Bytes
/
n1ql-ddl.ebnf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/****************
* n1ql ddl *
****************/
/*
* ddl
*/
ddl-stmt ::= index-stmt
index-stmt ::= create-primary-index | create-index | drop-primary-index | drop-index | build-indexes
/*
* index
*/
create-primary-index ::= 'CREATE' 'PRIMARY' 'INDEX' index-name? 'ON' named-keyspace-ref index-using? index-with?
index-name ::= identifier
named-keyspace-ref ::= (namespace ':')? keyspace
index-using ::= 'USING' ('VIEW' | 'GSI')
index-with ::= 'WITH' expr
create-index ::= 'CREATE' 'INDEX' index-name 'ON' named-keyspace-ref '(' expr (',' expr)* ')' where-clause? index-using? index-with?
partition ::= 'PARTITION' 'BY' expr
drop-primary-index ::= 'DROP' 'PRIMARY' 'INDEX' 'ON' named-keyspace-ref index-using?
drop-index ::= 'DROP' 'INDEX' named-keyspace-ref '.' index-name index-using?
build-indexes ::= 'BUILD' 'INDEXES' 'ON' named-keyspace-ref '(' index-name (',' index-name)* ')' index-using?