gianm opened a new pull request, #20466:
URL: https://github.com/apache/druid/pull/20466
The skipVectorize parameter is inherently susceptible to masking bugs,
because it skips vectorization tests completely rather than asserting some
specific problem. This patch moves most usages of skipVectorize to
cannotVectorize, where appropriate, or else deals with them some other way.
Production changes:
1) The native Scan and TopN implementations are updated to always throw
when "vectorize: force" is used. The same change is made to the MSQ
Scan implementation when it runs over an input channel. These changes
aid in writing test cases and are also arguably more correct behavior.
2) Subquery errors were lost in ClientQuerySegmentWalker when
maxSubqueryBytes was set. This is because the groupBy, topN, and
timeseries toolchests would run the subquery in resultsAsFrames, and
all exceptions were caught and suppressed. Now, the code is
restructured to avoid catching errors unnecessarily.
3) Scan subquery results were not previously closed properly, due to
a closeable iterator being passed to Sequences.simple. This is fixed
by migrating the Iterator to a Sequence itself.
4) Decoupled + preplanned Dart queries ignored query context when
building stages. In the context of this patch, this had caused
the "vectorize" context parameter to be lost.
As a result of (3), previously decoupled Dart tests were never actually
testing vectorization. Fixing the bug revealed that many of them cannot
vectorize due to adding extra stages beyond what is necessary. To avoid needing
to deal with that, the decoupled Dart tests are updated to explicitly skip
vectorization.
--
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]