@@ -324,7 +324,7 @@ public void testStatsWithoutAggsOrGroup() {
324324 }
325325
326326 public void testAggsWithGroupKeyAsAgg () {
327- var queries = new String [] { """
327+ var queries = new String []{ """
328328 row a = 1, b = 2
329329 | stats a by a
330330 """ , """
@@ -337,7 +337,7 @@ public void testAggsWithGroupKeyAsAgg() {
337337 """ , """
338338 row a = 1, b = 2
339339 | stats x = a by a
340- """ };
340+ """ };
341341
342342 for (String query : queries ) {
343343 expectVerificationError (query , "grouping key [a] already specified in the STATS BY clause" );
@@ -683,16 +683,16 @@ public void testInvalidQuotingAsLookupIndexPattern() {
683683 }
684684
685685 public void testIdentifierAsFieldName () {
686- String [] operators = new String [] { "==" , "!=" , ">" , "<" , ">=" , "<=" };
687- Class <?>[] expectedOperators = new Class <?>[] {
686+ String [] operators = new String []{ "==" , "!=" , ">" , "<" , ">=" , "<=" };
687+ Class <?>[] expectedOperators = new Class <?>[]{
688688 Equals .class ,
689689 Not .class ,
690690 GreaterThan .class ,
691691 LessThan .class ,
692692 GreaterThanOrEqual .class ,
693- LessThanOrEqual .class };
694- String []
identifiers =
new String []
{ "abc" ,
"`abc`" ,
"ab_c" ,
"a.b.c" ,
"@a" ,
"a.@b" ,
"`[email protected] `" };
695- String []
expectedIdentifiers =
new String []
{ "abc" ,
"abc" ,
"ab_c" ,
"a.b.c" ,
"@a" ,
"a.@b" ,
"[email protected] " };
693+ LessThanOrEqual .class };
694+ String []
identifiers =
new String []
{ "abc" ,
"`abc`" ,
"ab_c" ,
"a.b.c" ,
"@a" ,
"a.@b" ,
"`[email protected] `" };
695+ String []
expectedIdentifiers =
new String []
{ "abc" ,
"abc" ,
"ab_c" ,
"a.b.c" ,
"@a" ,
"a.@b" ,
"[email protected] " };
696696 LogicalPlan where ;
697697 for (int i = 0 ; i < operators .length ; i ++) {
698698 for (int j = 0 ; j < identifiers .length ; j ++) {
@@ -848,7 +848,7 @@ public void testSingleLineComments() {
848848 }
849849
850850 public void testNewLines () {
851- String [] delims = new String [] { "" , "\r " , "\n " , "\r \n " };
851+ String [] delims = new String []{ "" , "\r " , "\n " , "\r \n " };
852852 Function <String , String > queryFun = d -> d + "from " + d + " foo " + d + "| eval " + d + " x = concat(bar, \" baz\" )" + d ;
853853 LogicalPlan reference = statement (queryFun .apply (delims [0 ]));
854854 for (int i = 1 ; i < delims .length ; i ++) {
@@ -2722,13 +2722,13 @@ public void testNamedFunctionArgumentNotInMap() {
27222722
27232723 public void testNamedFunctionArgumentNotConstant () {
27242724 Map <String , String []> commands = Map .ofEntries (
2725- Map .entry ("eval x = {}" , new String [] { "31" , "35" }),
2726- Map .entry ("where {}" , new String [] { "28" , "32" }),
2727- Map .entry ("stats {}" , new String [] { "28" , "32" }),
2728- Map .entry ("stats agg() by {}" , new String [] { "37" , "41" }),
2729- Map .entry ("sort {}" , new String [] { "27" , "31" }),
2730- Map .entry ("dissect {} \" %{bar}\" " , new String [] { "30" , "34" }),
2731- Map .entry ("grok {} \" %{WORD:foo}\" " , new String [] { "27" , "31" })
2725+ Map .entry ("eval x = {}" , new String []{ "31" , "35" }),
2726+ Map .entry ("where {}" , new String []{ "28" , "32" }),
2727+ Map .entry ("stats {}" , new String []{ "28" , "32" }),
2728+ Map .entry ("stats agg() by {}" , new String []{ "37" , "41" }),
2729+ Map .entry ("sort {}" , new String []{ "27" , "31" }),
2730+ Map .entry ("dissect {} \" %{bar}\" " , new String []{ "30" , "34" }),
2731+ Map .entry ("grok {} \" %{WORD:foo}\" " , new String []{ "27" , "31" })
27322732 );
27332733
27342734 for (Map .Entry <String , String []> command : commands .entrySet ()) {
@@ -3091,7 +3091,7 @@ public void testInvalidFork() {
30913091 }
30923092
30933093 public void testFieldNamesAsCommands () throws Exception {
3094- String [] keywords = new String [] {
3094+ String [] keywords = new String []{
30953095 "dissect" ,
30963096 "drop" ,
30973097 "enrich" ,
@@ -3104,7 +3104,7 @@ public void testFieldNamesAsCommands() throws Exception {
31043104 "mv_expand" ,
31053105 "rename" ,
31063106 "sort" ,
3107- "stats" };
3107+ "stats" };
31083108 for (String keyword : keywords ) {
31093109 var plan = statement ("FROM test | STATS avg(" + keyword + ")" );
31103110 var aggregate = as (plan , Aggregate .class );
@@ -3152,4 +3152,11 @@ public void testValidRrf() {
31523152
31533153 assertThat (rrfScoreEval .child (), instanceOf (Fork .class ));
31543154 }
3155+
3156+ public void testUnclosedParenthesis () {
3157+ String [] queries = { "row a = )" , "row ]" , "from source | eval x = [1,2,3]]" };
3158+ for (String q : queries ) {
3159+ expectError (q , "Invalid query" );
3160+ }
3161+ }
31553162}
0 commit comments