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


##########
be/src/exec/operator/result_sink_operator.cpp:
##########
@@ -122,7 +123,8 @@ Status ResultSinkOperatorX::prepare(RuntimeState* state) {
         std::shared_ptr<arrow::Schema> arrow_schema;
         if (_sink_type == TResultSinkType::ARROW_FLIGHT_PROTOCOL) {
             
RETURN_IF_ERROR(get_arrow_schema_from_expr_ctxs(_output_vexpr_ctxs, 
&arrow_schema,
-                                                            
state->timezone()));
+                                                            state->timezone(),
+                                                            
/*datetime_naive=*/true));

Review Comment:
   [P1] Gate the naive schema across mixed-version result BEs
   
   During a rolling BE upgrade, a parallel Arrow Flight query can expose result 
endpoints on both old and new BEs. 
`FlightSqlConnectProcessor.fetchArrowFlightSchema()` fetches every endpoint 
schema and aborts when `Schema.equals()` differs; old BEs emit `timestamp(unit, 
session_timezone)`, while this unconditional flag makes new BEs emit 
`timestamp(unit)`. Because `enable_parallel_result_sink` defaults to true, a 
DATETIMEV2 query spanning versions can therefore fail before `FlightInfo` is 
returned. Please negotiate one schema mode for the whole query (with an absent 
capability preserving the old mode) or otherwise gate this change until all 
scheduled BEs support it. The schema mismatch occurs even in UTC; for non-UTC 
sessions the schema choice also changes physical epoch values, so simply 
ignoring the inequality would not be safe.



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