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

Reply via email to