This is an automated email from the ASF dual-hosted git repository.
Gabriel39 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/doris.git
The following commit(s) were added to refs/heads/master by this push:
new 1144ee01374 [fix](iceberg) Adjust TIcebergTableSink thrift ids for 4.1
compatibility (#68822)
1144ee01374 is described below
commit 1144ee01374b9a3e3aca2ae68829ba8116b3b429
Author: daidai <[email protected]>
AuthorDate: Sat Oct 10 10:06:44 2026 +0800
[fix](iceberg) Adjust TIcebergTableSink thrift ids for 4.1 compatibility
(#68822)
### What problem does this PR solve?
Issue Number: N/A
Related PR: #68532
Problem Summary:
`branch-4.1` already uses `TIcebergTableSink` field id 19 for
`static_partition_null_keys`, while master used the same id for
`nan_count_field_ids`. Keep the shared field aligned across branches:
reserve 19 for `static_partition_null_keys` (same definition as 4.1) and
move `nan_count_field_ids` to 20. Both fields are still bound by name in
the generated code, so no caller changes are needed.
### Release note
None
### Check List (For Author)
- Test
- [ ] Regression test
- [ ] Unit Test
- [x] Manual test (add detailed scripts or steps below)
- `thrift -I gensrc/thrift --gen cpp gensrc/thrift/DataSinks.thrift`
succeeds, and the generated `TIcebergTableSink` still exposes
`static_partition_null_keys` (set<string>) and `nan_count_field_ids`
(vector<int32_t>) by name.
- [ ] No need to test or manual test. Explain why:
- [ ] This is a refactor/code format and no logic has been changed.
- [ ] Previous test can cover this change.
- [ ] No code files have been changed.
- [ ] Other reason
- Behavior changed:
- [x] No.
- [ ] Yes.
- Does this need documentation?
- [x] No.
- [ ] Yes.
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
- [ ] Add branch pick label
---
gensrc/thrift/DataSinks.thrift | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/gensrc/thrift/DataSinks.thrift b/gensrc/thrift/DataSinks.thrift
index 82eadf65e46..bd44c8bad29 100644
--- a/gensrc/thrift/DataSinks.thrift
+++ b/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;
}
struct TIcebergRewritableDeleteFileSet {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]