Thanks
I didn't add any new rule, just these:

CONSTANT_REDUCTION_RULES
ABSTRACT_RELATIONAL_RULES
BASE_RULES
ABSTRACT_RULES
ENUMERABLE_RULES

So this is a bug, or it just because of the call stack is too deep(if this,
I can adjust JVM parameter).

Regards!

Aron Tao


Scott Reynolds <[email protected]> 于2020年4月21日周二 上午1:10写道:

> I have had this happen numerous times when writing new planner rules. Most
> of the time my rule is missing some boolean logic to prevent itself from
> transforming the call. This results in the rule continuously transforming
> it's previous transformations.
>
> I can usually see this happening when I add a
> System.out.println(RelOptUtil.dumpPlan()) to the line before the
> call.transformTo(newRelationNode)
>
> On Mon, Apr 20, 2020 at 3:13 AM JiaTao Tao <[email protected]> wrote:
>
> > Hi
> > Has anyone encountered this problem before? Just a simple query(no more
> > than 20 lines, two joins, no union).
> >
> > And I see this ticket:
> https://issues.apache.org/jira/browse/CALCITE-2057,
> > but there's no follow up, also I see flink may occur this problem(
> > https://developer.aliyun.com/ask/129548)
> >
> > java.lang.StackOverflowError
> >     at java.util.HashMap.hash(HashMap.java:339)
> >     at java.util.HashMap.put(HashMap.java:612)
> >     at
> >
> com.google.common.collect.StandardTable.getOrCreate(StandardTable.java:165)
> >     at
> com.google.common.collect.StandardTable.put(StandardTable.java:174)
> >     at
> com.google.common.collect.HashBasedTable.put(HashBasedTable.java:55)
> >     at GeneratedMetadataHandler_RowCount.getRowCount(Unknown Source)
> >     at
> >
> org.apache.calcite.rel.metadata.RelMetadataQuery.getRowCount(RelMetadataQuery.java:208)
> >     at
> >
> org.apache.calcite.rel.metadata.RelMdRowCount.getRowCount(RelMdRowCount.java:72)
> >     at GeneratedMetadataHandler_RowCount.getRowCount_$(Unknown Source)
> >     at GeneratedMetadataHandler_RowCount.getRowCount(Unknown Source)
> >     at ...
> >
> > Regards!
> >
> > Aron Tao
> >
>

Reply via email to