File tree Expand file tree Collapse file tree 3 files changed +8
-1
lines changed Expand file tree Collapse file tree 3 files changed +8
-1
lines changed Original file line number Diff line number Diff line change 1
1
devel
2
2
-----
3
3
4
+ * Issue #13141: The `move-filters-into-enumerate` optimization, when applied to
5
+ an EnumerateCollectionNode (i.e. full collection scan), did not do regular
6
+ checks for the query being killed during the filtering of documents, resulting
7
+ in the maxRuntime option and manual kill of a query not working timely.
8
+
4
9
* Simplify the DistributeExecutor and avoid implicit modification of its input
5
10
variable. Previously the DistributeExecutor could update the input variable
6
11
in-place, leading to unexpected results (see #13509).
Original file line number Diff line number Diff line change @@ -286,7 +286,8 @@ bool DocumentProducingFunctionContext::checkFilter(
286
286
}
287
287
288
288
bool DocumentProducingFunctionContext::checkFilter (ExpressionContext& ctx) {
289
- if (ADB_UNLIKELY (_numScanned % 1024 == 0 && _query.killed ())) {
289
+ _killCheckCounter = (_killCheckCounter + 1 ) % 1024 ;
290
+ if (ADB_UNLIKELY (_killCheckCounter == 0 && _query.killed ())) {
290
291
THROW_ARANGO_EXCEPTION (TRI_ERROR_QUERY_KILLED);
291
292
}
292
293
Original file line number Diff line number Diff line change @@ -126,6 +126,7 @@ struct DocumentProducingFunctionContext {
126
126
arangodb::aql::Projections const & _projections;
127
127
size_t _numScanned;
128
128
size_t _numFiltered;
129
+ uint_fast16_t _killCheckCounter = 0 ;
129
130
130
131
// / @brief Builder that is reused to generate projection results
131
132
arangodb::velocypack::Builder _objectBuilder;
You can’t perform that action at this time.
0 commit comments