GitHub user paul-rogers opened a pull request: https://github.com/apache/drill/pull/704
DRILL-5125: Provide option to use generic code for sv remover Performance tests showed that, for queries with a large number of columns, it is faster to use a âgenericâ implementation of the selection vector remover âcopierâ than to use a generated version. This PR provides "generic" versions of the SV2 and SV4 copiers used by the selection vector remover. The generic forms are enabled using a new boot-time config parameter that is disabled by default (preserving the traditional generated code.) The generic form relies on a "virtual function" (really, just a plain Java function) defined in the base ValueVector class and implemented by each concrete vector: both the pre-defined and generated forms. This form "does the right thing" for the copy operation so that we don't need to generate code just to handle the method dispatch operation (which Java does quite well on its own.) A unit tests validates that the generic form works by runing the existing SV remover tests with the generic option turned on. See the DRILL-5125 for details. Add test You can merge this pull request into a Git repository by running: $ git pull https://github.com/paul-rogers/drill DRILL-5125 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/drill/pull/704.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #704 ---- commit ba3a38a403b140149d1605decefae088765ead56 Author: Paul Rogers <prog...@maprtech.com> Date: 2016-12-12T18:06:43Z DRILL-5125: Provide option to use generic code for sv remover Performance tests showed that, for queries with a large number of columns, it is faster to use a âgenericâ implementation of the selection vector remover âcopierâ than to use a generated version. This PR provides "generic" versions of the SV2 and SV4 copiers used by the selection vector remover. The generic forms are enabled using a new boot-time config parameter that is disabled by default (preserving the traditional generated code.) The generic form relies on a "virtual function" (really, just a plain Java function) defined in the base ValueVector class and implemented by each concrete vector: both the pre-defined and generated forms. This form "does the right thing" for the copy operation so that we don't need to generate code just to handle the method dispatch operation (which Java does quite well on its own.) A unit tests validates that the generic form works by runing the existing SV remover tests with the generic option turned on. See the DRILL-5125 for details. Add test ---- --- If your project is set up for it, you can reply to this email and have your reply appear on GitHub as well. If your project does not have this feature enabled and wishes so, or if the feature is enabled but not working, please contact infrastructure at infrastruct...@apache.org or file a JIRA ticket with INFRA. ---