github-actions[bot] commented on code in PR #69998:
URL: https://github.com/apache/doris/pull/69998#discussion_r4446841050
##########
fe/fe-core/src/main/java/org/apache/doris/qe/ShortCircuitQueryContext.java:
##########
@@ -82,14 +92,16 @@ List<Type> getReturnTypes() {
return returnTypes;
}
- public ShortCircuitQueryContext(Planner planner, Queriable analzyedQuery)
throws TException {
+ public ShortCircuitQueryContext(Planner planner, Queriable analzyedQuery,
+ SessionVariable sessionVariable) throws TException {
this.planner = planner;
this.serializedDescTable = ByteString.copyFrom(
new
TSerializer().serialize(planner.getDescTable().toThrift()));
TQueryOptions options = planner.getQueryOptions() != null ?
planner.getQueryOptions() : new TQueryOptions();
Review Comment:
[P1] Invalidate cached point queries when sql_select_limit changes
`sql_select_limit` is an FE-only result-affecting variable
(`affectQueryResultInExecution=true`) and is absent from both
`SessionVariable.toThrift()` and `getAffectQueryResultInPlanVariables()`. With
`enable_condition_cache=false`, changing it still passes `isReusable()`.
`AddDefaultLimit` would add `LIMIT 0` (or another finite limit) during a normal
replan, but the direct cached point-query branch returns the row. Include this
variable in the reuse fingerprint (and audit the other FE execution-only limit
controls), or force a replan when it changes.
##########
be/src/service/point_query_executor.cpp:
##########
@@ -26,6 +26,7 @@
#include <google/protobuf/extension_set.h>
#include <stdlib.h>
+#include <algorithm>
#include <climits>
Review Comment:
[P1] Do not index the descriptor map for the hidden delete-sign UID
`get_missing_and_include_cids()` always adds the tablet's delete-sign UID,
but `skip_delete_sign` leaves that hidden column out of the point-query
descriptor. On a table with a partial row store, `missing_col_uids()` therefore
contains a UID absent from `get_col_uid_to_idx()`. The new `.at(cid)` here
throws `std::out_of_range` while constructing the column-store-disabled error,
escaping `_tablet_fetch_data()`'s Status-only boundary and potentially
terminating the BE worker instead of returning the intended error. Resolve the
name from the tablet schema as before, or skip/handle UIDs without descriptor
slots; the fallback must also avoid reading a column that is not represented in
the result block.
--
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]