github-actions[bot] commented on code in PR #68426: URL: https://github.com/apache/doris/pull/68426#discussion_r4208316961
########## be/src/agent/be_exec_version_manager.cpp: ########## @@ -135,9 +152,12 @@ void BeExecVersionManager::check_function_compatibility(int current_be_exec_vers // a. support TIMESTAMP_NS in Thrift descriptors and PBlock exchange. // 15: start from master // a. distinguish Hive OpenCSVSerde row semantics from generic CSV decoding during upgrades. +// 16: start from master +// a. use exact logical frames for map_agg_v2 aggregate state serialization. -const int BeExecVersionManager::max_be_exec_version = SUPPORT_HIVE_OPEN_CSV_VERSION; +const int BeExecVersionManager::max_be_exec_version = SUPPORT_MAP_AGG_V2_EXACT_FRAME_VERSION; const int BeExecVersionManager::min_be_exec_version = 0; Review Comment: [P1] Keep version-15 restricted aggregates usable on version-16 BEs. Raising `max_be_exec_version` to 16 makes `check_function_restriction` reject every `stddev_samp` (and other restricted aggregate) lookup with the version 15 that FE must use while version-15 BEs remain. Thus a rolling-upgrade query such as `SELECT stddev_samp(x) FROM t` fails when placed on an upgraded BE, even though this PR does not change that aggregate. The same check runs while reconstructing a stored version-15 `AGG_STATE<stddev_samp>` column, so old data becomes unreadable after the upgrade. Please make each restriction depend on its actual incompatible version and preserve version-15 lookup; cover direct and stored-state paths. -- 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]
