You may modify your sql and operator Collect should not reference correlate
variables.

XING JIN <jinxing.co...@gmail.com> 于2019年11月9日周六 下午12:32写道:

> Currently RelDecorrelator doesn't support a decorrelateRel(Collect),
> that's why decorrelate failed
>
> Zoltan Farkas <zolyfar...@yahoo.com.invalid> 于2019年11月9日周六 上午5:46写道:
>
>> Done: https://issues.apache.org/jira/browse/CALCITE-3488 <
>> https://issues.apache.org/jira/browse/CALCITE-3488>
>> let me know if you need any more info.
>>
>> thank you
>>
>> —Z
>>
>> > On Nov 8, 2019, at 2:17 PM, Julian Hyde <jh...@apache.org> wrote:
>> >
>> > As I said, I think you should log a bug.
>> >
>> > On Fri, Nov 8, 2019 at 10:23 AM Haisheng Yuan <h.y...@alibaba-inc.com>
>> wrote:
>> >>
>> >> I am afraid this query can't be easily decorrelated.
>> >>
>> >> - Haisheng
>> >>
>> >> ------------------------------------------------------------------
>> >> 发件人:Zoltan Farkas<zolyfar...@yahoo.com.INVALID>
>> >> 日 期:2019年11月08日 22:46:53
>> >> 收件人:<dev@calcite.apache.org>
>> >> 主 题:Re: Question about Interpreter and Corelations
>> >>
>> >> Thanks Julian,
>> >>
>> >> Any idea how could I de-corelate the query?
>> >> RelDecorrelator.decorrelateQuery does not seem to alter the plan.
>> >>
>> >> Will log a jira for the interpreter issue.
>> >>
>> >> thank you
>> >>
>> >> —Z
>> >>
>> >>
>> >>
>> >>> On Nov 7, 2019, at 5:08 PM, Julian Hyde <jhyde.apa...@gmail.com>
>> wrote:
>> >>>
>> >>> I don’t recall what the interpreter is currently capable of, but you
>> should log a bug.
>> >>>
>> >>> I wonder whether if you could get the query to work in the
>> interpreter if you decorrelated the query first.
>> >>>
>> >>> Julian
>> >>>
>> >>>> On Nov 7, 2019, at 11:16, Zoltan Farkas <zolyfar...@yahoo.com.invalid>
>> wrote:
>> >>>>
>> >>>> for a test query with the following plan:
>> >>>>
>> >>>> LogicalProject(name=[$1], friends=[$4])
>> >>>> LogicalCorrelate(correlation=[$cor0], joinType=[inner],
>> requiredColumns=[{0}])
>> >>>>  LogicalTableScan(table=[[characters]])
>> >>>>  Collect(field=[EXPR$0])
>> >>>>    LogicalProject(name=[$2])
>> >>>>      LogicalJoin(condition=[=($0, $1)], joinType=[inner])
>> >>>>        LogicalProject(characterId2=[$1])
>> >>>>          LogicalFilter(condition=[=($0, $cor0.characterId)])
>> >>>>           LogicalTableScan(table=[[friendships]])
>> >>>>        LogicalProject(characterId=[$0], name=[$1])
>> >>>>          LogicalTableScan(table=[[characters]])
>> >>>>
>> >>>> I get :
>> >>>>
>> >>>> java.lang.nsupportedOperationException
>> >>>>  at
>> o.a.c.i.JaninoRexCompiler.lambda$compile$0(JaninoRexCompiler.java:94)[calcite-core-1.21.0.jar:1.21.0]
>> >>>>  at
>> o.a.c.a.e.RexToLixTranslator.translate0(RexToLixTranslator.java:714)[^]
>> >>>>  at ^.translate(^:199)[^]
>> >>>>  at ^.translate0(^:684)[^]
>> >>>>  at ^.translate(^:199)[^]
>> >>>>  at ^.translate(^:194)[^]
>> >>>>  ...
>> >>>>
>> >>>> when trying to use the Interpreter.
>> >>>>
>> >>>> Is this a current limitation?
>> >>>>
>> >>>> the query is :
>> >>>>
>> >>>> select name,
>> >>>>        ARRAY(select c2.name from friendships f, characters c2
>> >>>>                           where f.characterId1 = c.characterId and
>> f.characterId2 = c2.characterId) as friends
>> >>>> from characters c
>> >>>>
>> >>>> let me know
>> >>>>
>> >>>> thank you
>> >>>>
>> >>>> —Z
>>
>>

Reply via email to