mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-11-21 15:12:02 +00:00
add support of window function in antlr grammar
This commit is contained in:
parent
746964af88
commit
693060552a
@ -35,6 +35,7 @@ CONSTRAINT: C O N S T R A I N T;
|
||||
CREATE: C R E A T E;
|
||||
CROSS: C R O S S;
|
||||
CUBE: C U B E;
|
||||
CURRENT: C U R R E N T;
|
||||
DATABASE: D A T A B A S E;
|
||||
DATABASES: D A T A B A S E S;
|
||||
DATE: D A T E;
|
||||
@ -65,6 +66,7 @@ FETCHES: F E T C H E S;
|
||||
FINAL: F I N A L;
|
||||
FIRST: F I R S T;
|
||||
FLUSH: F L U S H;
|
||||
FOLLOWING: F O L L O W I N G;
|
||||
FOR: F O R;
|
||||
FORMAT: F O R M A T;
|
||||
FREEZE: F R E E Z E;
|
||||
@ -125,8 +127,10 @@ OR: O R;
|
||||
ORDER: O R D E R;
|
||||
OUTER: O U T E R;
|
||||
OUTFILE: O U T F I L E;
|
||||
OVER: O V E R;
|
||||
PARTITION: P A R T I T I O N;
|
||||
POPULATE: P O P U L A T E;
|
||||
PRECEDING: P R E C E D I N G;
|
||||
PREWHERE: P R E W H E R E;
|
||||
PRIMARY: P R I M A R Y;
|
||||
PROJECTION: P R O J E C T I O N;
|
||||
@ -140,6 +144,8 @@ REPLICA: R E P L I C A;
|
||||
REPLICATED: R E P L I C A T E D;
|
||||
RIGHT: R I G H T;
|
||||
ROLLUP: R O L L U P;
|
||||
ROW: R O W;
|
||||
ROWS: R O W S;
|
||||
SAMPLE: S A M P L E;
|
||||
SECOND: S E C O N D;
|
||||
SELECT: S E L E C T;
|
||||
@ -171,6 +177,7 @@ TRIM: T R I M;
|
||||
TRUNCATE: T R U N C A T E;
|
||||
TTL: T T L;
|
||||
TYPE: T Y P E;
|
||||
UNBOUNDED: U N B O U N D E D;
|
||||
UNION: U N I O N;
|
||||
UPDATE: U P D A T E;
|
||||
USE: U S E;
|
||||
@ -183,6 +190,7 @@ WATCH: W A T C H;
|
||||
WEEK: W E E K;
|
||||
WHEN: W H E N;
|
||||
WHERE: W H E R E;
|
||||
WINDOW: W I N D O W;
|
||||
WITH: W I T H;
|
||||
YEAR: Y E A R | Y Y Y Y;
|
||||
|
||||
|
@ -243,6 +243,7 @@ selectStmt:
|
||||
SELECT DISTINCT? topClause? columnExprList
|
||||
fromClause?
|
||||
arrayJoinClause?
|
||||
windowClause?
|
||||
prewhereClause?
|
||||
whereClause?
|
||||
groupByClause? (WITH (CUBE | ROLLUP))? (WITH TOTALS)?
|
||||
@ -257,6 +258,7 @@ withClause: WITH columnExprList;
|
||||
topClause: TOP DECIMAL_LITERAL (WITH TIES)?;
|
||||
fromClause: FROM joinExpr;
|
||||
arrayJoinClause: (LEFT | INNER)? ARRAY JOIN columnExprList;
|
||||
windowClause: WINDOW identifier AS LPAREN windowExpr RPAREN;
|
||||
prewhereClause: PREWHERE columnExpr;
|
||||
whereClause: WHERE columnExpr;
|
||||
groupByClause: GROUP BY ((CUBE | ROLLUP) LPAREN columnExprList RPAREN | columnExprList);
|
||||
@ -298,6 +300,18 @@ ratioExpr: numberLiteral (SLASH numberLiteral)?;
|
||||
settingExprList: settingExpr (COMMA settingExpr)*;
|
||||
settingExpr: identifier EQ_SINGLE literal;
|
||||
|
||||
windowExpr: winPartitionByClause? winOrderByClause? winFrameClause?;
|
||||
winPartitionByClause: PARTITION BY columnExprList;
|
||||
winOrderByClause: ORDER BY orderExprList;
|
||||
winFrameClause: (ROWS | RANGE) winFrameExtend;
|
||||
winFrameExtend
|
||||
: winFrameBound # frameStart
|
||||
| BETWEEN winFrameBound AND winFrameBound # frameBetween
|
||||
;
|
||||
winFrameBound: (CURRENT ROW | UNBOUNDED PRECEDING | UNBOUNDED FOLLOWING | numberLiteral PRECEDING | numberLiteral FOLLOWING);
|
||||
//rangeClause: RANGE LPAREN (MIN identifier MAX identifier | MAX identifier MIN identifier) RPAREN;
|
||||
|
||||
|
||||
// SET statement
|
||||
|
||||
setStmt: SET settingExprList;
|
||||
@ -364,6 +378,8 @@ columnExpr
|
||||
| SUBSTRING LPAREN columnExpr FROM columnExpr (FOR columnExpr)? RPAREN # ColumnExprSubstring
|
||||
| TIMESTAMP STRING_LITERAL # ColumnExprTimestamp
|
||||
| TRIM LPAREN (BOTH | LEADING | TRAILING) STRING_LITERAL FROM columnExpr RPAREN # ColumnExprTrim
|
||||
| identifier (LPAREN columnExprList? RPAREN) OVER LPAREN windowExpr RPAREN # ColumnExprWinFunction
|
||||
| identifier (LPAREN columnExprList? RPAREN) OVER identifier # ColumnExprWinFunctionTarget
|
||||
| identifier (LPAREN columnExprList? RPAREN)? LPAREN DISTINCT? columnArgList? RPAREN # ColumnExprFunction
|
||||
| literal # ColumnExprLiteral
|
||||
|
||||
@ -454,17 +470,17 @@ interval: SECOND | MINUTE | HOUR | DAY | WEEK | MONTH | QUARTER | YEAR;
|
||||
keyword
|
||||
// except NULL_SQL, INF, NAN_SQL
|
||||
: AFTER | ALIAS | ALL | ALTER | AND | ANTI | ANY | ARRAY | AS | ASCENDING | ASOF | AST | ASYNC | ATTACH | BETWEEN | BOTH | BY | CASE
|
||||
| CAST | CHECK | CLEAR | CLUSTER | CODEC | COLLATE | COLUMN | COMMENT | CONSTRAINT | CREATE | CROSS | CUBE | DATABASE | DATABASES
|
||||
| DATE | DEDUPLICATE | DEFAULT | DELAY | DELETE | DESCRIBE | DESC | DESCENDING | DETACH | DICTIONARIES | DICTIONARY | DISK | DISTINCT
|
||||
| DISTRIBUTED | DROP | ELSE | END | ENGINE | EVENTS | EXISTS | EXPLAIN | EXPRESSION | EXTRACT | FETCHES | FINAL | FIRST | FLUSH | FOR
|
||||
| FORMAT | FREEZE | FROM | FULL | FUNCTION | GLOBAL | GRANULARITY | GROUP | HAVING | HIERARCHICAL | ID | IF | ILIKE | IN | INDEX
|
||||
| INJECTIVE | INNER | INSERT | INTERVAL | INTO | IS | IS_OBJECT_ID | JOIN | JSON_FALSE | JSON_TRUE | KEY | KILL | LAST | LAYOUT
|
||||
| LEADING | LEFT | LIFETIME | LIKE | LIMIT | LIVE | LOCAL | LOGS | MATERIALIZE | MATERIALIZED | MAX | MERGES | MIN | MODIFY | MOVE
|
||||
| MUTATION | NO | NOT | NULLS | OFFSET | ON | OPTIMIZE | OR | ORDER | OUTER | OUTFILE | PARTITION | POPULATE | PREWHERE | PRIMARY
|
||||
| RANGE | RELOAD | REMOVE | RENAME | REPLACE | REPLICA | REPLICATED | RIGHT | ROLLUP | SAMPLE | SELECT | SEMI | SENDS | SET | SETTINGS
|
||||
| SHOW | SOURCE | START | STOP | SUBSTRING | SYNC | SYNTAX | SYSTEM | TABLE | TABLES | TEMPORARY | TEST | THEN | TIES | TIMEOUT
|
||||
| TIMESTAMP | TOTALS | TRAILING | TRIM | TRUNCATE | TO | TOP | TTL | TYPE | UNION | UPDATE | USE | USING | UUID | VALUES | VIEW
|
||||
| VOLUME | WATCH | WHEN | WHERE | WITH
|
||||
| CAST | CHECK | CLEAR | CLUSTER | CODEC | COLLATE | COLUMN | COMMENT | CONSTRAINT | CREATE | CROSS | CUBE | CURRENT | DATABASE
|
||||
| DATABASES | DATE | DEDUPLICATE | DEFAULT | DELAY | DELETE | DESCRIBE | DESC | DESCENDING | DETACH | DICTIONARIES | DICTIONARY | DISK
|
||||
| DISTINCT | DISTRIBUTED | DROP | ELSE | END | ENGINE | EVENTS | EXISTS | EXPLAIN | EXPRESSION | EXTRACT | FETCHES | FINAL | FIRST
|
||||
| FLUSH | FOR | FOLLOWING | FOR | FORMAT | FREEZE | FROM | FULL | FUNCTION | GLOBAL | GRANULARITY | GROUP | HAVING | HIERARCHICAL | ID
|
||||
| IF | ILIKE | IN | INDEX | INJECTIVE | INNER | INSERT | INTERVAL | INTO | IS | IS_OBJECT_ID | JOIN | JSON_FALSE | JSON_TRUE | KEY
|
||||
| KILL | LAST | LAYOUT | LEADING | LEFT | LIFETIME | LIKE | LIMIT | LIVE | LOCAL | LOGS | MATERIALIZE | MATERIALIZED | MAX | MERGES
|
||||
| MIN | MODIFY | MOVE | MUTATION | NO | NOT | NULLS | OFFSET | ON | OPTIMIZE | OR | ORDER | OUTER | OUTFILE | OVER | PARTITION
|
||||
| POPULATE | PRECEDING | PREWHERE | PRIMARY | RANGE | RELOAD | REMOVE | RENAME | REPLACE | REPLICA | REPLICATED | RIGHT | ROLLUP | ROW
|
||||
| ROWS | SAMPLE | SELECT | SEMI | SENDS | SET | SETTINGS | SHOW | SOURCE | START | STOP | SUBSTRING | SYNC | SYNTAX | SYSTEM | TABLE
|
||||
| TABLES | TEMPORARY | TEST | THEN | TIES | TIMEOUT | TIMESTAMP | TOTALS | TRAILING | TRIM | TRUNCATE | TO | TOP | TTL | TYPE
|
||||
| UNBOUNDED | UNION | UPDATE | USE | USING | UUID | VALUES | VIEW | VOLUME | WATCH | WHEN | WHERE | WINDOW | WITH
|
||||
;
|
||||
keywordForAlias
|
||||
: DATE | FIRST | ID | KEY
|
||||
|
Loading…
Reference in New Issue
Block a user