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 3adeb25b8ba [chore](be) Reserve BE exec version 13 for external sink
hash routing (#66809)
3adeb25b8ba is described below
commit 3adeb25b8bacf290cbc8b28ec7a61dcc98131bdc
Author: Socrates <[email protected]>
AuthorDate: Tue Aug 18 09:03:02 2026 +0800
[chore](be) Reserve BE exec version 13 for external sink hash routing
(#66809)
### What problem does this PR solve?
Issue Number: None
Related PR: #66685
Problem Summary:
The external table sink hash-routing feature was developed on
`branch-4.1` in #66685 before it could land on master. BE execution
versions must not fork across release branches.
Master now uses version 12 for Iceberg Variant compatibility. This PR
therefore reserves version 13 for external table sink hash routing,
advances the maximum BE execution version from 12 to 13, and defines
`SUPPORT_EXTERNAL_TABLE_SINK_HASH_VERSION`. It intentionally does not
bring the routing implementation to master.
After this reservation is merged into master, `branch-4.1` will be
updated to use the same version 13 compatibility boundary.
### Release note
None
### Check List (For Author)
- Test
- [ ] Regression test
- [ ] Unit Test
- [ ] Manual test
- [x] No need to test. This PR only reserves the compatibility version;
compilation and tests were intentionally skipped.
- Behavior changed:
- [ ] No.
- [x] Yes. The maximum BE execution version advances from 12 to 13
without enabling external sink hash routing on master.
- Does this need documentation?
- [x] No.
- [ ] Yes.
Validation:
- `build-support/clang-format.sh`
- `git diff --check origin/master...HEAD`
### Check List (For Reviewer who merge this PR)
- [ ] Confirm the release note
- [ ] Confirm test cases
- [ ] Confirm document
---
be/src/agent/be_exec_version_manager.cpp | 5 ++++-
be/src/agent/be_exec_version_manager.h | 1 +
fe/fe-common/src/main/java/org/apache/doris/common/Config.java | 2 +-
3 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/be/src/agent/be_exec_version_manager.cpp
b/be/src/agent/be_exec_version_manager.cpp
index bbaa0565a9f..3dad2da010e 100644
--- a/be/src/agent/be_exec_version_manager.cpp
+++ b/be/src/agent/be_exec_version_manager.cpp
@@ -128,8 +128,11 @@ void
BeExecVersionManager::check_function_compatibility(int current_be_exec_vers
// a. enforce Iceberg SQL MERGE cardinality only when every executing BE
supports it.
// 12: start from master
// a. support Variant columns and delete-only writer omission in Iceberg SQL
MERGE.
+// 13: start from master
+// a. support strict ownership hash routing for external table sink writers.
+// b. support Paimon default fixed-bucket routing in the external sink
exchange.
-const int BeExecVersionManager::max_be_exec_version = 12;
+const int BeExecVersionManager::max_be_exec_version = 13;
const int BeExecVersionManager::min_be_exec_version = 0;
std::map<std::string, std::set<int>>
BeExecVersionManager::_function_change_map {};
std::set<std::string> BeExecVersionManager::_function_restrict_map;
diff --git a/be/src/agent/be_exec_version_manager.h
b/be/src/agent/be_exec_version_manager.h
index 4582b84c61d..a5f8ac9ced3 100644
--- a/be/src/agent/be_exec_version_manager.h
+++ b/be/src/agent/be_exec_version_manager.h
@@ -28,6 +28,7 @@ namespace doris {
constexpr inline int USE_NEW_FIXED_OBJECT_SERIALIZATION_VERSION = 10;
constexpr inline int SUPPORT_ICEBERG_MERGE_CARDINALITY_VERSION = 11;
constexpr inline int SUPPORT_ICEBERG_VARIANT_VERSION = 12;
+constexpr inline int SUPPORT_EXTERNAL_TABLE_SINK_HASH_VERSION = 13;
class BeExecVersionManager {
public:
diff --git a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
index e1d25c8d945..de7a2a2aefa 100644
--- a/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
+++ b/fe/fe-common/src/main/java/org/apache/doris/common/Config.java
@@ -1988,7 +1988,7 @@ public class Config extends ConfigBase {
* Max data version of backends serialize block.
*/
@ConfField(mutable = false)
- public static int max_be_exec_version = 12;
+ public static int max_be_exec_version = 13;
/**
* Min data version of backends serialize block.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]