This is an automated email from the ASF dual-hosted git repository.

mchades pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/gravitino.git


The following commit(s) were added to refs/heads/main by this push:
     new 810a8b5e9 [#5784] improvement(catalog) Modify the ColumnSize/Scale of 
JdbcTypeBean to be of type integer.  (#5788)
810a8b5e9 is described below

commit 810a8b5e95b28c91a7b2415a33abccfb910a20e3
Author: Xiaojian Sun <[email protected]>
AuthorDate: Sat Dec 7 15:27:40 2024 +0800

    [#5784] improvement(catalog) Modify the ColumnSize/Scale of JdbcTypeBean to 
be of type integer.  (#5788)
    
    ### What changes were proposed in this pull request?
    
     Modify the ColumnSize/Scale of JdbcTypeBean to be of type integer.
    
    ### Why are the changes needed?
    
    Fix: #5784
---
 .../gravitino/catalog/jdbc/converter/JdbcTypeConverter.java  | 12 ++++++------
 .../catalog/jdbc/operation/JdbcTableOperations.java          |  4 ++--
 .../doris/converter/DorisColumnDefaultValueConverter.java    | 12 +++---------
 .../catalog/doris/converter/DorisTypeConverter.java          |  7 +++----
 .../doris/operation/DorisTablePartitionOperations.java       |  4 ++--
 .../mysql/converter/MysqlColumnDefaultValueConverter.java    | 11 +++--------
 .../catalog/mysql/converter/MysqlTypeConverter.java          |  7 +++----
 .../catalog/mysql/converter/TestMysqlTypeConverter.java      | 10 +++++-----
 .../converter/OceanBaseColumnDefaultValueConverter.java      | 11 +++--------
 .../catalog/oceanbase/converter/OceanBaseTypeConverter.java  |  7 +++----
 .../oceanbase/converter/TestOceanBaseTypeConverter.java      | 10 +++++-----
 .../converter/PostgreSqlColumnDefaultValueConverter.java     |  7 ++-----
 .../postgresql/converter/PostgreSqlTypeConverter.java        |  7 +++----
 .../postgresql/converter/TestPostgreSqlTypeConverter.java    | 10 +++++-----
 14 files changed, 48 insertions(+), 71 deletions(-)

diff --git 
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/converter/JdbcTypeConverter.java
 
b/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/converter/JdbcTypeConverter.java
index 9c4608e70..140d93e87 100644
--- 
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/converter/JdbcTypeConverter.java
+++ 
b/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/converter/JdbcTypeConverter.java
@@ -35,10 +35,10 @@ public abstract class JdbcTypeConverter
     private String typeName;
 
     /** Column size. For example: 20 in varchar (20) and 10 in decimal (10,2). 
*/
-    private String columnSize;
+    private Integer columnSize;
 
     /** Scale. For example: 2 in decimal (10,2). */
-    private String scale;
+    private Integer scale;
 
     public JdbcTypeBean(String typeName) {
       this.typeName = typeName;
@@ -52,19 +52,19 @@ public abstract class JdbcTypeConverter
       this.typeName = typeName;
     }
 
-    public String getColumnSize() {
+    public Integer getColumnSize() {
       return columnSize;
     }
 
-    public void setColumnSize(String columnSize) {
+    public void setColumnSize(Integer columnSize) {
       this.columnSize = columnSize;
     }
 
-    public String getScale() {
+    public Integer getScale() {
       return scale;
     }
 
-    public void setScale(String scale) {
+    public void setScale(Integer scale) {
       this.scale = scale;
     }
 
diff --git 
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/operation/JdbcTableOperations.java
 
b/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/operation/JdbcTableOperations.java
index e9cd14cf3..083ffaaaf 100644
--- 
a/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/operation/JdbcTableOperations.java
+++ 
b/catalogs/catalog-jdbc-common/src/main/java/org/apache/gravitino/catalog/jdbc/operation/JdbcTableOperations.java
@@ -587,8 +587,8 @@ public abstract class JdbcTableOperations implements 
TableOperation {
   protected JdbcColumn.Builder getBasicJdbcColumnInfo(ResultSet column) throws 
SQLException {
     JdbcTypeConverter.JdbcTypeBean typeBean =
         new JdbcTypeConverter.JdbcTypeBean(column.getString("TYPE_NAME"));
-    typeBean.setColumnSize(column.getString("COLUMN_SIZE"));
-    typeBean.setScale(column.getString("DECIMAL_DIGITS"));
+    typeBean.setColumnSize(column.getInt("COLUMN_SIZE"));
+    typeBean.setScale(column.getInt("DECIMAL_DIGITS"));
     String comment = column.getString("REMARKS");
     boolean nullable = column.getBoolean("NULLABLE");
 
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 0a1c42c4b..d4f81ac82 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
@@ -81,10 +81,7 @@ public class DorisColumnDefaultValueConverter extends 
JdbcColumnDefaultValueConv
         return Literals.doubleLiteral(Double.valueOf(columnDefaultValue));
       case DECIMAL:
         return Literals.decimalLiteral(
-            Decimal.of(
-                columnDefaultValue,
-                Integer.parseInt(columnType.getColumnSize()),
-                Integer.parseInt(columnType.getScale())));
+            Decimal.of(columnDefaultValue, columnType.getColumnSize(), 
columnType.getScale()));
       case JdbcTypeConverter.DATE:
         return Literals.dateLiteral(LocalDate.parse(columnDefaultValue, 
DATE_TIME_FORMATTER));
       case JdbcTypeConverter.TIME:
@@ -96,12 +93,9 @@ public class DorisColumnDefaultValueConverter extends 
JdbcColumnDefaultValueConv
             : Literals.timestampLiteral(
                 LocalDateTime.parse(columnDefaultValue, DATE_TIME_FORMATTER));
       case JdbcTypeConverter.VARCHAR:
-        return Literals.of(
-            columnDefaultValue, 
Types.VarCharType.of(Integer.parseInt(columnType.getColumnSize())));
+        return Literals.of(columnDefaultValue, 
Types.VarCharType.of(columnType.getColumnSize()));
       case CHAR:
-        return Literals.of(
-            columnDefaultValue,
-            
Types.FixedCharType.of(Integer.parseInt(columnType.getColumnSize())));
+        return Literals.of(columnDefaultValue, 
Types.FixedCharType.of(columnType.getColumnSize()));
       case JdbcTypeConverter.TEXT:
         return Literals.stringLiteral(columnDefaultValue);
       default:
diff --git 
a/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/converter/DorisTypeConverter.java
 
b/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/converter/DorisTypeConverter.java
index 8121e0eb1..abc85c4c7 100644
--- 
a/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/converter/DorisTypeConverter.java
+++ 
b/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/converter/DorisTypeConverter.java
@@ -54,16 +54,15 @@ public class DorisTypeConverter extends JdbcTypeConverter {
       case DOUBLE:
         return Types.DoubleType.get();
       case DECIMAL:
-        return Types.DecimalType.of(
-            Integer.parseInt(typeBean.getColumnSize()), 
Integer.parseInt(typeBean.getScale()));
+        return Types.DecimalType.of(typeBean.getColumnSize(), 
typeBean.getScale());
       case DATE:
         return Types.DateType.get();
       case DATETIME:
         return Types.TimestampType.withoutTimeZone();
       case CHAR:
-        return 
Types.FixedCharType.of(Integer.parseInt(typeBean.getColumnSize()));
+        return Types.FixedCharType.of(typeBean.getColumnSize());
       case VARCHAR:
-        return 
Types.VarCharType.of(Integer.parseInt(typeBean.getColumnSize()));
+        return Types.VarCharType.of(typeBean.getColumnSize());
       case STRING:
       case TEXT:
         return Types.StringType.get();
diff --git 
a/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/operation/DorisTablePartitionOperations.java
 
b/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/operation/DorisTablePartitionOperations.java
index e075717f4..21bb654d8 100644
--- 
a/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/operation/DorisTablePartitionOperations.java
+++ 
b/catalogs/catalog-jdbc-doris/src/main/java/org/apache/gravitino/catalog/doris/operation/DorisTablePartitionOperations.java
@@ -285,8 +285,8 @@ public final class DorisTablePartitionOperations extends 
JdbcTablePartitionOpera
         if (Objects.equals(result.getString("TABLE_NAME"), 
loadedTable.name())) {
           JdbcTypeConverter.JdbcTypeBean typeBean =
               new 
JdbcTypeConverter.JdbcTypeBean(result.getString("TYPE_NAME"));
-          typeBean.setColumnSize(result.getString("COLUMN_SIZE"));
-          typeBean.setScale(result.getString("DECIMAL_DIGITS"));
+          typeBean.setColumnSize(result.getInt("COLUMN_SIZE"));
+          typeBean.setScale(result.getInt("DECIMAL_DIGITS"));
           Type gravitinoType = typeConverter.toGravitino(typeBean);
           String columnName = result.getString("COLUMN_NAME");
           columnTypes.put(columnName, gravitinoType);
diff --git 
a/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/converter/MysqlColumnDefaultValueConverter.java
 
b/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/converter/MysqlColumnDefaultValueConverter.java
index aea869d63..26f6fdef8 100644
--- 
a/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/converter/MysqlColumnDefaultValueConverter.java
+++ 
b/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/converter/MysqlColumnDefaultValueConverter.java
@@ -80,10 +80,7 @@ public class MysqlColumnDefaultValueConverter extends 
JdbcColumnDefaultValueConv
         return Literals.doubleLiteral(Double.valueOf(columnDefaultValue));
       case MysqlTypeConverter.DECIMAL:
         return Literals.decimalLiteral(
-            Decimal.of(
-                columnDefaultValue,
-                Integer.parseInt(type.getColumnSize()),
-                Integer.parseInt(type.getScale())));
+            Decimal.of(columnDefaultValue, type.getColumnSize(), 
type.getScale()));
       case JdbcTypeConverter.DATE:
         return Literals.dateLiteral(LocalDate.parse(columnDefaultValue, 
DATE_FORMATTER));
       case JdbcTypeConverter.TIME:
@@ -95,11 +92,9 @@ public class MysqlColumnDefaultValueConverter extends 
JdbcColumnDefaultValueConv
             : Literals.timestampLiteral(
                 LocalDateTime.parse(columnDefaultValue, DATE_TIME_FORMATTER));
       case JdbcTypeConverter.VARCHAR:
-        return Literals.of(
-            columnDefaultValue, 
Types.VarCharType.of(Integer.parseInt(type.getColumnSize())));
+        return Literals.of(columnDefaultValue, 
Types.VarCharType.of(type.getColumnSize()));
       case MysqlTypeConverter.CHAR:
-        return Literals.of(
-            columnDefaultValue, 
Types.FixedCharType.of(Integer.parseInt(type.getColumnSize())));
+        return Literals.of(columnDefaultValue, 
Types.FixedCharType.of(type.getColumnSize()));
       case JdbcTypeConverter.TEXT:
         return Literals.stringLiteral(columnDefaultValue);
       default:
diff --git 
a/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/converter/MysqlTypeConverter.java
 
b/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/converter/MysqlTypeConverter.java
index 830643b04..a0a00eadd 100644
--- 
a/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/converter/MysqlTypeConverter.java
+++ 
b/catalogs/catalog-jdbc-mysql/src/main/java/org/apache/gravitino/catalog/mysql/converter/MysqlTypeConverter.java
@@ -76,12 +76,11 @@ public class MysqlTypeConverter extends JdbcTypeConverter {
       case DATETIME:
         return Types.TimestampType.withoutTimeZone();
       case DECIMAL:
-        return Types.DecimalType.of(
-            Integer.parseInt(typeBean.getColumnSize()), 
Integer.parseInt(typeBean.getScale()));
+        return Types.DecimalType.of(typeBean.getColumnSize(), 
typeBean.getScale());
       case VARCHAR:
-        return 
Types.VarCharType.of(Integer.parseInt(typeBean.getColumnSize()));
+        return Types.VarCharType.of(typeBean.getColumnSize());
       case CHAR:
-        return 
Types.FixedCharType.of(Integer.parseInt(typeBean.getColumnSize()));
+        return Types.FixedCharType.of(typeBean.getColumnSize());
       case TEXT:
         return Types.StringType.get();
       case BINARY:
diff --git 
a/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/converter/TestMysqlTypeConverter.java
 
b/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/converter/TestMysqlTypeConverter.java
index 53d007458..9478d133a 100644
--- 
a/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/converter/TestMysqlTypeConverter.java
+++ 
b/catalogs/catalog-jdbc-mysql/src/test/java/org/apache/gravitino/catalog/mysql/converter/TestMysqlTypeConverter.java
@@ -56,9 +56,9 @@ public class TestMysqlTypeConverter {
     checkJdbcTypeToGravitinoType(Types.TimeType.get(), TIME, null, null);
     checkJdbcTypeToGravitinoType(Types.TimestampType.withoutTimeZone(), 
DATETIME, null, null);
     checkJdbcTypeToGravitinoType(Types.TimestampType.withTimeZone(), 
TIMESTAMP, null, null);
-    checkJdbcTypeToGravitinoType(Types.DecimalType.of(10, 2), DECIMAL, "10", 
"2");
-    checkJdbcTypeToGravitinoType(Types.VarCharType.of(20), VARCHAR, "20", 
null);
-    checkJdbcTypeToGravitinoType(Types.FixedCharType.of(20), CHAR, "20", null);
+    checkJdbcTypeToGravitinoType(Types.DecimalType.of(10, 2), DECIMAL, 10, 2);
+    checkJdbcTypeToGravitinoType(Types.VarCharType.of(20), VARCHAR, 20, null);
+    checkJdbcTypeToGravitinoType(Types.FixedCharType.of(20), CHAR, 20, null);
     checkJdbcTypeToGravitinoType(Types.StringType.get(), TEXT, null, null);
     checkJdbcTypeToGravitinoType(Types.BinaryType.get(), BINARY, null, null);
     checkJdbcTypeToGravitinoType(
@@ -92,13 +92,13 @@ public class TestMysqlTypeConverter {
   }
 
   protected void checkJdbcTypeToGravitinoType(
-      Type gravitinoType, String jdbcTypeName, String columnSize, String 
scale) {
+      Type gravitinoType, String jdbcTypeName, Integer columnSize, Integer 
scale) {
     JdbcTypeConverter.JdbcTypeBean typeBean = createTypeBean(jdbcTypeName, 
columnSize, scale);
     Assertions.assertEquals(gravitinoType, 
MYSQL_TYPE_CONVERTER.toGravitino(typeBean));
   }
 
   protected static JdbcTypeConverter.JdbcTypeBean createTypeBean(
-      String typeName, String columnSize, String scale) {
+      String typeName, Integer columnSize, Integer scale) {
     return new JdbcTypeConverter.JdbcTypeBean(typeName) {
       {
         setColumnSize(columnSize);
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseColumnDefaultValueConverter.java
 
b/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseColumnDefaultValueConverter.java
index 6677ed05d..6c999a6d7 100644
--- 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseColumnDefaultValueConverter.java
+++ 
b/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseColumnDefaultValueConverter.java
@@ -88,10 +88,7 @@ public class OceanBaseColumnDefaultValueConverter extends 
JdbcColumnDefaultValue
       case OceanBaseTypeConverter.NUMERIC:
       case OceanBaseTypeConverter.DECIMAL:
         return Literals.decimalLiteral(
-            Decimal.of(
-                columnDefaultValue,
-                Integer.parseInt(type.getColumnSize()),
-                Integer.parseInt(type.getScale())));
+            Decimal.of(columnDefaultValue, type.getColumnSize(), 
type.getScale()));
       case JdbcTypeConverter.DATE:
         return Literals.dateLiteral(LocalDate.parse(columnDefaultValue, 
DATE_FORMATTER));
       case JdbcTypeConverter.TIME:
@@ -103,11 +100,9 @@ public class OceanBaseColumnDefaultValueConverter extends 
JdbcColumnDefaultValue
             : Literals.timestampLiteral(
                 LocalDateTime.parse(columnDefaultValue, DATE_TIME_FORMATTER));
       case JdbcTypeConverter.VARCHAR:
-        return Literals.of(
-            columnDefaultValue, 
Types.VarCharType.of(Integer.parseInt(type.getColumnSize())));
+        return Literals.of(columnDefaultValue, 
Types.VarCharType.of(type.getColumnSize()));
       case OceanBaseTypeConverter.CHAR:
-        return Literals.of(
-            columnDefaultValue, 
Types.FixedCharType.of(Integer.parseInt(type.getColumnSize())));
+        return Literals.of(columnDefaultValue, 
Types.FixedCharType.of(type.getColumnSize()));
       case JdbcTypeConverter.TEXT:
         return Literals.stringLiteral(columnDefaultValue);
       default:
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseTypeConverter.java
 
b/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseTypeConverter.java
index 19a432dfd..8f4deb1e7 100644
--- 
a/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseTypeConverter.java
+++ 
b/catalogs/catalog-jdbc-oceanbase/src/main/java/org/apache/gravitino/catalog/oceanbase/converter/OceanBaseTypeConverter.java
@@ -76,12 +76,11 @@ public class OceanBaseTypeConverter extends 
JdbcTypeConverter {
       case NUMBER:
       case NUMERIC:
       case DECIMAL:
-        return Types.DecimalType.of(
-            Integer.parseInt(typeBean.getColumnSize()), 
Integer.parseInt(typeBean.getScale()));
+        return Types.DecimalType.of(typeBean.getColumnSize(), 
typeBean.getScale());
       case VARCHAR:
-        return 
Types.VarCharType.of(Integer.parseInt(typeBean.getColumnSize()));
+        return Types.VarCharType.of(typeBean.getColumnSize());
       case CHAR:
-        return 
Types.FixedCharType.of(Integer.parseInt(typeBean.getColumnSize()));
+        return Types.FixedCharType.of(typeBean.getColumnSize());
       case TEXT:
         return Types.StringType.get();
       case BINARY:
diff --git 
a/catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/converter/TestOceanBaseTypeConverter.java
 
b/catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/converter/TestOceanBaseTypeConverter.java
index 8b044fea9..a8bbb7e25 100644
--- 
a/catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/converter/TestOceanBaseTypeConverter.java
+++ 
b/catalogs/catalog-jdbc-oceanbase/src/test/java/org/apache/gravitino/catalog/oceanbase/converter/TestOceanBaseTypeConverter.java
@@ -59,9 +59,9 @@ public class TestOceanBaseTypeConverter {
     checkJdbcTypeToGravitinoType(Types.TimeType.get(), TIME, null, null);
     checkJdbcTypeToGravitinoType(Types.TimestampType.withoutTimeZone(), 
DATETIME, null, null);
     checkJdbcTypeToGravitinoType(Types.TimestampType.withTimeZone(), 
TIMESTAMP, null, null);
-    checkJdbcTypeToGravitinoType(Types.DecimalType.of(10, 2), DECIMAL, "10", 
"2");
-    checkJdbcTypeToGravitinoType(Types.VarCharType.of(20), VARCHAR, "20", 
null);
-    checkJdbcTypeToGravitinoType(Types.FixedCharType.of(20), CHAR, "20", null);
+    checkJdbcTypeToGravitinoType(Types.DecimalType.of(10, 2), DECIMAL, 10, 2);
+    checkJdbcTypeToGravitinoType(Types.VarCharType.of(20), VARCHAR, 20, null);
+    checkJdbcTypeToGravitinoType(Types.FixedCharType.of(20), CHAR, 20, null);
     checkJdbcTypeToGravitinoType(Types.StringType.get(), TEXT, null, null);
     checkJdbcTypeToGravitinoType(Types.BinaryType.get(), BINARY, null, null);
     checkJdbcTypeToGravitinoType(
@@ -95,13 +95,13 @@ public class TestOceanBaseTypeConverter {
   }
 
   protected void checkJdbcTypeToGravitinoType(
-      Type gravitinoType, String jdbcTypeName, String columnSize, String 
scale) {
+      Type gravitinoType, String jdbcTypeName, Integer columnSize, Integer 
scale) {
     JdbcTypeConverter.JdbcTypeBean typeBean = createTypeBean(jdbcTypeName, 
columnSize, scale);
     Assertions.assertEquals(gravitinoType, 
OCEANBASE_TYPE_CONVERTER.toGravitino(typeBean));
   }
 
   protected static JdbcTypeConverter.JdbcTypeBean createTypeBean(
-      String typeName, String columnSize, String scale) {
+      String typeName, Integer columnSize, Integer scale) {
     return new JdbcTypeConverter.JdbcTypeBean(typeName) {
       {
         setColumnSize(columnSize);
diff --git 
a/catalogs/catalog-jdbc-postgresql/src/main/java/org/apache/gravitino/catalog/postgresql/converter/PostgreSqlColumnDefaultValueConverter.java
 
b/catalogs/catalog-jdbc-postgresql/src/main/java/org/apache/gravitino/catalog/postgresql/converter/PostgreSqlColumnDefaultValueConverter.java
index 091c99dd5..b510d6244 100644
--- 
a/catalogs/catalog-jdbc-postgresql/src/main/java/org/apache/gravitino/catalog/postgresql/converter/PostgreSqlColumnDefaultValueConverter.java
+++ 
b/catalogs/catalog-jdbc-postgresql/src/main/java/org/apache/gravitino/catalog/postgresql/converter/PostgreSqlColumnDefaultValueConverter.java
@@ -96,16 +96,13 @@ public class PostgreSqlColumnDefaultValueConverter extends 
JdbcColumnDefaultValu
         return Literals.doubleLiteral(Double.valueOf(columnDefaultValue));
       case PostgreSqlTypeConverter.NUMERIC:
         return Literals.decimalLiteral(
-            Decimal.of(
-                columnDefaultValue,
-                Integer.parseInt(type.getColumnSize()),
-                Integer.parseInt(type.getScale())));
+            Decimal.of(columnDefaultValue, type.getColumnSize(), 
type.getScale()));
       case JdbcTypeConverter.DATE:
         return Literals.dateLiteral(LocalDate.parse(columnDefaultValue, 
DATE_TIME_FORMATTER));
       case PostgreSqlTypeConverter.TIMESTAMP_TZ:
         return Literals.timeLiteral(LocalTime.parse(columnDefaultValue, 
DATE_TIME_FORMATTER));
       case VARCHAR:
-        return Literals.varcharLiteral(Integer.parseInt(type.getColumnSize()), 
columnDefaultValue);
+        return Literals.varcharLiteral(type.getColumnSize(), 
columnDefaultValue);
       case PostgreSqlTypeConverter.BPCHAR:
       case JdbcTypeConverter.TEXT:
         return Literals.stringLiteral(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 f930efaa5..39bc89e62 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
@@ -69,12 +69,11 @@ public class PostgreSqlTypeConverter extends 
JdbcTypeConverter {
       case TIMESTAMP_TZ:
         return Types.TimestampType.withTimeZone();
       case NUMERIC:
-        return Types.DecimalType.of(
-            Integer.parseInt(typeBean.getColumnSize()), 
Integer.parseInt(typeBean.getScale()));
+        return Types.DecimalType.of(typeBean.getColumnSize(), 
typeBean.getScale());
       case VARCHAR:
-        return 
Types.VarCharType.of(Integer.parseInt(typeBean.getColumnSize()));
+        return Types.VarCharType.of(typeBean.getColumnSize());
       case BPCHAR:
-        return 
Types.FixedCharType.of(Integer.parseInt(typeBean.getColumnSize()));
+        return Types.FixedCharType.of(typeBean.getColumnSize());
       case TEXT:
         return Types.StringType.get();
       case BYTEA:
diff --git 
a/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/converter/TestPostgreSqlTypeConverter.java
 
b/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/converter/TestPostgreSqlTypeConverter.java
index 355afd37e..718b61fe3 100644
--- 
a/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/converter/TestPostgreSqlTypeConverter.java
+++ 
b/catalogs/catalog-jdbc-postgresql/src/test/java/org/apache/gravitino/catalog/postgresql/converter/TestPostgreSqlTypeConverter.java
@@ -61,9 +61,9 @@ public class TestPostgreSqlTypeConverter {
     checkJdbcTypeToGravitinoType(Types.DateType.get(), DATE, null, null);
     checkJdbcTypeToGravitinoType(Types.TimeType.get(), TIME, null, null);
     checkJdbcTypeToGravitinoType(Types.TimestampType.withoutTimeZone(), 
TIMESTAMP, null, null);
-    checkJdbcTypeToGravitinoType(Types.DecimalType.of(10, 2), NUMERIC, "10", 
"2");
-    checkJdbcTypeToGravitinoType(Types.VarCharType.of(20), VARCHAR, "20", 
null);
-    checkJdbcTypeToGravitinoType(Types.FixedCharType.of(20), BPCHAR, "20", 
null);
+    checkJdbcTypeToGravitinoType(Types.DecimalType.of(10, 2), NUMERIC, 10, 2);
+    checkJdbcTypeToGravitinoType(Types.VarCharType.of(20), VARCHAR, 20, null);
+    checkJdbcTypeToGravitinoType(Types.FixedCharType.of(20), BPCHAR, 20, null);
     checkJdbcTypeToGravitinoType(Types.StringType.get(), TEXT, null, null);
     checkJdbcTypeToGravitinoType(Types.BinaryType.get(), BYTEA, null, null);
     checkJdbcTypeToGravitinoType(
@@ -118,13 +118,13 @@ public class TestPostgreSqlTypeConverter {
   }
 
   protected void checkJdbcTypeToGravitinoType(
-      Type gravitinoType, String jdbcTypeName, String columnSize, String 
scale) {
+      Type gravitinoType, String jdbcTypeName, Integer columnSize, Integer 
scale) {
     JdbcTypeConverter.JdbcTypeBean typeBean = createTypeBean(jdbcTypeName, 
columnSize, scale);
     Assertions.assertEquals(gravitinoType, 
POSTGRE_SQL_TYPE_CONVERTER.toGravitino(typeBean));
   }
 
   protected static JdbcTypeConverter.JdbcTypeBean createTypeBean(
-      String typeName, String columnSize, String scale) {
+      String typeName, Integer columnSize, Integer scale) {
     return new JdbcTypeConverter.JdbcTypeBean(typeName) {
       {
         setColumnSize(columnSize);

Reply via email to