This is an automated email from the ASF dual-hosted git repository.
diqiu50 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 bec415fb99 [#9100] improvement(trino-connector): Use
GravitinoColumnHandle for getTableStatistics in GravitinoMetadata (#9101)
bec415fb99 is described below
commit bec415fb99d32e6009c714331c756bf68d8759eb
Author: qbhan <[email protected]>
AuthorDate: Fri Nov 21 10:10:30 2025 +0800
[#9100] improvement(trino-connector): Use GravitinoColumnHandle for
getTableStatistics in GravitinoMetadata (#9101)
### What changes were proposed in this pull request?
Use GravitinoColumnHandle for getTableStatistics in GravitinoMetadata
### Why are the changes needed?
Fix: #9100
### Does this PR introduce _any_ user-facing change?
No
### How was this patch tested?
local test
Co-authored-by: Yuhui <[email protected]>
---
.../lakehouse-iceberg/00011_table_statistics.sql | 14 ++++++++++++++
.../lakehouse-iceberg/00011_table_statistics.txt | 13 +++++++++++++
.../gravitino/trino/connector/GravitinoMetadata.java | 16 +++++++++++++++-
3 files changed, 42 insertions(+), 1 deletion(-)
diff --git
a/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/00011_table_statistics.sql
b/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/00011_table_statistics.sql
new file mode 100644
index 0000000000..a3154a68e8
--- /dev/null
+++
b/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/00011_table_statistics.sql
@@ -0,0 +1,14 @@
+CREATE SCHEMA gt_iceberg_test_table_statistics;
+
+CREATE TABLE gt_iceberg_test_table_statistics.tb01 (
+ key1 int,
+ value1 int
+);
+
+INSERT INTO gt_iceberg_test_table_statistics.tb01(key1, value1) VALUES (1, 1),
(2, 2);
+
+SHOW STATS FOR gt_iceberg_test_table_statistics.tb01;
+
+DROP TABLE gt_iceberg_test_table_statistics.tb01;
+
+DROP SCHEMA gt_iceberg_test_table_statistics;
diff --git
a/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/00011_table_statistics.txt
b/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/00011_table_statistics.txt
new file mode 100644
index 0000000000..ce9f3101b6
--- /dev/null
+++
b/trino-connector/integration-test/src/test/resources/trino-ci-testset/testsets/lakehouse-iceberg/00011_table_statistics.txt
@@ -0,0 +1,13 @@
+CREATE SCHEMA
+
+CREATE TABLE
+
+INSERT: 2 rows
+
+"key1","","","0.0","","1","2"
+"value1","","","0.0","","1","2"
+"","","","","2.0","",""
+
+DROP TABLE
+
+DROP SCHEMA
diff --git
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoMetadata.java
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoMetadata.java
index b1f42f5542..36ad9bcdf4 100644
---
a/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoMetadata.java
+++
b/trino-connector/trino-connector/src/main/java/org/apache/gravitino/trino/connector/GravitinoMetadata.java
@@ -56,6 +56,7 @@ import io.trino.spi.connector.TopNApplicationResult;
import io.trino.spi.expression.ConnectorExpression;
import io.trino.spi.expression.Constant;
import io.trino.spi.security.TrinoPrincipal;
+import io.trino.spi.statistics.ColumnStatistics;
import io.trino.spi.statistics.ComputedStatistics;
import io.trino.spi.statistics.TableStatistics;
import io.trino.spi.type.Type;
@@ -585,7 +586,20 @@ public class GravitinoMetadata implements
ConnectorMetadata {
@Override
public TableStatistics getTableStatistics(
ConnectorSession session, ConnectorTableHandle tableHandle) {
- return internalMetadata.getTableStatistics(session,
GravitinoHandle.unWrap(tableHandle));
+ TableStatistics originTableStatistics =
+ internalMetadata.getTableStatistics(session,
GravitinoHandle.unWrap(tableHandle));
+ Map<ColumnHandle, ColumnStatistics> columnStatistics =
+ originTableStatistics.getColumnStatistics().entrySet().stream()
+ .collect(
+ Collectors.toMap(
+ entry ->
+ new GravitinoColumnHandle(
+ getColumnName(
+ session, GravitinoHandle.unWrap(tableHandle),
entry.getKey()),
+ entry.getKey()),
+ entry -> entry.getValue()));
+
+ return new TableStatistics(originTableStatistics.getRowCount(),
columnStatistics);
}
@Override