github-actions[bot] commented on code in PR #68822:
URL: https://github.com/apache/doris/pull/68822#discussion_r4230622858


##########
gensrc/thrift/DataSinks.thrift:
##########
@@ -494,12 +494,14 @@ struct TIcebergTableSink {
     17: optional TIcebergWriteType write_type = TIcebergWriteType.INSERT;
     // Unset keeps collection enabled for rolling upgrades with older FEs.
     18: optional bool collect_column_stats;
+    // Thrift map values cannot be null. These keys distinguish SQL NULL from 
text and empty bytes.
+    19: optional set<string> static_partition_null_keys;
     // Iceberg field ids of the FLOAT/DOUBLE fields whose NaN count would 
survive the table's metrics policy
     // (effective mode != none). Counting a NaN is an extra pass over the data 
-- unlike the other statistics,
     // which the parquet footer already carries -- so BE must not pay it for a 
field FE would then drop.
     // Unset or empty means count nothing: an older FE does not read 
nan_value_counts back, so counting for it
     // would be pure waste, and a table whose float fields are all 
metrics-disabled has nothing to report.
-    19: optional list<i32> nan_count_field_ids;
+    20: optional list<i32> nan_count_field_ids;

Review Comment:
   [P2] Keep NaN counts when an older FE writes through a new BE. During a 
BE-first rolling upgrade, the older FE sends `nan_count_field_ids` as LIST/19; 
this schema makes field 19 a SET, so Thrift skips that request. 
`VIcebergPartitionWriter` then writes no `nan_value_counts` for NaN-free 
Parquet/ORC files. FE records unknown counts, so float range queries must keep 
scanning those files after the upgrade until they are rewritten. Please provide 
a fallback when field 20 is absent, or explicitly document and test this 
persistent compatibility cost.



-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to