diff --git a/pom.xml b/pom.xml
index 91c8b0a3a..f01ff7452 100644
--- a/pom.xml
+++ b/pom.xml
@@ -32,7 +32,6 @@
[7.0.13,)
test
-
commons-io
commons-io
@@ -72,7 +71,7 @@
com.h2database
h2
- [2.2.224,)
+ [2.3.232,)
test
@@ -205,7 +204,6 @@
org.javacc.plugin
javacc-maven-plugin
- 3.0.3
javacc
diff --git a/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt b/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt
index d11fe5edc..b980cdf24 100644
--- a/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt
+++ b/src/main/jjtree/net/sf/jsqlparser/parser/JSqlParserCC.jjt
@@ -1192,22 +1192,26 @@ ExplainStatement Explain():
Select select;
Table table;
List options;
+ ExplainStatement es;
}
{
( tk= | tk = )
(
LOOKAHEAD(3)(
- options=ExplainStatementOptions()
+ options= ExplainStatementOptions()
select = Select( )
{
- return new ExplainStatement(tk.image, select, options);
+ es = new ExplainStatement(tk.image, select, options);
}
)
|
(
- table=Table( ) { return new ExplainStatement(tk.image, table); }
+ table=Table( ) { es = new ExplainStatement(tk.image, table); }
)
)
+ {
+ return es;
+ }
}
/**
diff --git a/src/test/java/net/sf/jsqlparser/statement/ExplainStatementTest.java b/src/test/java/net/sf/jsqlparser/statement/ExplainStatementTest.java
index 87799f5de..2a27bada7 100644
--- a/src/test/java/net/sf/jsqlparser/statement/ExplainStatementTest.java
+++ b/src/test/java/net/sf/jsqlparser/statement/ExplainStatementTest.java
@@ -1,3 +1,12 @@
+/*-
+ * #%L
+ * JSQLParser library
+ * %%
+ * Copyright (C) 2004 - 2024 JSQLParser
+ * %%
+ * Dual licensed under GNU LGPL 2.1 or Apache License 2.0
+ * #L%
+ */
package net.sf.jsqlparser.statement;
import net.sf.jsqlparser.JSQLParserException;
diff --git a/src/test/java/net/sf/jsqlparser/statement/select/NestedBracketsPerformanceTest.java b/src/test/java/net/sf/jsqlparser/statement/select/NestedBracketsPerformanceTest.java
index 240e10bf9..c70d29c73 100644
--- a/src/test/java/net/sf/jsqlparser/statement/select/NestedBracketsPerformanceTest.java
+++ b/src/test/java/net/sf/jsqlparser/statement/select/NestedBracketsPerformanceTest.java
@@ -135,10 +135,10 @@ public void testRecursiveBracketExpressionIssue1019() {
// maxDepth = 10 collides with the Parser Timeout = 6 seconds
// @todo: implement methods to set the Parser Timeout explicitly and on demand
@Test
- @Timeout(20000)
+ @Timeout(2000)
public void testRecursiveBracketExpressionIssue1019_2() throws JSQLParserException {
// Temporally set the maxDepth to be 6, was 8 before this
- doIncreaseOfParseTimeTesting("IF(1=1, $1, 2)", "1", 6);
+ doIncreaseOfParseTimeTesting("IF(1=1, $1, 2)", "1", 8);
}
@Test
@@ -165,9 +165,9 @@ public void testIssue1013_3() throws JSQLParserException {
@Test
@Timeout(2000)
public void testIssue1013_4() throws JSQLParserException {
- String s = "tblA";
+ StringBuilder s = new StringBuilder("tblA");
for (int i = 1; i < 100; i++) {
- s = "(" + s + ")";
+ s = new StringBuilder("(" + s + ")");
}
String sql = "SELECT * FROM " + s;
LOG.info("testing " + sql);
@@ -182,8 +182,7 @@ public void testIssue1013_4() throws JSQLParserException {
@Test
@Timeout(2000)
public void testIncreaseOfParseTime() throws JSQLParserException {
- // Temporally set the maxDepth to be 6, was 50 before this
- doIncreaseOfParseTimeTesting("concat($1,'B')", "'A'", 6);
+ doIncreaseOfParseTimeTesting("concat($1,'B')", "'A'", 50);
}
private void doIncreaseOfParseTimeTesting(String template, String finalExpression, int maxDepth)
@@ -194,7 +193,7 @@ private void doIncreaseOfParseTimeTesting(String template, String finalExpressio
String sql = "SELECT " + buildRecursiveBracketExpression(template, finalExpression, i)
+ " FROM mytbl";
long startTime = System.currentTimeMillis();
- assertSqlCanBeParsedAndDeparsed(sql, true, parser -> parser.withTimeOut(60000));
+ assertSqlCanBeParsedAndDeparsed(sql, true, parser -> parser.withTimeOut(12000));
long durationTime = System.currentTimeMillis() - startTime;
if (i > 0) {