aboutsummaryrefslogtreecommitdiffstats
path: root/container-search/src/main/antlr4/com/yahoo/search
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2021-03-29 09:09:23 +0200
committerJon Bratseth <bratseth@gmail.com>2021-03-29 09:09:23 +0200
commit6f8a35e84e54ca0b1a78f02f18bf8018479c0a58 (patch)
tree19a5a4e859bc52ef014d9f37309d7b4b2a491060 /container-search/src/main/antlr4/com/yahoo/search
parente388abbe966766dfaae68bb6bf48a018c1098d77 (diff)
Remove unsupported constructs
Diffstat (limited to 'container-search/src/main/antlr4/com/yahoo/search')
-rw-r--r--container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4136
1 files changed, 10 insertions, 126 deletions
diff --git a/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4 b/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4
index b7d443ea56c..26357267f4e 100644
--- a/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4
+++ b/container-search/src/main/antlr4/com/yahoo/search/yql/yqlplus.g4
@@ -18,22 +18,9 @@ options {
protected Stack<expression_scope> expression_stack = new Stack();
}
-// tokens for command syntax
- CREATE : 'create';
+// tokens
+
SELECT : 'select';
- INSERT : 'insert';
- UPDATE : 'update';
- SET : 'set';
- VIEW : 'view';
- TABLE : 'table';
- DELETE : 'delete';
- INTO : 'into';
- VALUES : 'values';
- IMPORT : 'import';
- NEXT : 'next';
- PAGED : 'paged';
- FALLBACK : 'fallback';
- IMPORT_FROM :;
LIMIT : 'limit';
OFFSET : 'offset';
@@ -44,36 +31,12 @@ options {
FROM : 'from';
SOURCES : 'sources';
AS : 'as';
- MERGE : 'merge';
- LEFT : 'left';
- JOIN : 'join';
-
- ON : 'on';
+
+ ON : 'on'; // TODO: not used?
COMMA : ',';
OUTPUT : 'output';
COUNT : 'count';
- RETURNING : 'returning';
- APPLY : 'apply';
- CAST : 'cast';
-
- BEGIN : 'begin';
- END : 'end';
-
- // type-related
- TYPE_BYTE : 'byte';
- TYPE_INT16 : 'int16';
- TYPE_INT32 : 'int32';
- TYPE_INT64 : 'int64';
- TYPE_STRING : 'string';
- TYPE_DOUBLE : 'double';
- TYPE_TIMESTAMP : 'timestamp';
- TYPE_BOOLEAN : 'boolean';
- TYPE_ARRAY : 'array';
- TYPE_MAP : 'map';
-
- // READ_FIELD;
-
- // token literals
+
TRUE : 'true';
FALSE : 'false';
@@ -123,7 +86,6 @@ options {
// statement delimiter
SEMI : ';';
- PROGRAM : 'program';
TIMEOUT : 'timeout';
@@ -219,28 +181,12 @@ ident
;
keyword_as_ident
- : SELECT | TABLE | DELETE | INTO | VALUES | LIMIT | OFFSET | WHERE | 'order' | 'by' | DESC | MERGE | LEFT | JOIN
- | ON | OUTPUT | COUNT | BEGIN | END | APPLY | TYPE_BYTE | TYPE_INT16 | TYPE_INT32 | TYPE_INT64 | TYPE_BOOLEAN | TYPE_TIMESTAMP | TYPE_DOUBLE | TYPE_STRING | TYPE_ARRAY | TYPE_MAP
- | VIEW | CREATE | IMPORT | PROGRAM | NEXT | PAGED | SOURCES | SET | MATCHES | LIKE | CAST
+ : SELECT | LIMIT | OFFSET | WHERE | 'order' | 'by' | DESC | ON | OUTPUT | COUNT | SOURCES | MATCHES | LIKE
;
-program : params? (import_statement SEMI)* (ddl SEMI)* (statement SEMI)* EOF
+program : (statement SEMI)* EOF
;
-params
- : PROGRAM LPAREN program_arglist? RPAREN SEMI
- ;
-
-import_statement
- : IMPORT moduleName AS moduleId
- | IMPORT moduleId
- | FROM moduleName IMPORT import_list
- ;
-
-import_list
- : moduleId (',' moduleId)*
- ;
-
moduleId
: ID
;
@@ -250,46 +196,18 @@ moduleName
| namespaced_name
;
-ddl
- : view
- ;
-
-view : CREATE VIEW ID AS source_statement
- ;
-
-program_arglist
- : procedure_argument (',' procedure_argument)*
- ;
-
-procedure_argument
- :
- AT (ident TYPE_ARRAY LT typename GTEQ (expression[false])? ) {registerParameter($ident.start.getText(), $typename.start.getText());}
- | AT (ident typename ('=' expression[false])? ) {registerParameter($ident.start.getText(), $typename.start.getText());}
- ;
-
statement
: output_statement
- | selectvar_statement
- | next_statement
;
output_statement
- : source_statement paged_clause? output_spec?
- ;
-
-paged_clause
- : PAGED fixed_or_parameter
+ : source_statement output_spec?
;
-next_statement
- : NEXT literalString OUTPUT AS ident
- ;
-
source_statement
: query_statement (PIPE pipeline_step)*
;
-
pipeline_step
: namespaced_name arguments[false]?
| vespa_grouping
@@ -300,50 +218,20 @@ vespa_grouping
| annotation VESPA_GROUPING
;
-selectvar_statement
- : CREATE ('temp' | 'temporary') TABLE ident AS LPAREN source_statement RPAREN
- ;
-
-typename
- : TYPE_BYTE | TYPE_INT16 | TYPE_INT32 | TYPE_INT64 | TYPE_STRING | TYPE_BOOLEAN | TYPE_TIMESTAMP
- | arrayType | mapType | TYPE_DOUBLE
- ;
-
-arrayType
- : TYPE_ARRAY LT typename GT
- ;
-
-mapType
- : TYPE_MAP LT typename GT
- ;
-
output_spec
: (OUTPUT AS ident)
| (OUTPUT COUNT AS ident)
;
query_statement
- : merge_statement
- | select_statement
+ : select_statement
| insert_statement
| delete_statement
| update_statement
;
-// This does not use the UNION / UNION ALL from SQL because the semantics are different than SQL UNION
-// - no set operation is implied (no DISTINCT)
-// - CQL resultsets may be heterogeneous (rows may have heterogenous types)
-merge_statement
- : merge_component (MERGE merge_component)+
- ;
-
-merge_component
- : select_statement
- | LPAREN source_statement RPAREN
- ;
-
select_statement
- : SELECT select_field_spec select_source? where? orderby? limit? offset? timeout? fallback?
+ : SELECT select_field_spec select_source? where? orderby? limit? offset? timeout?
;
select_field_spec
@@ -355,10 +243,6 @@ project_spec
: field_def (COMMA field_def)*
;
-fallback
- : FALLBACK select_statement
- ;
-
timeout
: TIMEOUT fixed_or_parameter
;