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

lzljs3620320 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-paimon.git


The following commit(s) were added to refs/heads/master by this push:
     new 0fd8e85bc [core] Fix missing comment after updating column type. 
(#1614)
0fd8e85bc is described below

commit 0fd8e85bc24e26a22322a6ef921fe7195c578341
Author: Kerwin <[email protected]>
AuthorDate: Fri Jul 21 19:03:58 2023 +0800

    [core] Fix missing comment after updating column type. (#1614)
---
 .../org/apache/paimon/schema/SchemaManager.java    |  5 +++-
 .../org/apache/paimon/catalog/CatalogTestBase.java |  3 ++-
 .../apache/paimon/table/SchemaEvolutionTest.java   | 27 ++++++++++++-------
 .../apache/paimon/flink/SchemaChangeITCase.java    | 31 ++++++++++++----------
 4 files changed, 40 insertions(+), 26 deletions(-)

diff --git 
a/paimon-core/src/main/java/org/apache/paimon/schema/SchemaManager.java 
b/paimon-core/src/main/java/org/apache/paimon/schema/SchemaManager.java
index f46d3b8c8..15db61062 100644
--- a/paimon-core/src/main/java/org/apache/paimon/schema/SchemaManager.java
+++ b/paimon-core/src/main/java/org/apache/paimon/schema/SchemaManager.java
@@ -301,7 +301,10 @@ public class SchemaManager implements Serializable {
                                                     update.newDataType()));
                                 }
                                 return new DataField(
-                                        field.id(), field.name(), 
update.newDataType());
+                                        field.id(),
+                                        field.name(),
+                                        update.newDataType(),
+                                        field.description());
                             });
                 } else if (change instanceof UpdateColumnNullability) {
                     UpdateColumnNullability update = (UpdateColumnNullability) 
change;
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/catalog/CatalogTestBase.java 
b/paimon-core/src/test/java/org/apache/paimon/catalog/CatalogTestBase.java
index 12a3e6b27..b8395358b 100644
--- a/paimon-core/src/test/java/org/apache/paimon/catalog/CatalogTestBase.java
+++ b/paimon-core/src/test/java/org/apache/paimon/catalog/CatalogTestBase.java
@@ -605,7 +605,7 @@ public abstract class CatalogTestBase {
                 new Schema(
                         Lists.newArrayList(
                                 new DataField(0, "dt", DataTypes.STRING()),
-                                new DataField(1, "col1", DataTypes.BIGINT())),
+                                new DataField(1, "col1", DataTypes.BIGINT(), 
"col1 field")),
                         Lists.newArrayList("dt"),
                         Collections.emptyList(),
                         Maps.newHashMap(),
@@ -619,6 +619,7 @@ public abstract class CatalogTestBase {
 
         assertThat(table.rowType().getFieldIndex("col1")).isEqualTo(1);
         assertThat(table.rowType().getTypeAt(1)).isEqualTo(DataTypes.DOUBLE());
+        
assertThat(table.rowType().getFields().get(1).description()).isEqualTo("col1 
field");
 
         // Alter table update a column type throws Exception when column data 
type does not support
         // cast
diff --git 
a/paimon-core/src/test/java/org/apache/paimon/table/SchemaEvolutionTest.java 
b/paimon-core/src/test/java/org/apache/paimon/table/SchemaEvolutionTest.java
index 0eba5f2f7..a5f4cb645 100644
--- a/paimon-core/src/test/java/org/apache/paimon/table/SchemaEvolutionTest.java
+++ b/paimon-core/src/test/java/org/apache/paimon/table/SchemaEvolutionTest.java
@@ -31,6 +31,7 @@ import org.apache.paimon.predicate.PredicateBuilder;
 import org.apache.paimon.schema.Schema;
 import org.apache.paimon.schema.SchemaChange;
 import org.apache.paimon.schema.SchemaManager;
+import org.apache.paimon.schema.TableSchema;
 import org.apache.paimon.table.sink.StreamTableWrite;
 import org.apache.paimon.table.source.InnerTableRead;
 import org.apache.paimon.table.source.Split;
@@ -289,19 +290,25 @@ public class SchemaEvolutionTest {
     @Test
     public void testUpdateFieldType() throws Exception {
         Schema schema =
-                new Schema(
-                        RowType.of(DataTypes.INT(), 
DataTypes.BIGINT()).getFields(),
-                        Collections.emptyList(),
-                        Collections.emptyList(),
-                        new HashMap<>(),
-                        "");
+                Schema.newBuilder()
+                        .column("f0", DataTypes.INT(), "f0 field")
+                        .column("f1", DataTypes.BIGINT())
+                        .build();
         schemaManager.createTable(schema);
 
-        schemaManager.commitChanges(
-                Collections.singletonList(SchemaChange.updateColumnType("f0", 
DataTypes.BIGINT())));
+        TableSchema tableSchema =
+                schemaManager.commitChanges(
+                        Collections.singletonList(
+                                SchemaChange.updateColumnType("f0", 
DataTypes.BIGINT())));
+        
assertThat(tableSchema.fields().get(0).type()).isEqualTo(DataTypes.BIGINT());
+        assertThat(tableSchema.fields().get(0).description()).isEqualTo("f0 
field");
+
         // bigint to string
-        schemaManager.commitChanges(
-                Collections.singletonList(SchemaChange.updateColumnType("f0", 
DataTypes.STRING())));
+        tableSchema =
+                schemaManager.commitChanges(
+                        Collections.singletonList(
+                                SchemaChange.updateColumnType("f0", 
DataTypes.STRING())));
+        
assertThat(tableSchema.fields().get(0).type()).isEqualTo(DataTypes.STRING());
     }
 
     @Test
diff --git 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/SchemaChangeITCase.java
 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/SchemaChangeITCase.java
index fc10fb6b2..f5f4ea1ae 100644
--- 
a/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/SchemaChangeITCase.java
+++ 
b/paimon-flink/paimon-flink-common/src/test/java/org/apache/paimon/flink/SchemaChangeITCase.java
@@ -191,27 +191,30 @@ public class SchemaChangeITCase extends CatalogITCaseBase 
{
     public void testModifyColumnTypeFromNumericToNumericPrimitive() {
         // decimal and numeric primitive to numeric primitive
         sql(
-                "CREATE TABLE T (a TINYINT, b INT, c FLOAT, d DOUBLE, e 
DECIMAL(10, 4), f DECIMAL(10, 4), g DOUBLE)");
+                "CREATE TABLE T (a TINYINT COMMENT 'a field', b INT COMMENT 'b 
field', c FLOAT COMMENT 'c field', d DOUBLE, e DECIMAL(10, 4), f DECIMAL(10, 
4), g DOUBLE)");
         sql(
                 "INSERT INTO T VALUES(cast(1 as TINYINT), 123, 1.23, 3.141592, 
3.14156, 3.14159, 1.23)");
 
         sql(
                 "ALTER TABLE T MODIFY (a INT, b SMALLINT, c DOUBLE, d FLOAT, e 
BIGINT, f DOUBLE, g TINYINT)");
-        List<Row> result = sql("SHOW CREATE TABLE T");
-        assertThat(result.toString())
-                .contains(
-                        "CREATE TABLE `PAIMON`.`default`.`T` (\n"
-                                + "  `a` INT,\n"
-                                + "  `b` SMALLINT,\n"
-                                + "  `c` DOUBLE,\n"
-                                + "  `d` FLOAT,\n"
-                                + "  `e` BIGINT,\n"
-                                + "  `f` DOUBLE,\n"
-                                + "  `g` TINYINT");
+
+        List<String> result =
+                sql("DESC 
T").stream().map(Objects::toString).collect(Collectors.toList());
+        assertThat(result)
+                .containsExactlyInAnyOrder(
+                        "+I[a, INT, true, null, null, null, a field]",
+                        "+I[b, SMALLINT, true, null, null, null, b field]",
+                        "+I[c, DOUBLE, true, null, null, null, c field]",
+                        "+I[d, FLOAT, true, null, null, null, null]",
+                        "+I[e, BIGINT, true, null, null, null, null]",
+                        "+I[f, DOUBLE, true, null, null, null, null]",
+                        "+I[g, TINYINT, true, null, null, null, null]");
+
         sql(
                 "INSERT INTO T VALUES(2, cast(456 as SMALLINT), 4.56, 3.14, 
456, 4.56, cast(2 as TINYINT))");
-        result = sql("SELECT * FROM T");
-        
assertThat(result.stream().map(Objects::toString).collect(Collectors.toList()))
+        result =
+                sql("SELECT * FROM 
T").stream().map(Objects::toString).collect(Collectors.toList());
+        assertThat(result)
                 .containsExactlyInAnyOrder(
                         "+I[1, 123, 1.2300000190734863, 3.141592, 3, 3.1416, 
1]",
                         "+I[2, 456, 4.56, 3.14, 456, 4.56, 2]");

Reply via email to