diff --git a/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseStatementImpl.java b/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseStatementImpl.java index 906e2f166..dcc59b7f6 100644 --- a/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseStatementImpl.java +++ b/clickhouse-jdbc/src/main/java/ru/yandex/clickhouse/ClickHouseStatementImpl.java @@ -185,7 +185,7 @@ public ResultSet executeQuery(String sql, if (extractWithTotals(sql)) { positions.put(ClickHouseSqlStatement.KEYWORD_TOTALS, 1); } - parsedStmt = new ClickHouseSqlStatement(sql, StatementType.SELECT, + parsedStmt = new ClickHouseSqlStatement(clickhousifySql(sql), StatementType.SELECT, null, dbName, tableName, null, null, null, positions); // httpContext.setAttribute("is_idempotent", Boolean.TRUE); } diff --git a/clickhouse-jdbc/src/test/java/ru/yandex/clickhouse/integration/ClickHouseConnectionImplTest.java b/clickhouse-jdbc/src/test/java/ru/yandex/clickhouse/integration/ClickHouseConnectionImplTest.java index 5a4d90676..07b353c2e 100644 --- a/clickhouse-jdbc/src/test/java/ru/yandex/clickhouse/integration/ClickHouseConnectionImplTest.java +++ b/clickhouse-jdbc/src/test/java/ru/yandex/clickhouse/integration/ClickHouseConnectionImplTest.java @@ -1,15 +1,20 @@ package ru.yandex.clickhouse.integration; import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Statement; import javax.sql.DataSource; import org.testng.annotations.Test; import ru.yandex.clickhouse.ClickHouseContainerForTest; +import ru.yandex.clickhouse.ClickHouseDataSource; import ru.yandex.clickhouse.except.ClickHouseException; import ru.yandex.clickhouse.settings.ClickHouseProperties; +import static org.testng.Assert.assertFalse; +import static org.testng.Assert.assertNotNull; import static org.testng.Assert.assertTrue; import static org.testng.Assert.fail; @@ -70,6 +75,20 @@ public void testOofWrongPassword() throws Exception { assertFailure(createDataSource("oof", "baz")); } + @Test + public void testNewParserOption() throws Exception { + ClickHouseProperties props = new ClickHouseProperties(); + props.setUseNewParser(false); + ClickHouseDataSource ds = ClickHouseContainerForTest.newDataSource(props); + try (Connection conn = ds.getConnection(); Statement s = conn.createStatement(); + ResultSet rs = s.executeQuery("select timezone(), version()");) { + assertTrue(rs.next()); + assertNotNull(rs.getString(1)); + assertNotNull(rs.getString(2)); + assertFalse(rs.next()); + } + } + private static void assertSuccess(DataSource dataSource) throws Exception { Connection connection = dataSource.getConnection(); assertTrue(connection.createStatement().execute("SELECT 1"));