[ES|QL] Update grammars (#189337)

This PR updates the ES|QL grammars (lexer and parser) to match the
latest version in Elasticsearch.
This commit is contained in:
Kibana Machine 2024-07-29 08:10:27 +02:00 committed by GitHub
parent 1df562ef57
commit 05534b0899
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 1843 additions and 1705 deletions

View file

@ -140,11 +140,12 @@ DESC : 'desc';
DOT : '.';
FALSE : 'false';
FIRST : 'first';
LAST : 'last';
LP : '(';
IN: 'in';
IS: 'is';
LAST : 'last';
LIKE: 'like';
LP : '(';
MATCH: 'match';
NOT : 'not';
NULL : 'null';
NULLS : 'nulls';

File diff suppressed because one or more lines are too long

View file

@ -40,88 +40,89 @@ DESC=39
DOT=40
FALSE=41
FIRST=42
LAST=43
LP=44
IN=45
IS=46
LIKE=47
NOT=48
NULL=49
NULLS=50
OR=51
PARAM=52
RLIKE=53
RP=54
TRUE=55
EQ=56
CIEQ=57
NEQ=58
LT=59
LTE=60
GT=61
GTE=62
PLUS=63
MINUS=64
ASTERISK=65
SLASH=66
PERCENT=67
NAMED_OR_POSITIONAL_PARAM=68
OPENING_BRACKET=69
CLOSING_BRACKET=70
UNQUOTED_IDENTIFIER=71
QUOTED_IDENTIFIER=72
EXPR_LINE_COMMENT=73
EXPR_MULTILINE_COMMENT=74
EXPR_WS=75
METADATA=76
FROM_LINE_COMMENT=77
FROM_MULTILINE_COMMENT=78
FROM_WS=79
ID_PATTERN=80
PROJECT_LINE_COMMENT=81
PROJECT_MULTILINE_COMMENT=82
PROJECT_WS=83
AS=84
RENAME_LINE_COMMENT=85
RENAME_MULTILINE_COMMENT=86
RENAME_WS=87
ON=88
WITH=89
ENRICH_POLICY_NAME=90
ENRICH_LINE_COMMENT=91
ENRICH_MULTILINE_COMMENT=92
ENRICH_WS=93
ENRICH_FIELD_LINE_COMMENT=94
ENRICH_FIELD_MULTILINE_COMMENT=95
ENRICH_FIELD_WS=96
LOOKUP_LINE_COMMENT=97
LOOKUP_MULTILINE_COMMENT=98
LOOKUP_WS=99
LOOKUP_FIELD_LINE_COMMENT=100
LOOKUP_FIELD_MULTILINE_COMMENT=101
LOOKUP_FIELD_WS=102
MVEXPAND_LINE_COMMENT=103
MVEXPAND_MULTILINE_COMMENT=104
MVEXPAND_WS=105
INFO=106
SHOW_LINE_COMMENT=107
SHOW_MULTILINE_COMMENT=108
SHOW_WS=109
FUNCTIONS=110
META_LINE_COMMENT=111
META_MULTILINE_COMMENT=112
META_WS=113
COLON=114
SETTING=115
SETTING_LINE_COMMENT=116
SETTTING_MULTILINE_COMMENT=117
SETTING_WS=118
METRICS_LINE_COMMENT=119
METRICS_MULTILINE_COMMENT=120
METRICS_WS=121
CLOSING_METRICS_LINE_COMMENT=122
CLOSING_METRICS_MULTILINE_COMMENT=123
CLOSING_METRICS_WS=124
IN=43
IS=44
LAST=45
LIKE=46
LP=47
MATCH=48
NOT=49
NULL=50
NULLS=51
OR=52
PARAM=53
RLIKE=54
RP=55
TRUE=56
EQ=57
CIEQ=58
NEQ=59
LT=60
LTE=61
GT=62
GTE=63
PLUS=64
MINUS=65
ASTERISK=66
SLASH=67
PERCENT=68
NAMED_OR_POSITIONAL_PARAM=69
OPENING_BRACKET=70
CLOSING_BRACKET=71
UNQUOTED_IDENTIFIER=72
QUOTED_IDENTIFIER=73
EXPR_LINE_COMMENT=74
EXPR_MULTILINE_COMMENT=75
EXPR_WS=76
METADATA=77
FROM_LINE_COMMENT=78
FROM_MULTILINE_COMMENT=79
FROM_WS=80
ID_PATTERN=81
PROJECT_LINE_COMMENT=82
PROJECT_MULTILINE_COMMENT=83
PROJECT_WS=84
AS=85
RENAME_LINE_COMMENT=86
RENAME_MULTILINE_COMMENT=87
RENAME_WS=88
ON=89
WITH=90
ENRICH_POLICY_NAME=91
ENRICH_LINE_COMMENT=92
ENRICH_MULTILINE_COMMENT=93
ENRICH_WS=94
ENRICH_FIELD_LINE_COMMENT=95
ENRICH_FIELD_MULTILINE_COMMENT=96
ENRICH_FIELD_WS=97
LOOKUP_LINE_COMMENT=98
LOOKUP_MULTILINE_COMMENT=99
LOOKUP_WS=100
LOOKUP_FIELD_LINE_COMMENT=101
LOOKUP_FIELD_MULTILINE_COMMENT=102
LOOKUP_FIELD_WS=103
MVEXPAND_LINE_COMMENT=104
MVEXPAND_MULTILINE_COMMENT=105
MVEXPAND_WS=106
INFO=107
SHOW_LINE_COMMENT=108
SHOW_MULTILINE_COMMENT=109
SHOW_WS=110
FUNCTIONS=111
META_LINE_COMMENT=112
META_MULTILINE_COMMENT=113
META_WS=114
COLON=115
SETTING=116
SETTING_LINE_COMMENT=117
SETTTING_MULTILINE_COMMENT=118
SETTING_WS=119
METRICS_LINE_COMMENT=120
METRICS_MULTILINE_COMMENT=121
METRICS_WS=122
CLOSING_METRICS_LINE_COMMENT=123
CLOSING_METRICS_MULTILINE_COMMENT=124
CLOSING_METRICS_WS=125
'dissect'=1
'drop'=2
'enrich'=3
@ -153,36 +154,37 @@ CLOSING_METRICS_WS=124
'.'=40
'false'=41
'first'=42
'last'=43
'('=44
'in'=45
'is'=46
'like'=47
'not'=48
'null'=49
'nulls'=50
'or'=51
'?'=52
'rlike'=53
')'=54
'true'=55
'=='=56
'=~'=57
'!='=58
'<'=59
'<='=60
'>'=61
'>='=62
'+'=63
'-'=64
'*'=65
'/'=66
'%'=67
']'=70
'metadata'=76
'as'=84
'on'=88
'with'=89
'info'=106
'functions'=110
':'=114
'in'=43
'is'=44
'last'=45
'like'=46
'('=47
'match'=48
'not'=49
'null'=50
'nulls'=51
'or'=52
'?'=53
'rlike'=54
')'=55
'true'=56
'=='=57
'=~'=58
'!='=59
'<'=60
'<='=61
'>'=62
'>='=63
'+'=64
'-'=65
'*'=66
'/'=67
'%'=68
']'=71
'metadata'=77
'as'=85
'on'=89
'with'=90
'info'=107
'functions'=111
':'=115

File diff suppressed because it is too large Load diff

View file

@ -62,6 +62,7 @@ booleanExpression
: NOT booleanExpression #logicalNot
| valueExpression #booleanDefault
| regexBooleanExpression #regexExpression
| matchBooleanExpression #matchExpression
| left=booleanExpression operator=AND right=booleanExpression #logicalBinary
| left=booleanExpression operator=OR right=booleanExpression #logicalBinary
| valueExpression (NOT)? IN LP valueExpression (COMMA valueExpression)* RP #logicalIn
@ -73,6 +74,10 @@ regexBooleanExpression
| valueExpression (NOT)? kind=RLIKE pattern=string
;
matchBooleanExpression
: qualifiedName MATCH queryString=string
;
valueExpression
: operatorExpression #valueExpressionDefault
| left=operatorExpression comparisonOperator right=operatorExpression #comparison

File diff suppressed because one or more lines are too long

View file

@ -40,88 +40,89 @@ DESC=39
DOT=40
FALSE=41
FIRST=42
LAST=43
LP=44
IN=45
IS=46
LIKE=47
NOT=48
NULL=49
NULLS=50
OR=51
PARAM=52
RLIKE=53
RP=54
TRUE=55
EQ=56
CIEQ=57
NEQ=58
LT=59
LTE=60
GT=61
GTE=62
PLUS=63
MINUS=64
ASTERISK=65
SLASH=66
PERCENT=67
NAMED_OR_POSITIONAL_PARAM=68
OPENING_BRACKET=69
CLOSING_BRACKET=70
UNQUOTED_IDENTIFIER=71
QUOTED_IDENTIFIER=72
EXPR_LINE_COMMENT=73
EXPR_MULTILINE_COMMENT=74
EXPR_WS=75
METADATA=76
FROM_LINE_COMMENT=77
FROM_MULTILINE_COMMENT=78
FROM_WS=79
ID_PATTERN=80
PROJECT_LINE_COMMENT=81
PROJECT_MULTILINE_COMMENT=82
PROJECT_WS=83
AS=84
RENAME_LINE_COMMENT=85
RENAME_MULTILINE_COMMENT=86
RENAME_WS=87
ON=88
WITH=89
ENRICH_POLICY_NAME=90
ENRICH_LINE_COMMENT=91
ENRICH_MULTILINE_COMMENT=92
ENRICH_WS=93
ENRICH_FIELD_LINE_COMMENT=94
ENRICH_FIELD_MULTILINE_COMMENT=95
ENRICH_FIELD_WS=96
LOOKUP_LINE_COMMENT=97
LOOKUP_MULTILINE_COMMENT=98
LOOKUP_WS=99
LOOKUP_FIELD_LINE_COMMENT=100
LOOKUP_FIELD_MULTILINE_COMMENT=101
LOOKUP_FIELD_WS=102
MVEXPAND_LINE_COMMENT=103
MVEXPAND_MULTILINE_COMMENT=104
MVEXPAND_WS=105
INFO=106
SHOW_LINE_COMMENT=107
SHOW_MULTILINE_COMMENT=108
SHOW_WS=109
FUNCTIONS=110
META_LINE_COMMENT=111
META_MULTILINE_COMMENT=112
META_WS=113
COLON=114
SETTING=115
SETTING_LINE_COMMENT=116
SETTTING_MULTILINE_COMMENT=117
SETTING_WS=118
METRICS_LINE_COMMENT=119
METRICS_MULTILINE_COMMENT=120
METRICS_WS=121
CLOSING_METRICS_LINE_COMMENT=122
CLOSING_METRICS_MULTILINE_COMMENT=123
CLOSING_METRICS_WS=124
IN=43
IS=44
LAST=45
LIKE=46
LP=47
MATCH=48
NOT=49
NULL=50
NULLS=51
OR=52
PARAM=53
RLIKE=54
RP=55
TRUE=56
EQ=57
CIEQ=58
NEQ=59
LT=60
LTE=61
GT=62
GTE=63
PLUS=64
MINUS=65
ASTERISK=66
SLASH=67
PERCENT=68
NAMED_OR_POSITIONAL_PARAM=69
OPENING_BRACKET=70
CLOSING_BRACKET=71
UNQUOTED_IDENTIFIER=72
QUOTED_IDENTIFIER=73
EXPR_LINE_COMMENT=74
EXPR_MULTILINE_COMMENT=75
EXPR_WS=76
METADATA=77
FROM_LINE_COMMENT=78
FROM_MULTILINE_COMMENT=79
FROM_WS=80
ID_PATTERN=81
PROJECT_LINE_COMMENT=82
PROJECT_MULTILINE_COMMENT=83
PROJECT_WS=84
AS=85
RENAME_LINE_COMMENT=86
RENAME_MULTILINE_COMMENT=87
RENAME_WS=88
ON=89
WITH=90
ENRICH_POLICY_NAME=91
ENRICH_LINE_COMMENT=92
ENRICH_MULTILINE_COMMENT=93
ENRICH_WS=94
ENRICH_FIELD_LINE_COMMENT=95
ENRICH_FIELD_MULTILINE_COMMENT=96
ENRICH_FIELD_WS=97
LOOKUP_LINE_COMMENT=98
LOOKUP_MULTILINE_COMMENT=99
LOOKUP_WS=100
LOOKUP_FIELD_LINE_COMMENT=101
LOOKUP_FIELD_MULTILINE_COMMENT=102
LOOKUP_FIELD_WS=103
MVEXPAND_LINE_COMMENT=104
MVEXPAND_MULTILINE_COMMENT=105
MVEXPAND_WS=106
INFO=107
SHOW_LINE_COMMENT=108
SHOW_MULTILINE_COMMENT=109
SHOW_WS=110
FUNCTIONS=111
META_LINE_COMMENT=112
META_MULTILINE_COMMENT=113
META_WS=114
COLON=115
SETTING=116
SETTING_LINE_COMMENT=117
SETTTING_MULTILINE_COMMENT=118
SETTING_WS=119
METRICS_LINE_COMMENT=120
METRICS_MULTILINE_COMMENT=121
METRICS_WS=122
CLOSING_METRICS_LINE_COMMENT=123
CLOSING_METRICS_MULTILINE_COMMENT=124
CLOSING_METRICS_WS=125
'dissect'=1
'drop'=2
'enrich'=3
@ -153,36 +154,37 @@ CLOSING_METRICS_WS=124
'.'=40
'false'=41
'first'=42
'last'=43
'('=44
'in'=45
'is'=46
'like'=47
'not'=48
'null'=49
'nulls'=50
'or'=51
'?'=52
'rlike'=53
')'=54
'true'=55
'=='=56
'=~'=57
'!='=58
'<'=59
'<='=60
'>'=61
'>='=62
'+'=63
'-'=64
'*'=65
'/'=66
'%'=67
']'=70
'metadata'=76
'as'=84
'on'=88
'with'=89
'info'=106
'functions'=110
':'=114
'in'=43
'is'=44
'last'=45
'like'=46
'('=47
'match'=48
'not'=49
'null'=50
'nulls'=51
'or'=52
'?'=53
'rlike'=54
')'=55
'true'=56
'=='=57
'=~'=58
'!='=59
'<'=60
'<='=61
'>'=62
'>='=63
'+'=64
'-'=65
'*'=66
'/'=67
'%'=68
']'=71
'metadata'=77
'as'=85
'on'=89
'with'=90
'info'=107
'functions'=111
':'=115

File diff suppressed because it is too large Load diff

View file

@ -10,6 +10,7 @@ import { SingleCommandQueryContext } from "./esql_parser";
import { SourceCommandContext } from "./esql_parser";
import { ProcessingCommandContext } from "./esql_parser";
import { WhereCommandContext } from "./esql_parser";
import { MatchExpressionContext } from "./esql_parser";
import { LogicalNotContext } from "./esql_parser";
import { BooleanDefaultContext } from "./esql_parser";
import { IsNullContext } from "./esql_parser";
@ -17,6 +18,7 @@ import { RegexExpressionContext } from "./esql_parser";
import { LogicalInContext } from "./esql_parser";
import { LogicalBinaryContext } from "./esql_parser";
import { RegexBooleanExpressionContext } from "./esql_parser";
import { MatchBooleanExpressionContext } from "./esql_parser";
import { ValueExpressionDefaultContext } from "./esql_parser";
import { ComparisonContext } from "./esql_parser";
import { OperatorExpressionDefaultContext } from "./esql_parser";
@ -156,6 +158,18 @@ export default class esql_parserListener extends ParseTreeListener {
* @param ctx the parse tree
*/
exitWhereCommand?: (ctx: WhereCommandContext) => void;
/**
* Enter a parse tree produced by the `matchExpression`
* labeled alternative in `esql_parser.booleanExpression`.
* @param ctx the parse tree
*/
enterMatchExpression?: (ctx: MatchExpressionContext) => void;
/**
* Exit a parse tree produced by the `matchExpression`
* labeled alternative in `esql_parser.booleanExpression`.
* @param ctx the parse tree
*/
exitMatchExpression?: (ctx: MatchExpressionContext) => void;
/**
* Enter a parse tree produced by the `logicalNot`
* labeled alternative in `esql_parser.booleanExpression`.
@ -238,6 +252,16 @@ export default class esql_parserListener extends ParseTreeListener {
* @param ctx the parse tree
*/
exitRegexBooleanExpression?: (ctx: RegexBooleanExpressionContext) => void;
/**
* Enter a parse tree produced by `esql_parser.matchBooleanExpression`.
* @param ctx the parse tree
*/
enterMatchBooleanExpression?: (ctx: MatchBooleanExpressionContext) => void;
/**
* Exit a parse tree produced by `esql_parser.matchBooleanExpression`.
* @param ctx the parse tree
*/
exitMatchBooleanExpression?: (ctx: MatchBooleanExpressionContext) => void;
/**
* Enter a parse tree produced by the `valueExpressionDefault`
* labeled alternative in `esql_parser.valueExpression`.