findepi commented on code in PR #10659:
URL: https://github.com/apache/iceberg/pull/10659#discussion_r1676177423


##########
spark/v3.5/spark/src/main/java/org/apache/iceberg/spark/source/SparkScan.java:
##########
@@ -175,7 +181,25 @@ public Statistics estimateStatistics() {
   protected Statistics estimateStatistics(Snapshot snapshot) {
     // its a fresh table, no data
     if (snapshot == null) {
-      return new Stats(0L, 0L);
+      return new Stats(0L, 0L, Maps.newHashMap());
+    }
+
+    Map<NamedReference, ColumnStatistics> map = Maps.newHashMap();
+
+    if (readConf.enableColumnStats()) {
+      List<StatisticsFile> files = table.statisticsFiles();
+      if (!files.isEmpty()) {
+        List<BlobMetadata> metadataList = (files.get(0)).blobMetadata();

Review Comment:
   > Also from 
[code](https://github.com/apache/iceberg/blob/main/core/src/main/java/org/apache/iceberg/TableMetadata.java#L886),
 `org.apache.iceberg.TableMetadata.Builder#statisticsFiles` is a map of 
snaphotId to List of statistics file.
   
   yes, we can't enforce 1-1 mapping on the JSON level and we don't want the 
builder to fail when parsing metadata json.
   
   > May be we should make the 1x1 mapping(between snapshot and stats file) 
clear in the spec
   
   indeed spec doesn't mention anything like this.
   this is "enforced" in 
`org.apache.iceberg.TableMetadata.Builder#setStatistics`
   improving the spec sounds like a good idea
   
   
   



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to