[ 
https://issues.apache.org/jira/browse/DRILL-4715?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15329984#comment-15329984
 ] 

ASF GitHub Bot commented on DRILL-4715:
---------------------------------------

Github user sudheeshkatkam commented on a diff in the pull request:

    https://github.com/apache/drill/pull/521#discussion_r67018273
  
    --- Diff: 
exec/java-exec/src/main/java/org/apache/drill/exec/expr/ClassGenerator.java ---
    @@ -86,14 +88,16 @@ public static MappingSet getDefaultMapping() {
       }
     
       @SuppressWarnings("unchecked")
    -  ClassGenerator(CodeGenerator<T> codeGenerator, MappingSet mappingSet, 
SignatureHolder signature, EvaluationVisitor eval, JDefinedClass clazz, 
JCodeModel model) throws JClassAlreadyExistsException {
    +  ClassGenerator(CodeGenerator<T> codeGenerator, MappingSet mappingSet, 
SignatureHolder signature, EvaluationVisitor eval, JDefinedClass clazz, 
JCodeModel model, OptionManager optionManager) throws 
JClassAlreadyExistsException {
         this.codeGenerator = codeGenerator;
         this.clazz = clazz;
         this.mappings = mappingSet;
         this.sig = signature;
         this.evaluationVisitor = eval;
         this.model = model;
    -    blocks = (LinkedList<JBlock>[]) new LinkedList[sig.size()];
    +    this.optionManager = optionManager;
    --- End diff --
    
    Looks like the `optionManager` being passed down is system level. Make this 
explicit by renaming `optionManager` to `systemOptions`.
    
    Users also need to be aware.


> Java compilation error for a query with large number of expressions
> -------------------------------------------------------------------
>
>                 Key: DRILL-4715
>                 URL: https://issues.apache.org/jira/browse/DRILL-4715
>             Project: Apache Drill
>          Issue Type: Bug
>          Components: Execution - Codegen
>            Reporter: Jinfeng Ni
>
> The following query would hit compilation error, when Drill generates and 
> compiles the run-time code. 
> Q1 :
> {code}
> select  expr1, expr2, expr3, ...., exprN
> from table
> {code} 
> In Q1, expr1, expr2, ..., exprN are non-trivial expression (in stead of 
> simply column reference), and N is big enough, then the run-time generated 
> code may have a method which goes beyond the 64k limit imposed by JVM. 
> This seems to be a regression from DRILL-3912 (Common subexpression 
> elimination). CSE tries to put as many expressions in one block as possible, 
> to detect and eliminate as many CSE as possible. However, this implies we may 
> end up with big method with compilation error.
>     



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to