morningman commented on PR #69867:
URL: https://github.com/apache/doris/pull/69867#issuecomment-6545368158

   Addressed review round 3 in `be929ac2e82`.
   
   - 4430799614: a prepared GetFlightInfo now drops what the previous request 
left, its deferred coordinator, the frontend-side result nobody pulled and its 
endpoints, before it checks the handle. A handle refused as missing, as 
prepared in another namespace, or because the re-analysis changed or failed no 
longer leaves them in place. Prepare and GetSchema are metadata requests and 
still leave them.
   - Found while covering every exit of those checks: a checked handle whose 
statement can no longer be described when it is re-analyzed, for example after 
a column grant was revoked so that the analyzed plan is denied, answered 
UNIMPLEMENTED and was kept, so every later execution failed the same way. It 
now expires like a handle whose schema changed (NOT_FOUND "Prepared statement 
schema changed; prepare again"), and the statement prepared again keeps the 
placeholder schema and runs.
   
   New tests, each red without its fix:
   - `DorisFlightSqlSchemaTest` adds 
`missingHandleFinishesThePreviousRequestOnExecution`, 
`namespaceChangeFinishesThePreviousRequestOnExecution`, 
`sqlModeDriftFinishesThePreviousRequestOnExecution`, 
`failedReanalysisFinishesThePreviousRequestOnExecution` and 
`checkedHandleExpiresOnceOnlyExecutionCanTellItsSchema`. Each sends GetSchema 
and GetFlightInfo after a previous request left a deferred executor, a 
frontend-side result and an endpoint, and checks the status, whether the handle 
is kept, and that only GetFlightInfo finished the previous request. Without the 
new call the five fail at GetFlightInfo, with the call moved into 
`preparedQuery()` they fail at GetSchema, and with the previous UNIMPLEMENTED 
only the revoked-grant test fails.
   
   45 related FE test classes, 555 tests, pass with Checkstyle. On a local 
cluster, all `arrow_flight_sql_p0` suites, `test_uuid_arrow_flight` and 
`test_sort_operator` over Flight SQL pass.
   


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