Skip to content

Commit 4efa2c1

Browse files
committed
Fixed quota statements
1 parent aefc7c9 commit 4efa2c1

File tree

3 files changed

+19
-0
lines changed

3 files changed

+19
-0
lines changed

jdbc-v2/src/main/antlr4/com/clickhouse/jdbc/internal/parser/ClickHouseLexer.g4

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,7 @@ KAFKA : K A F K A;
163163
KERBEROS : K E R B E R O S;
164164
KEY : K E Y;
165165
KEYS : K E Y S;
166+
KEYED : K E Y E D;
166167
KILL : K I L L;
167168
LAST : L A S T;
168169
LAYOUT : L A Y O U T;
@@ -172,6 +173,7 @@ LEFT : L E F T;
172173
LIFETIME : L I F E T I M E;
173174
LIKE : L I K E;
174175
LIMIT : L I M I T;
176+
LIMITS : L I M I T S;
175177
LISTEN : L I S T E N ;
176178
LIVE : L I V E;
177179
LOADING : L O A D I N G;
@@ -210,6 +212,7 @@ NULL_SQL : N U L L; // conflicts with macro NULL
210212
ODBC : O D B C;
211213
OFFSET : O F F S E T;
212214
ON : O N;
215+
ONLY : O N L Y;
213216
OPTIMIZE : O P T I M I Z E;
214217
OPTION : O P T I O N;
215218
ORDER : O R D E R;
@@ -238,6 +241,7 @@ PROFILE : P R O F I L E;
238241
PROFILES : P R O F I L E S;
239242
PROJECTION : P R O J E C T I O N;
240243
PULLING : P U L L I N G ;
244+
RANDOMIZED : R A N D O M I Z E D;
241245
REVOKE : R E V O K E;
242246
QUARTER : Q U A R T E R;
243247
QUEUE : Q U E U E ;
@@ -317,6 +321,7 @@ TIMESTAMP : T I M E S T A M P;
317321
TOP : T O P;
318322
TOTALS : T O T A L S;
319323
TO : T O;
324+
TRACKING : T R A C K I N G;
320325
TRAILING : T R A I L I N G;
321326
TRANSACTION : T R A N S A C T I O N;
322327
TREE : T R E E;

jdbc-v2/src/main/antlr4/com/clickhouse/jdbc/internal/parser/ClickHouseParser.g4

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,18 @@ createStmt
190190
| ( INHERIT identifier))? (TO identifier | ALL | ALL EXCEPT identifier)? # createProfileStmt
191191
| CREATE FUNCTION identifier clusterClause? AS LPAREN (identifier)? (COMMA identifier)? RPAREN ARROW .+? #createFunctionStmt
192192
| CREATE NAMED COLLECTION (IF NOT EXISTS)? identifier clusterClause? AS nameCollectionKey (COMMA nameCollectionKey)* #createNamedCollectionStmt
193+
| CREATE QUOTA (IF NOT EXISTS | OR REPLACE)? identifier clusterClause? (IN identifier)?
194+
(KEYED BY identifier | NOT KEYED)?
195+
quotaForClause (COMMA quotaForClause)*
196+
(TO (identifier (COMMA identifier)* | ALL | CURRENT_USER | ALL EXCEPT identifier (COMMA identifier)* ))? # createQuotaStmt
197+
;
198+
199+
quotaMaxExpr
200+
: identifier EQ_SINGLE numberLiteral
201+
;
202+
203+
quotaForClause
204+
: FOR RANDOMIZED? INTERVAL numberLiteral interval (MAX quotaMaxExpr (COMMA quotaMaxExpr)*)+?
193205
;
194206

195207
nameCollectionKey

jdbc-v2/src/test/java/com/clickhouse/jdbc/internal/SqlParserTest.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -538,6 +538,8 @@ public static Object[][] testStatementWithoutResultSetDP() {
538538
{"CREATE ROW POLICY pol1 ON mydb.table1 USING b=1 TO mira, peter", 0, false},
539539
{"CREATE ROW POLICY pol2 ON mydb.table1 USING c=2 TO peter, antonio", 0, false},
540540
{"CREATE ROW POLICY pol2 ON mydb.table1 USING c=2 AS RESTRICTIVE TO peter, antonio", 0, false},
541+
{"CREATE QUOTA qA FOR INTERVAL 15 month MAX queries = 123 TO role1, role2", 0, false},
542+
{"CREATE QUOTA qA FOR INTERVAL 15 month MAX queries = 123 TO ALL EXCEPT role3", 0, false},
541543
{"CREATE QUOTA qA FOR INTERVAL 15 month MAX queries = 123 TO CURRENT_USER", 0, false},
542544
{"CREATE QUOTA qB FOR INTERVAL 30 minute MAX execution_time = 0.5, FOR INTERVAL 5 quarter MAX queries = 321, errors = 10 TO default", 0, false},
543545
{"CREATE SETTINGS PROFILE max_memory_usage_profile SETTINGS max_memory_usage = 100000001 MIN 90000000 MAX 110000000 TO robin", 0, false},

0 commit comments

Comments
 (0)