diff --git a/clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseDataType.java b/clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseDataType.java index 9a22fb4b9..4bf1a6686 100644 --- a/clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseDataType.java +++ b/clickhouse-data/src/main/java/com/clickhouse/data/ClickHouseDataType.java @@ -106,13 +106,12 @@ public enum ClickHouseDataType implements SQLType { Ring(Object.class, false, true, true, 0, 0, 0, 0, 0, true), // same as Array(Point) LineString( Object.class, false, true, true, 0, 0, 0, 0, 0, true), // same as Array(Point) MultiLineString(Object.class, false, true, true, 0, 0, 0, 0, 0, true), // same as Array(Ring) - JSON(Object.class, false, false, false, 0, 0, 0, 0, 0, true, 0x30), - @Deprecated + @Deprecated // (since = "CH 25.11") Object(Object.class, true, true, false, 0, 0, 0, 0, 0, true), String(String.class, false, true, false, 0, 0, 0, 0, 0, false, 0x15, "BINARY LARGE OBJECT", "BINARY VARYING", "BLOB", "BYTEA", "CHAR", "CHAR LARGE OBJECT", "CHAR VARYING", "CHARACTER", "CHARACTER LARGE OBJECT", - "CHARACTER VARYING", "CLOB", "GEOMETRY", "LONGBLOB", "LONGTEXT", "MEDIUMBLOB", "MEDIUMTEXT", + "CHARACTER VARYING", "CLOB", "LONGBLOB", "LONGTEXT", "MEDIUMBLOB", "MEDIUMTEXT", "NATIONAL CHAR", "NATIONAL CHAR VARYING", "NATIONAL CHARACTER", "NATIONAL CHARACTER LARGE OBJECT", "NATIONAL CHARACTER VARYING", "NCHAR", "NCHAR LARGE OBJECT", "NCHAR VARYING", "NVARCHAR", "TEXT", "TINYBLOB", "TINYTEXT", "VARBINARY", "VARCHAR", "VARCHAR2"), @@ -131,6 +130,7 @@ public enum ClickHouseDataType implements SQLType { Time(LocalDateTime.class, true, false, false, 4, 9, 0, 0, 9, false, 0x32), // 0x33 for Time(Timezone) Time64(LocalDateTime.class, true, false, false, 8, 9, 0, 0, 0, false, 0x34), // 0x35 for Time64(P, Timezone) QBit(Double.class, true, true, false, 0, 0, 0, 0, 0, false, 0x36), + Geometry(Object.class, false, false, false, 0, 0, 0, 0, 0, true), ; public static final List ORDERED_BY_RANGE_INT_TYPES = diff --git a/client-v2/src/test/java/com/clickhouse/client/datatypes/DataTypeTests.java b/client-v2/src/test/java/com/clickhouse/client/datatypes/DataTypeTests.java index d2130c322..1ab8797ea 100644 --- a/client-v2/src/test/java/com/clickhouse/client/datatypes/DataTypeTests.java +++ b/client-v2/src/test/java/com/clickhouse/client/datatypes/DataTypeTests.java @@ -172,6 +172,7 @@ public void testVariantWithSimpleDataTypes() throws Exception { switch (dataType) { case BFloat16: case QBit: + case Geometry: // TODO: add support continue dataTypesLoop; // skipped @@ -466,6 +467,7 @@ public void testDynamicWithPrimitives() throws Exception { switch (dataType) { case BFloat16: case QBit: + case Geometry: // TODO: add support continue; case Array: diff --git a/jdbc-v2/src/test/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataTest.java b/jdbc-v2/src/test/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataTest.java index 53b54d27e..7201d9c52 100644 --- a/jdbc-v2/src/test/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataTest.java +++ b/jdbc-v2/src/test/java/com/clickhouse/jdbc/metadata/DatabaseMetaDataTest.java @@ -446,7 +446,7 @@ public void testGetTypeInfo() throws Exception { assertEquals(rs.getShort("NULLABLE"), DatabaseMetaData.typeNoNulls); } - if (dataType != ClickHouseDataType.Enum) { + if (dataType != ClickHouseDataType.Enum && dataType != ClickHouseDataType.Geometry) { assertEquals(rs.getBoolean("CASE_SENSITIVE"), dataType.isCaseSensitive()); } assertEquals(rs.getInt("SEARCHABLE"), DatabaseMetaData.typeSearchable); @@ -478,7 +478,11 @@ public void testFindNestedTypes() throws Exception { nestedTypes.remove(typeName); } - assertTrue(nestedTypes.isEmpty(), "Nested types " + nestedTypes + " not found"); + if (ClickHouseVersion.of(getServerVersion()).check("(,25.10]")) { + assertEquals(nestedTypes, Arrays.asList("Geometry")); // Geometry was introduced in 25.11 + } else { + assertEquals(nestedTypes, Arrays.asList("Object")); // Object is deprecated in 25.11 + } } } }