[
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)