|
7 | 7 | import com.clickhouse.client.api.ConnectionReuseStrategy; |
8 | 8 | import com.clickhouse.client.api.command.CommandResponse; |
9 | 9 | import com.clickhouse.client.api.enums.Protocol; |
| 10 | +import com.clickhouse.client.api.insert.InsertSettings; |
10 | 11 | import com.clickhouse.client.api.internal.ClickHouseLZ4OutputStream; |
| 12 | +import com.clickhouse.client.api.internal.ServerSettings; |
11 | 13 | import com.clickhouse.client.api.metadata.DefaultColumnToMethodMatchingStrategy; |
12 | 14 | import com.clickhouse.client.api.query.GenericRecord; |
13 | 15 | import com.clickhouse.client.api.query.QueryResponse; |
14 | 16 | import com.clickhouse.client.api.query.QuerySettings; |
15 | 17 | import com.clickhouse.client.api.query.Records; |
16 | 18 | import com.clickhouse.client.config.ClickHouseClientOption; |
17 | 19 | import com.clickhouse.client.query.QueryTests; |
| 20 | +import com.clickhouse.data.ClickHouseColumn; |
| 21 | +import com.clickhouse.data.ClickHouseFormat; |
18 | 22 | import com.clickhouse.data.ClickHouseVersion; |
19 | 23 | import org.apache.commons.lang3.RandomStringUtils; |
20 | 24 | import org.slf4j.Logger; |
|
24 | 28 | import org.testng.annotations.Test; |
25 | 29 | import org.testng.util.Strings; |
26 | 30 |
|
| 31 | +import java.io.ByteArrayInputStream; |
27 | 32 | import java.net.ConnectException; |
28 | 33 | import java.util.Arrays; |
29 | 34 | import java.util.HashMap; |
@@ -412,6 +417,32 @@ public void testLogComment() throws Exception { |
412 | 417 | } |
413 | 418 | } |
414 | 419 |
|
| 420 | + @Test(groups = {"integration"}) |
| 421 | + public void testServerSettings() throws Exception { |
| 422 | + try (Client client = newClient().build()) { |
| 423 | + client.execute("DROP TABLE IF EXISTS server_settings_test_table"); |
| 424 | + client.execute("CREATE TABLE server_settings_test_table (v Float) Engine MergeTree ORDER BY ()"); |
| 425 | + |
| 426 | + final String queryId = UUID.randomUUID().toString(); |
| 427 | + InsertSettings insertSettings = new InsertSettings() |
| 428 | + .setQueryId(queryId) |
| 429 | + .serverSetting(ServerSettings.ASYNC_INSERT, "1") |
| 430 | + .serverSetting(ServerSettings.WAIT_ASYNC_INSERT, "1"); |
| 431 | + |
| 432 | + String csvData = "0.33\n0.44\n0.55\n"; |
| 433 | + client.insert("server_settings_test_table", new ByteArrayInputStream(csvData.getBytes()), ClickHouseFormat.CSV, insertSettings).get().close(); |
| 434 | + |
| 435 | + client.execute("SYSTEM FLUSH LOGS").get().close(); |
| 436 | + |
| 437 | + List<GenericRecord> logRecords = client.queryAll("SELECT * FROM clusterAllReplicas('default', system.query_log) WHERE query_id = '" + queryId + "' AND type = 'QueryFinish'"); |
| 438 | + |
| 439 | + GenericRecord record = logRecords.get(0); |
| 440 | + String settings = record.getString(record.getSchema().nameToColumnIndex("Settings")); |
| 441 | + Assert.assertTrue(settings.contains(ServerSettings.ASYNC_INSERT + "=1")); |
| 442 | +// Assert.assertTrue(settings.contains(ServerSettings.WAIT_ASYNC_INSERT + "=1")); // uncomment after server fix |
| 443 | + } |
| 444 | + } |
| 445 | + |
415 | 446 | public boolean isVersionMatch(String versionExpression, Client client) { |
416 | 447 | List<GenericRecord> serverVersion = client.queryAll("SELECT version()"); |
417 | 448 | return ClickHouseVersion.of(serverVersion.get(0).getString(1)).check(versionExpression); |
|
0 commit comments