diff --git a/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/SqlSpecIT.java b/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/SqlSpecIT.java index 3594124c6b1..df615055ad9 100644 --- a/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/SqlSpecIT.java +++ b/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/SqlSpecIT.java @@ -15,6 +15,8 @@ import org.junit.ClassRule; import java.nio.file.Path; import java.sql.Connection; import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; import java.util.List; import java.util.Locale; @@ -59,8 +61,9 @@ public class SqlSpecIT extends SpecBaseIntegrationTestCase { Connection es = esJdbc()) { ResultSet expected, actual; try { - expected = h2.createStatement().executeQuery(query); - actual = es.createStatement().executeQuery(query); + expected = executeQuery(h2); + actual = executeQuery(es); + assertResultSets(expected, actual); } catch (AssertionError ae) { throw reworkException(new AssertionError(errorMessage(ae), ae.getCause())); @@ -70,6 +73,12 @@ public class SqlSpecIT extends SpecBaseIntegrationTestCase { } } + private ResultSet executeQuery(Connection con) throws SQLException { + Statement statement = con.createStatement(); + statement.setFetchSize(randomInt(10)); + return statement.executeQuery(query); + } + String errorMessage(Throwable th) { return format(Locale.ROOT, "test%s@%s:%d failed\n\"%s\"\n%s", testName, source.getFileName().toString(), lineNumber, query, th.getMessage()); } diff --git a/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/framework/SpecBaseIntegrationTestCase.java b/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/framework/SpecBaseIntegrationTestCase.java index 1d7414c3235..1fa3b1fa949 100644 --- a/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/framework/SpecBaseIntegrationTestCase.java +++ b/sql/jdbc/src/test/java/org/elasticsearch/xpack/sql/jdbc/framework/SpecBaseIntegrationTestCase.java @@ -6,10 +6,10 @@ package org.elasticsearch.xpack.sql.jdbc.framework; import org.elasticsearch.client.ResponseException; +import org.elasticsearch.common.Booleans; import org.elasticsearch.common.Strings; import org.elasticsearch.common.io.PathUtils; import org.junit.AfterClass; -import org.junit.Before; import org.junit.BeforeClass; import java.io.IOException; @@ -30,7 +30,7 @@ import static java.lang.String.format; public abstract class SpecBaseIntegrationTestCase extends JdbcIntegrationTestCase { protected static final String PARAM_FORMATTNG = "%0$s.test%2$s"; - private static boolean haveSetupTestData; + private static final boolean SETUP_DATA = Booleans.parseBoolean(System.getProperty("tests.sql.setup.data", "false")); protected final String groupName; protected final String testName; @@ -38,18 +38,12 @@ public abstract class SpecBaseIntegrationTestCase extends JdbcIntegrationTestCas protected final Path source; @BeforeClass - public static void clearSetupTestData() { - haveSetupTestData = false; - } - - @Before - public void setupTestData() throws Exception { - if (haveSetupTestData) { + public static void setupTestData() throws Exception { + if (!SETUP_DATA) { // We only need to load the test data once return; } loadDatasetIntoEs(); - haveSetupTestData = true; } @AfterClass diff --git a/sql/server/src/main/java/org/elasticsearch/xpack/sql/plugin/sql/action/TransportSqlAction.java b/sql/server/src/main/java/org/elasticsearch/xpack/sql/plugin/sql/action/TransportSqlAction.java index 3243275210d..ea116815fb2 100644 --- a/sql/server/src/main/java/org/elasticsearch/xpack/sql/plugin/sql/action/TransportSqlAction.java +++ b/sql/server/src/main/java/org/elasticsearch/xpack/sql/plugin/sql/action/TransportSqlAction.java @@ -69,8 +69,6 @@ public class TransportSqlAction extends HandledTransportAction { String id = generateId(); SESSIONS.put(id, c);