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]");