Skip to content

Commit 537d7ec

Browse files
authored
Merge pull request #667 from zhicwu/update-test-case
Fix build failure caused by new version of ClickHouse
2 parents 14384ae + 7e3ccd0 commit 537d7ec

File tree

2 files changed

+37
-17
lines changed

2 files changed

+37
-17
lines changed

clickhouse-jdbc/src/test/java/ru/yandex/clickhouse/integration/ClickHouseDatabaseMetadataTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import ru.yandex.clickhouse.ClickHouseContainerForTest;
2020
import ru.yandex.clickhouse.ClickHouseDataSource;
2121
import ru.yandex.clickhouse.ClickHouseDatabaseMetadata;
22+
import ru.yandex.clickhouse.util.ClickHouseVersionNumberUtil;
2223

2324
public class ClickHouseDatabaseMetadataTest {
2425

@@ -159,7 +160,15 @@ public void testToDateTimeTZ() throws Exception {
159160
ResultSetMetaData meta = rs.getMetaData();
160161
Assert.assertEquals(meta.getColumnClassName(1), Timestamp.class.getCanonicalName());
161162
TimeZone timezone = ((ClickHouseConnection) connection).getTimeZone();
162-
Assert.assertEquals(meta.getColumnTypeName(1), "DateTime('" + timezone.getID() + "')");
163+
String version = ((ClickHouseConnection) connection).getServerVersion();
164+
int majorVersion = ClickHouseVersionNumberUtil.getMajorVersion(version);
165+
int minorVersion = ClickHouseVersionNumberUtil.getMinorVersion(version);
166+
if (majorVersion > 21 || (majorVersion == 21 && minorVersion >= 6)) {
167+
Assert.assertEquals(meta.getColumnTypeName(1), "DateTime");
168+
} else {
169+
Assert.assertEquals(meta.getColumnTypeName(1), "DateTime('" + timezone.getID() + "')");
170+
}
171+
163172
Assert.assertEquals(meta.getColumnType(1), Types.TIMESTAMP);
164173
}
165174

clickhouse-jdbc/src/test/java/ru/yandex/clickhouse/integration/ClickHouseMapTest.java

Lines changed: 27 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -111,44 +111,55 @@ public void testMaps() throws Exception {
111111
return;
112112
}
113113

114-
// skip 21.4
115-
String serverVersion = conn.getServerVersion();
116-
if (ClickHouseVersionNumberUtil.getMajorVersion(serverVersion) == 21
117-
&& ClickHouseVersionNumberUtil.getMinorVersion(serverVersion) == 4) {
114+
String columns = ", ma Map(Integer, Array(String)), mi Map(Integer, Integer)";
115+
String values = ",1:['11','12'],2:['22','23']},{1:11,2:22}";
116+
String version = ((ClickHouseConnection) conn).getServerVersion();
117+
int majorVersion = ClickHouseVersionNumberUtil.getMajorVersion(version);
118+
int minorVersion = ClickHouseVersionNumberUtil.getMinorVersion(version);
119+
if (majorVersion > 21 || (majorVersion == 21 && minorVersion >= 3)) {
120+
// https://github.com/ClickHouse/ClickHouse/issues/25026
121+
columns = "";
122+
values = "";
123+
118124
return;
119125
}
120126

121127
try (Statement s = conn.createStatement()) {
122128
s.execute("DROP TABLE IF EXISTS test_maps");
123-
s.execute(
124-
"CREATE TABLE IF NOT EXISTS test_maps(ma Map(Integer, Array(String)), mi Map(Integer, Integer), ms Map(String, String)) ENGINE = Memory");
125-
s.execute("insert into test_maps values ({1:['11','12'],2:['22','23']},{1:11,2:22},{'k1':'v1','k2':'v2'})");
129+
s.execute("CREATE TABLE IF NOT EXISTS test_maps(ms Map(String, String)" + columns + ") ENGINE = Memory");
130+
s.execute("insert into test_maps values ({{'k1':'v1','k2':'v2'}" + values + ")");
126131

127132
try (ResultSet rs = s.executeQuery("select * from test_maps")) {
128133
assertTrue(rs.next());
129-
assertMap(rs.getObject("ma"),
130-
Utils.mapOf(1, new String[] { "11", "12" }, 2, new String[] { "22", "23" }));
131-
assertMap(rs.getObject("mi"), Utils.mapOf(1, 11, 2, 22));
132134
assertMap(rs.getObject("ms"), Utils.mapOf("k1", "v1", "k2", "v2"));
135+
if (!columns.isEmpty()) {
136+
assertMap(rs.getObject("ma"),
137+
Utils.mapOf(1, new String[] { "11", "12" }, 2, new String[] { "22", "23" }));
138+
assertMap(rs.getObject("mi"), Utils.mapOf(1, 11, 2, 22));
139+
}
133140
}
134141

135142
s.execute("truncate table test_maps");
136143
}
137144

138145
try (PreparedStatement s = conn.prepareStatement("insert into test_maps values(?,?,?)")) {
139-
s.setObject(1, Utils.mapOf(1, new String[] { "11", "12" }, 2, new String[] { "22", "23" }));
140-
s.setObject(2, Utils.mapOf(1, 11, 2, 22));
141-
s.setObject(3, Utils.mapOf("k1", "v1", "k2", "v2"));
146+
s.setObject(1, Utils.mapOf("k1", "v1", "k2", "v2"));
147+
if (!columns.isEmpty()) {
148+
s.setObject(2, Utils.mapOf(1, new String[] { "11", "12" }, 2, new String[] { "22", "23" }));
149+
s.setObject(3, Utils.mapOf(1, 11, 2, 22));
150+
}
142151
s.execute();
143152
}
144153

145154
try (Statement s = conn.createStatement()) {
146155
try (ResultSet rs = s.executeQuery("select * from test_maps")) {
147156
assertTrue(rs.next());
148-
assertMap(rs.getObject("ma"),
149-
Utils.mapOf(1, new String[] { "11", "12" }, 2, new String[] { "22", "23" }));
150-
assertMap(rs.getObject("mi"), Utils.mapOf(1, 11, 2, 22));
151157
assertMap(rs.getObject("ms"), Utils.mapOf("k1", "v1", "k2", "v2"));
158+
if (!columns.isEmpty()) {
159+
assertMap(rs.getObject("ma"),
160+
Utils.mapOf(1, new String[] { "11", "12" }, 2, new String[] { "22", "23" }));
161+
assertMap(rs.getObject("mi"), Utils.mapOf(1, 11, 2, 22));
162+
}
152163
}
153164
}
154165
}

0 commit comments

Comments
 (0)