Skip to content

Commit 3544e2a

Browse files
committed
resolve conflict
2 parents 8ddaa36 + 3dbcdb9 commit 3544e2a

File tree

9 files changed

+70
-37
lines changed

9 files changed

+70
-37
lines changed

clickhouse-r2dbc/src/main/java/com/clickhouse/r2dbc/ClickHouseStatement.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,6 @@ public Flux<? extends Result> execute() {
156156

157157
@Override
158158
public Statement returnGeneratedValues(String... columns) {
159-
throw new UnsupportedOperationException(GENERATED_VALUES_CAN_NOT_BE_RETURNED_FROM_CLICKHOUSE_DATABASE);
159+
return this;
160160
}
161161
}

clickhouse-r2dbc/src/test/java/com/clickhouse/r2dbc/spi/test/R2DBCTestKitImplTest.java

Lines changed: 4 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -207,40 +207,16 @@ public void duplicateColumnNames() {
207207

208208
@Override
209209
@Test
210+
@Disabled
210211
public void returnGeneratedValues() {
211-
getJdbcOperations().execute(expand(TestStatement.DROP_TABLE));
212-
getJdbcOperations().execute(getCreateTableWithAutogeneratedKey());
213-
Flux.usingWhen(getConnectionFactory().create(),
214-
connection -> {
215-
Statement statement = connection.createStatement(getInsertIntoWithAutogeneratedKey());
216-
217-
statement.returnGeneratedValues();
218-
219-
return Flux.from(statement
220-
.execute())
221-
.flatMap(it -> it.map((row, rowMetadata) -> row.get(0)));
222-
},
223-
Connection::close)
224-
.as(StepVerifier::create)
225-
.expectErrorMatches(UnsupportedOperationException.class::isInstance)
226-
.verify();
212+
// not supported
227213
}
228214

229215
@Override
230216
@Test
217+
@Disabled
231218
public void returnGeneratedValuesFails() {
232-
233-
Flux.usingWhen(getConnectionFactory().create(),
234-
connection -> {
235-
Statement statement = connection.createStatement(expand(TestStatement.INSERT_VALUE100));
236-
237-
assertThrows(UnsupportedOperationException.class,
238-
() -> statement.returnGeneratedValues((String[]) null));
239-
return Mono.empty();
240-
},
241-
Connection::close)
242-
.as(StepVerifier::create)
243-
.verifyComplete();
219+
// not supported
244220
}
245221

246222
@Override

client-v2/src/main/java/com/clickhouse/client/api/Client.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1882,8 +1882,9 @@ public TableSchema getTableSchemaFromQuery(String sql) {
18821882
private TableSchema getTableSchemaImpl(String describeQuery, String name, String originalQuery, String database) {
18831883
int operationTimeout = getOperationTimeout();
18841884

1885-
try (QueryResponse response = operationTimeout == 0 ? query(describeQuery).get() :
1886-
query(describeQuery).get(getOperationTimeout(), TimeUnit.SECONDS)) {
1885+
QuerySettings settings = new QuerySettings().setDatabase(database);
1886+
try (QueryResponse response = operationTimeout == 0 ? query(describeQuery, settings).get() :
1887+
query(describeQuery, settings).get(getOperationTimeout(), TimeUnit.SECONDS)) {
18871888
return TableSchemaParser.readTSKV(response.getInputStream(), name, originalQuery, database);
18881889
} catch (TimeoutException e) {
18891890
throw new ClientException("Operation has likely timed out after " + getOperationTimeout() + " seconds.", e);

client-v2/src/test/java/com/clickhouse/client/insert/InsertTests.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -105,8 +105,7 @@ protected Client.Builder newClient() {
105105
.useHttpCompression(useHttpCompression)
106106
.setDefaultDatabase(ClickHouseServerForTest.getDatabase())
107107
.serverSetting(ServerSettings.ASYNC_INSERT, "0")
108-
.serverSetting(ServerSettings.WAIT_END_OF_QUERY, "1")
109-
.useNewImplementation(System.getProperty("client.tests.useNewImplementation", "true").equals("true"));
108+
.serverSetting(ServerSettings.WAIT_END_OF_QUERY, "1");
110109
}
111110

112111
@AfterMethod(groups = { "integration" })
@@ -162,7 +161,7 @@ public void insertPOJOWithJSON() throws Exception {
162161
client.execute("DROP TABLE IF EXISTS " + tableName, commandSettings).get(EXECUTE_CMD_TIMEOUT, TimeUnit.SECONDS);
163162
client.execute(createSQL, commandSettings).get(EXECUTE_CMD_TIMEOUT, TimeUnit.SECONDS);
164163

165-
client.register(PojoWithJSON.class, client.getTableSchema(tableName, "default"));
164+
client.register(PojoWithJSON.class, client.getTableSchema(tableName));
166165
PojoWithJSON pojo = new PojoWithJSON();
167166
pojo.setEventPayload(originalJsonStr);
168167
List<Object> data = Arrays.asList(pojo);
@@ -189,7 +188,7 @@ public void insertPOJOAndReadBack() throws Exception {
189188

190189
initTable(tableName, createSQL);
191190

192-
client.register(SamplePOJO.class, client.getTableSchema(tableName, "default"));
191+
client.register(SamplePOJO.class, client.getTableSchema(tableName));
193192

194193
System.out.println("Inserting POJO: " + pojo);
195194
try (InsertResponse response = client.insert(tableName, Collections.singletonList(pojo), settings).get(EXECUTE_CMD_TIMEOUT, TimeUnit.SECONDS)) {
@@ -231,7 +230,7 @@ public void testInsertingPOJOWithNullValueForNonNullableColumn() throws Exceptio
231230

232231
initTable(tableName, createSQL);
233232

234-
client.register(SamplePOJO.class, client.getTableSchema(tableName, "default"));
233+
client.register(SamplePOJO.class, client.getTableSchema(tableName));
235234

236235
try (InsertResponse response = client.insert(tableName, Collections.singletonList(pojo), settings).get(30, TimeUnit.SECONDS)) {
237236
fail("Should have thrown an exception");

client-v2/src/test/java/com/clickhouse/client/metadata/MetadataTests.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,9 @@
1414
import com.clickhouse.client.api.internal.ServerSettings;
1515
import com.clickhouse.client.api.metadata.DefaultColumnToMethodMatchingStrategy;
1616
import com.clickhouse.client.api.metadata.TableSchema;
17+
import com.clickhouse.client.api.query.QuerySettings;
1718
import com.clickhouse.data.ClickHouseColumn;
19+
import com.clickhouse.data.ClickHouseDataType;
1820
import com.clickhouse.data.ClickHouseRecord;
1921
import org.testng.Assert;
2022
import org.testng.annotations.BeforeMethod;
@@ -49,6 +51,24 @@ public void testGetTableSchema() {
4951
Assert.assertEquals(columns.get(0).getDataType().name(), "UInt32");
5052
}
5153

54+
@Test(groups = { "integration" })
55+
56+
public void testGetTableSchemaDifferentDb() throws Exception {
57+
String table = "test_get_table_schema_different_db";
58+
String db = ClickHouseServerForTest.getDatabase() + "_schema_test" ;
59+
try {
60+
QuerySettings settings = new QuerySettings().setDatabase(db);
61+
client.execute("DROP DATABASE IF EXISTS " + db).get().close();
62+
client.execute("CREATE DATABASE " + db).get().close();
63+
client.query("DROP TABLE IF EXISTS " + table, settings).get().close();
64+
client.query("CREATE TABLE " + table + " (rowId Int32) Engine=MergeTree ORDER BY ()", settings).get().close();
65+
TableSchema tableSchema = client.getTableSchema(table, db);
66+
Assert.assertEquals(tableSchema.getColumnByName("rowId").getDataType(), ClickHouseDataType.Int32);
67+
} finally {
68+
client.execute("DROP DATABASE IF EXISTS " + db).get().close();
69+
}
70+
}
71+
5272
private void prepareDataSet(String tableName) {
5373

5474
try {

client-v2/src/test/java/com/clickhouse/client/query/QueryTests.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1883,7 +1883,7 @@ public void testReadingBitmap() throws Exception {
18831883
throw e;
18841884
}
18851885

1886-
client.register(AggregateFuncDTO.class, client.getTableSchema(tableName, "default"));
1886+
client.register(AggregateFuncDTO.class, client.getTableSchema(tableName));
18871887

18881888
try (InsertResponse response = client.insert(tableName, Collections.singletonList(pojo)).get(30, TimeUnit.SECONDS)) {
18891889
Assert.assertEquals(response.getWrittenRows(), 1);

jdbc-v2/src/main/java/com/clickhouse/jdbc/StatementImpl.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ protected static StatementType parseStatementType(String sql) {
8484

8585
switch (tokens[0].toUpperCase()) {
8686
case "SELECT": return StatementType.SELECT;
87+
case "WITH": return StatementType.SELECT;
8788
case "INSERT": return StatementType.INSERT;
8889
case "DELETE": return StatementType.DELETE;
8990
case "UPDATE": return StatementType.UPDATE;

jdbc-v2/src/test/java/com/clickhouse/jdbc/PreparedStatementTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,4 +260,20 @@ public void testEscapeStrings() throws Exception {
260260
}
261261
}
262262
}
263+
264+
265+
@Test(groups = "integration")
266+
void testWithClause() throws Exception {
267+
int count = 0;
268+
try (Connection conn = getJdbcConnection()) {
269+
try (PreparedStatement stmt = conn.prepareStatement("with data as (SELECT number FROM numbers(100)) select * from data ")) {
270+
stmt.execute();
271+
ResultSet rs = stmt.getResultSet();
272+
while (rs.next()) {
273+
count++;
274+
}
275+
}
276+
}
277+
assertEquals(count, 100);
278+
}
263279
}

jdbc-v2/src/test/java/com/clickhouse/jdbc/StatementTest.java

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,11 @@ public void testWithComments() throws Exception {
464464
assertEquals(StatementImpl.parseStatementType(" "), StatementImpl.StatementType.OTHER);
465465
}
466466

467+
@Test(groups = { "integration" })
468+
public void testParseStatementWithClause() throws Exception {
469+
assertEquals(StatementImpl.parseStatementType("with data as (SELECT number FROM numbers(100)) select * from data"), StatementImpl.StatementType.SELECT);
470+
}
471+
467472

468473
@Test(groups = { "integration" })
469474
public void testWithIPs() throws Exception {
@@ -540,6 +545,21 @@ public void testTextFormatInResponse() throws Exception {
540545
}
541546
}
542547

548+
@Test(groups = "integration")
549+
void testWithClause() throws Exception {
550+
int count = 0;
551+
try (Connection conn = getJdbcConnection()) {
552+
try (Statement stmt = conn.createStatement()) {
553+
stmt.execute("with data as (SELECT number FROM numbers(100)) select * from data");
554+
ResultSet rs = stmt.getResultSet();
555+
while (rs.next()) {
556+
count++;
557+
}
558+
}
559+
}
560+
assertEquals(count, 100);
561+
}
562+
543563
@Test(groups = { "integration" })
544564
public void testSwitchDatabase() throws Exception {
545565
String createSql = "CREATE TABLE strings (id UInt8, words String) ENGINE = MergeTree ORDER BY ()";

0 commit comments

Comments
 (0)