This is an automated email from the ASF dual-hosted git repository.
jshao pushed a commit to branch branch-1.0
in repository https://gitbox.apache.org/repos/asf/gravitino.git
The following commit(s) were added to refs/heads/branch-1.0 by this push:
new 0f428d6f6b [#8277][#7019] fix(doris,starrocks,pg): fix unparsed
default value and column type (#9052)
0f428d6f6b is described below
commit 0f428d6f6b7a40f3fba9aca77a163d7bad9183e4
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Mon Nov 10 09:32:03 2025 -0800
[#8277][#7019] fix(doris,starrocks,pg): fix unparsed default value and
column type (#9052)
### What changes were proposed in this pull request?
fix unparsed default value for doris and starrocks
### Why are the changes needed?
Fix: #8277
Fix: #7019
### Does this PR introduce _any_ user-facing change?
no
### How was this patch tested?
CI pass
Co-authored-by: mchades <[email protected]>
---
.../converter/DorisColumnDefaultValueConverter.java | 2 +-
.../postgresql/converter/PostgreSqlTypeConverter.java | 4 +++-
.../integration/test/CatalogPostgreSqlIT.java | 19 +++++++++++++++++--
.../StarRocksColumnDefaultValueConverter.java | 2 +-
4 files changed, 22 insertions(+), 5 deletions(-)
diff --git
a/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/converter/DorisColumnDefaultValueConverter.java
b/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/converter/DorisColumnDefaultValueConverter.java
index e9a7a7f898..2566f226cd 100644
---
a/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/converter/DorisColumnDefaultValueConverter.java
+++
b/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/converter/DorisColumnDefaultValueConverter.java
@@ -96,7 +96,7 @@ public class DorisColumnDefaultValueConverter extends
JdbcColumnDefaultValueConv
case JdbcTypeConverter.TEXT:
return Literals.stringLiteral(columnDefaultValue);
default:
- throw new IllegalArgumentException("Unknown data columnType for
literal: " + columnType);
+ return UnparsedExpression.of(columnDefaultValue);
}
}
}
diff --git
a/catalogs/catalog-jdbc-postgresql/src/main/java/org/apache/gravitino/catalog/postgresql/converter/PostgreSqlTypeConverter.java
b/catalogs/catalog-jdbc-postgresql/src/main/java/org/apache/gravitino/catalog/postgresql/converter/PostgreSqlTypeConverter.java
index 3d5f788b9e..a50e12baf0 100644
---
a/catalogs/catalog-jdbc-postgresql/src/main/java/org/apache/gravitino/catalog/postgresql/converter/PostgreSqlTypeConverter.java
+++
b/catalogs/catalog-jdbc-postgresql/src/main/java/org/apache/gravitino/catalog/postgresql/converter/PostgreSqlTypeConverter.java
@@ -78,7 +78,9 @@ public class PostgreSqlTypeConverter extends
JdbcTypeConverter {
case NUMERIC:
return Types.DecimalType.of(typeBean.getColumnSize(),
typeBean.getScale());
case VARCHAR:
- return Types.VarCharType.of(typeBean.getColumnSize());
+ return typeBean.getColumnSize() == null
+ ? Types.StringType.get()
+ : Types.VarCharType.of(typeBean.getColumnSize());
case BPCHAR:
return Types.FixedCharType.of(typeBean.getColumnSize());
case TEXT:
diff --git
a/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/integration/test/CatalogPostgreSqlIT.java
b/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/integration/test/CatalogPostgreSqlIT.java
index b944629c0e..59f405102c 100644
---
a/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/integration/test/CatalogPostgreSqlIT.java
+++
b/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/integration/test/CatalogPostgreSqlIT.java
@@ -1038,9 +1038,14 @@ public class CatalogPostgreSqlIT extends BaseIT {
+ " date_col_5 date default '2012-12-31',\n"
+ " decimal_6_2_col_1 decimal(6, 2) default 1.2,\n"
+ " timestamp_col_1 timestamp default '2012-12-31 11:30:45',\n"
- + " time_col_1 time default '11:30:45'\n"
+ + " time_col_1 time default '11:30:45',\n"
+ + " uuid UUID NOT NULL,\n"
+ + " character_col_1 CHARACTER VARYING(64) NOT NULL,\n"
+ + " character_col_2 CHARACTER VARYING[],"
+ + " character_col_3 CHARACTER(36) DEFAULT ''::bpchar,\n"
+ + " character_col_4 CHARACTER VARYING[],\n"
+ + " jsonb JSONB NOT NULL\n"
+ ");";
- System.out.println(sql);
postgreSqlService.executeQuery(sql);
Table loadedTable =
catalog.asTableCatalog().loadTable(NameIdentifier.of(schemaName,
tableName));
@@ -1083,6 +1088,8 @@ public class CatalogPostgreSqlIT extends BaseIT {
Assertions.assertEquals(UnparsedExpression.of("CURRENT_DATE"),
column.defaultValue());
break;
case "date_col_2":
+ case "character_col_2":
+ case "character_col_4":
Assertions.assertEquals(Literals.NULL, column.defaultValue());
break;
case "date_col_3":
@@ -1106,6 +1113,14 @@ public class CatalogPostgreSqlIT extends BaseIT {
Assertions.assertEquals(
Literals.decimalLiteral(Decimal.of("1.2", 6, 2)),
column.defaultValue());
break;
+ case "uuid":
+ case "character_col_1":
+ case "jsonb":
+ Assertions.assertEquals(Column.DEFAULT_VALUE_NOT_SET,
column.defaultValue());
+ break;
+ case "character_col_3":
+ Assertions.assertEquals(Literals.stringLiteral("''::bpchar"),
column.defaultValue());
+ break;
default:
Assertions.fail("Unexpected column name: " + column.name());
}
diff --git
a/catalogs/catalog-jdbc-starrocks/src/main/java/org/apache/gravitino/catalog/starrocks/converter/StarRocksColumnDefaultValueConverter.java
b/catalogs/catalog-jdbc-starrocks/src/main/java/org/apache/gravitino/catalog/starrocks/converter/StarRocksColumnDefaultValueConverter.java
index 4da2f8df41..34f3f03236 100644
---
a/catalogs/catalog-jdbc-starrocks/src/main/java/org/apache/gravitino/catalog/starrocks/converter/StarRocksColumnDefaultValueConverter.java
+++
b/catalogs/catalog-jdbc-starrocks/src/main/java/org/apache/gravitino/catalog/starrocks/converter/StarRocksColumnDefaultValueConverter.java
@@ -95,7 +95,7 @@ public class StarRocksColumnDefaultValueConverter extends
JdbcColumnDefaultValue
case CHAR:
return Literals.of(columnDefaultValue,
Types.FixedCharType.of(columnType.getColumnSize()));
default:
- throw new IllegalArgumentException("Unknown data columnType for
literal: " + columnType);
+ return UnparsedExpression.of(columnDefaultValue);
}
}
}