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

Aviem Zur edited comment on BEAM-2954 at 9/13/17 8:25 PM:
----------------------------------------------------------

We cannot opt-out of the shading rules in the SQL module as we cannot leak 
{{Guava}} to our users.

If a shaded version of {{Calcite}} which relocates {{Guava}} exists we should 
use that (such a version does not seem to exist). Otherwise, since {{Calcite}} 
is under {{Apache License 2.0}} we can shade it into our SQL module, using the 
same relocation rules applied in {{beam-parent}}.


was (Author: aviemzur):
We cannot opt-out of the shading rules in the SQL module as we cannot leak 
{{Guava}} to our users.

If a shaded version of {{Calcite}} exists which relocates {{Guava}} we should 
use that (such a version does not seem to exist). Otherwise, since {{Calcite}} 
is under {{Apache License 2.0}} we can shade it into our SQL module, using the 
same relocation rules applied in {{beam-parent}}.

> opt-out shade in extension/sql
> ------------------------------
>
>                 Key: BEAM-2954
>                 URL: https://issues.apache.org/jira/browse/BEAM-2954
>             Project: Beam
>          Issue Type: Bug
>          Components: dsl-sql
>            Reporter: Xu Mingmin
>            Assignee: Xu Mingmin
>              Labels: 2.2.0, shade, sql
>             Fix For: 2.2.0
>
>
> {{guava}} is shaded by default in beam modules, while {{calcite}}(a 
> dependency of SQL) includes {{guava}} which is not shaded. Below error is 
> thrown when calling {{calcite}} methods with guava classed.
> {code}
> Exception in thread "main" java.lang.NoSuchMethodError: 
> org.apache.calcite.rel.core.Aggregate.getGroupSets()Lorg/apache/beam/sdks/java/extensions/sql/repackaged/com/google/common/collect/ImmutableList;
>       at 
> org.apache.beam.sdk.extensions.sql.impl.rule.BeamAggregationRule.updateWindowTrigger(BeamAggregationRule.java:139)
>       at 
> org.apache.beam.sdk.extensions.sql.impl.rule.BeamAggregationRule.onMatch(BeamAggregationRule.java:73)
>       at 
> org.apache.calcite.plan.volcano.VolcanoRuleCall.onMatch(VolcanoRuleCall.java:212)
>       at 
> org.apache.calcite.plan.volcano.VolcanoPlanner.findBestExp(VolcanoPlanner.java:650)
>       at 
> org.apache.calcite.tools.Programs$RuleSetProgram.run(Programs.java:368)
>       at 
> org.apache.calcite.prepare.PlannerImpl.transform(PlannerImpl.java:313)
>       at 
> org.apache.beam.sdk.extensions.sql.impl.planner.BeamQueryPlanner.convertToBeamRel(BeamQueryPlanner.java:149)
>       at 
> org.apache.beam.sdk.extensions.sql.impl.planner.BeamQueryPlanner.validateAndConvert(BeamQueryPlanner.java:140)
>       at 
> org.apache.beam.sdk.extensions.sql.impl.planner.BeamQueryPlanner.convertToBeamRel(BeamQueryPlanner.java:128)
>       at 
> org.apache.beam.sdk.extensions.sql.impl.planner.BeamQueryPlanner.compileBeamPipeline(BeamQueryPlanner.java:113)
>       at 
> org.apache.beam.sdk.extensions.sql.impl.BeamSqlCli.compilePipeline(BeamSqlCli.java:62)
> {code}



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to