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

Boaz Ben-Zvi commented on DRILL-6888:
-------------------------------------

[^janino6744306210553474372.java]  And after extracting the static class 
*HashAggSpilledPartition* into a separate file, the gen code still fails on the 
other nested non-static class - *HashAggUpdater*. 
{code:java}
0: jdbc:drill:zk=local> select sum(l_quantity),l_linenumber from 
cp.`tpch/lineitem.parquet` group by l_linenumber limit 2;
Error: SYSTEM ERROR: CompileException: File 
'/tmp/janino6744306210553474372.java', Line 33, Column 35: No applicable 
constructor/method found for actual parameters 
"org.apache.drill.exec.test.generated.HashAggregatorGen0$HashAggUpdater"; 
candidates are: "protected 
org.apache.drill.exec.physical.impl.aggregate.HashAggTemplate$BatchHolder 
org.apache.drill.exec.physical.impl.aggregate.HashAggTemplate.injectMembers(org.apache.drill.exec.physical.impl.aggregate.HashAggTemplate$BatchHolder)"

Fragment 0:0

Please, refer to logs for more information.

[Error Id: ed224aba-c4d2-4e2c-aac8-79b926688744 on 10.254.64.18:31020] 
(state=,code=0){code}

> Nested classes in HashAggTemplate break the plain Java for debugging codegen
> ----------------------------------------------------------------------------
>
>                 Key: DRILL-6888
>                 URL: https://issues.apache.org/jira/browse/DRILL-6888
>             Project: Apache Drill
>          Issue Type: Improvement
>          Components: Execution - Relational Operators
>    Affects Versions: 1.14.0
>            Reporter: Boaz Ben-Zvi
>            Assignee: Boaz Ben-Zvi
>            Priority: Minor
>         Attachments: janino5306141716524056052.java, 
> janino6744306210553474372.java
>
>
> The *prefer_plain_java* compile option is useful for debugging of generated 
> code.
>   DRILL-6719 ("separate spilling logic for Hash Agg") introduced two nested 
> classes into the HashAggTemplate class.  However those nested classes cause 
> the prefer_plain_java compile option to fail when compiling the generated 
> code, like:
> {code:java}
> Error: SYSTEM ERROR: CompileException: File 
> '/tmp/janino5709636998794673307.java', Line 36, Column 35: No applicable 
> constructor/method found for actual parameters 
> "org.apache.drill.exec.test.generated.HashAggregatorGen11$HashAggSpilledPartition";
>  candidates are: "protected 
> org.apache.drill.exec.physical.impl.aggregate.HashAggTemplate$BatchHolder 
> org.apache.drill.exec.physical.impl.aggregate.HashAggTemplate.injectMembers(org.apache.drill.exec.physical.impl.aggregate.HashAggTemplate$BatchHolder)"
> {code}
> +The proposed fix+: Move those nested classes outside HashAgTemplate.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to