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


##########
be/src/exec/pipeline/dependency.h:
##########
@@ -832,50 +832,44 @@ struct SetSharedState : public BasicSharedState {
     Status hash_table_init();
 };
 
-enum class ExchangeType : uint8_t {
-    NOOP = 0,
-    // Shuffle data by Crc32CHashPartitioner
-    HASH_SHUFFLE = 1,
-    // Round-robin passthrough data blocks.
-    PASSTHROUGH = 2,
-    // Shuffle data by Crc32HashPartitioner<ShuffleChannelIds> (e.g. same as 
storage engine).
-    BUCKET_HASH_SHUFFLE = 3,
-    // Passthrough data blocks to all channels.
-    BROADCAST = 4,
-    // Passthrough data to channels evenly in an adaptive way.
-    ADAPTIVE_PASSTHROUGH = 5,
-    // Send all data to the first channel.
-    PASS_TO_ONE = 6,
-};
+inline bool is_shuffled_exchange(TLocalPartitionType::type idx) {

Review Comment:
   dependency.h now directly exposes inline helpers and DataDistribution 
members that use TLocalPartitionType, but this header never includes the thrift 
header that defines that enum. This header is included directly from several 
translation units that only include Types_types.h or protobuf headers first, 
for example runtime/record_batch_queue.cpp and 
load/group_commit/group_commit_mgr.cpp, so the build depends on unrelated 
include order and can fail with TLocalPartitionType undeclared. Please include 
<gen_cpp/Partitions_types.h> from dependency.h itself before using the enum.



##########
fe/fe-core/src/main/java/org/apache/doris/common/profile/SummaryProfile.java:
##########
@@ -563,6 +567,10 @@ public void update(Map<String, String> summaryInfo) {
     // This method is used to display the final data status when the overall 
query ends.
     // This can avoid recalculating some strings and so on every time during 
the update process.
     public void queryFinished() {
+        // Mark profile collection as complete. This is written last, after 
all BE fragment
+        // profiles have been merged (called post-waitForFragmentsDone). 
Pollers can wait for
+        // this field to avoid reading a partial profile.

Review Comment:
   The completion marker is written before the optional 
SPLITS_ASSIGNMENT_WEIGHT field, but the new contract says readers can poll this 
marker to know the profile is fully collected. A polling reader can observe Is 
Profile Collection Completed=true while queryFinished() has not yet added the 
assignment-weight info string, and then read a partial profile. Move this 
marker write to the end of queryFinished() after the optional fields are added.



-- 
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