This is an automated email from the ASF dual-hosted git repository.
lzljs3620320 pushed a commit to branch release-0.6
in repository https://gitbox.apache.org/repos/asf/incubator-paimon-trino.git
The following commit(s) were added to refs/heads/release-0.6 by this push:
new 944fc19 Fix bug when read empty paimon table (#46)
944fc19 is described below
commit 944fc194a463c22f1414fe0937f9c8d80d60e6ed
Author: Jingsong Lee <[email protected]>
AuthorDate: Wed Dec 13 11:24:05 2023 +0800
Fix bug when read empty paimon table (#46)
---
.../apache/paimon/trino/TrinoSplitManagerBase.java | 3 +--
.../org/apache/paimon/trino/TestTrinoITCase.java | 28 +++++++++++++++++++---
2 files changed, 26 insertions(+), 5 deletions(-)
diff --git
a/paimon-trino-common/src/main/java/org/apache/paimon/trino/TrinoSplitManagerBase.java
b/paimon-trino-common/src/main/java/org/apache/paimon/trino/TrinoSplitManagerBase.java
index 0bb5b91..61a26d2 100644
---
a/paimon-trino-common/src/main/java/org/apache/paimon/trino/TrinoSplitManagerBase.java
+++
b/paimon-trino-common/src/main/java/org/apache/paimon/trino/TrinoSplitManagerBase.java
@@ -47,8 +47,7 @@ public abstract class TrinoSplitManagerBase implements
ConnectorSplitManager {
tableHandle.getLimit().ifPresent(limit -> readBuilder.withLimit((int)
limit));
List<Split> splits = readBuilder.newScan().plan().splits();
- @SuppressWarnings("OptionalGetWithoutIsPresent")
- long maxRowCount =
splits.stream().mapToLong(Split::rowCount).max().getAsLong();
+ long maxRowCount =
splits.stream().mapToLong(Split::rowCount).max().orElse(0L);
double minimumSplitWeight =
TrinoSessionProperties.getMinimumSplitWeight(session);
return new TrinoSplitSource(
splits.stream()
diff --git
a/paimon-trino-common/src/test/java/org/apache/paimon/trino/TestTrinoITCase.java
b/paimon-trino-common/src/test/java/org/apache/paimon/trino/TestTrinoITCase.java
index 25b2d60..ee379de 100644
---
a/paimon-trino-common/src/test/java/org/apache/paimon/trino/TestTrinoITCase.java
+++
b/paimon-trino-common/src/test/java/org/apache/paimon/trino/TestTrinoITCase.java
@@ -130,6 +130,23 @@ public abstract class TestTrinoITCase extends
AbstractTestQueryFramework {
commit.commit(0, writer.prepareCommit(true, 0));
}
+ {
+ Path tablePath = new Path(warehouse, "default.db/empty_t");
+ RowType rowType =
+ new RowType(
+ Arrays.asList(
+ new DataField(1, "a", new IntType()),
+ new DataField(2, "b", new BigIntType())));
+ new SchemaManager(LocalFileIO.create(), tablePath)
+ .createTable(
+ new Schema(
+ rowType.getFields(),
+ Collections.emptyList(),
+ Collections.emptyList(),
+ new HashMap<>(),
+ ""));
+ }
+
{
Path tablePath4 = new Path(warehouse, "default.db/t4");
List<DataField> innerRowFields = new ArrayList<>();
@@ -243,6 +260,11 @@ public abstract class TestTrinoITCase extends
AbstractTestQueryFramework {
.isEqualTo("[[1, {1=2}, [2, male], [1, 2, 3]]]");
}
+ @Test
+ public void testEmptyTable() {
+ assertThat(sql("SELECT * FROM
paimon.default.empty_t")).isEqualTo("[]");
+ }
+
@Test
public void testProjection() {
assertThat(sql("SELECT * FROM paimon.default.t1"))
@@ -335,7 +357,7 @@ public abstract class TestTrinoITCase extends
AbstractTestQueryFramework {
+ "changelog_producer = 'input'"
+ ")");
assertThat(sql("SHOW TABLES FROM paimon.default"))
- .isEqualTo("[[orders], [t1], [t2], [t3], [t4], [t99]]");
+ .isEqualTo("[[empty_t], [orders], [t1], [t2], [t3], [t4],
[t99]]");
sql("DROP TABLE IF EXISTS paimon.default.orders");
}
@@ -358,7 +380,7 @@ public abstract class TestTrinoITCase extends
AbstractTestQueryFramework {
+ ")");
sql("ALTER TABLE paimon.default.t5 RENAME TO t6");
assertThat(sql("SHOW TABLES FROM paimon.default"))
- .isEqualTo("[[t1], [t2], [t3], [t4], [t6], [t99]]");
+ .isEqualTo("[[empty_t], [t1], [t2], [t3], [t4], [t6], [t99]]");
sql("DROP TABLE IF EXISTS paimon.default.t6");
}
@@ -381,7 +403,7 @@ public abstract class TestTrinoITCase extends
AbstractTestQueryFramework {
+ ")");
sql("DROP TABLE IF EXISTS paimon.default.t5");
assertThat(sql("SHOW TABLES FROM paimon.default"))
- .isEqualTo("[[t1], [t2], [t3], [t4], [t99]]");
+ .isEqualTo("[[empty_t], [t1], [t2], [t3], [t4], [t99]]");
}
@Test