Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions NEXT_CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
- Fixed `PARSE_SYNTAX_ERROR` for column names containing special characters (e.g., dots) when `EnableBatchedInserts` is enabled, by re-quoting column names with backticks in reconstructed multi-row INSERT statements.
- Fixed Volume ingestion for SEA mode, which was broken due to statement being closed prematurely.
- Fixed escaped pattern characters in catalogName for `getSchemas`, as returned catalogName should be unescaped.
- Fixed `getColumnClassName()` returning null for VARIANT columns in SEA mode by adding VARIANT to the type system.

---
*Note: When making changes, please add your change under the appropriate section
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,8 @@ public static ColumnInfoTypeName getColumnInfoType(String typeName) {
return ColumnInfoTypeName.MAP;
case DatabricksTypeUtil.INTERVAL:
return ColumnInfoTypeName.INTERVAL;
case DatabricksTypeUtil.VARIANT:
return ColumnInfoTypeName.VARIANT;
}
return ColumnInfoTypeName.USER_DEFINED_TYPE;
}
Expand Down Expand Up @@ -163,6 +165,7 @@ public static int getColumnType(ColumnInfoTypeName typeName) {
return Types.STRUCT;
case ARRAY:
return Types.ARRAY;
case VARIANT:
case GEOMETRY:
case GEOGRAPHY:
case USER_DEFINED_TYPE:
Expand Down Expand Up @@ -203,6 +206,7 @@ public static String getColumnTypeClassName(ColumnInfoTypeName typeName) {
case CHAR:
case STRING:
case INTERVAL:
case VARIANT:
case USER_DEFINED_TYPE:
return "java.lang.String";
case TIMESTAMP:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -30,5 +30,6 @@ public enum ColumnInfoTypeName {
STRING,
STRUCT,
TIMESTAMP,
USER_DEFINED_TYPE;
USER_DEFINED_TYPE,
VARIANT;
}
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,8 @@ void testGetColumnType() {
Map.entry(ColumnInfoTypeName.ARRAY, Types.ARRAY),
Map.entry(ColumnInfoTypeName.GEOMETRY, Types.OTHER),
Map.entry(ColumnInfoTypeName.GEOGRAPHY, Types.OTHER),
Map.entry(ColumnInfoTypeName.USER_DEFINED_TYPE, Types.OTHER));
Map.entry(ColumnInfoTypeName.USER_DEFINED_TYPE, Types.OTHER),
Map.entry(ColumnInfoTypeName.VARIANT, Types.OTHER));

expectedMappings.forEach(
(typeName, expectedSqlType) ->
Expand Down Expand Up @@ -132,7 +133,8 @@ void testGetColumnTypeClassName() {
Map.entry(ColumnInfoTypeName.GEOGRAPHY, GEOGRAPHY_CLASS_NAME),
Map.entry(ColumnInfoTypeName.MAP, "java.util.Map"),
Map.entry(ColumnInfoTypeName.NULL, "null"),
Map.entry(ColumnInfoTypeName.VOID, "null"));
Map.entry(ColumnInfoTypeName.VOID, "null"),
Map.entry(ColumnInfoTypeName.VARIANT, "java.lang.String"));

expectedMappings.forEach(
(columnType, expectedClassName) ->
Expand Down Expand Up @@ -191,6 +193,7 @@ void testGetMetadataColPrecision() {
void testIsSigned() {
assertTrue(DatabricksTypeUtil.isSigned(ColumnInfoTypeName.INT));
assertFalse(DatabricksTypeUtil.isSigned(ColumnInfoTypeName.BOOLEAN));
assertFalse(DatabricksTypeUtil.isSigned(ColumnInfoTypeName.VARIANT));
}

@Test
Expand Down Expand Up @@ -285,6 +288,7 @@ void testInferDatabricksType() {
"MAP, MAP",
"CHAR, STRING",
"INTERVAL, INTERVAL",
"VARIANT, VARIANT",
"UNKNOWN, USER_DEFINED_TYPE"
})
public void testGetColumnInfoType(String inputTypeName, String expectedTypeName) {
Expand Down
Loading