correction:
When compared to the jdbc implementation, which works for me using the
EnumerableConvention.
I see the difference is that the EnumerableProject gets mapped to a
EnumerableCalc.
Mapped to LogicalProject.NONE
https://github.com/apache/calcite/blob/75511b82ab13ff95bc65f6180d40cf1e234b834e/core/src/main/java/org/apache/calcite/prepare/CalcitePrepareImpl.java#L1061
Then to EnumerableCalc
https://github.com/apache/calcite/blob/75511b82ab13ff95bc65f6180d40cf1e234b834e/core/src/main/java/org/apache/calcite/prepare/CalcitePrepareImpl.java#L1065


On Mon, Jan 29, 2024 at 10:10 AM Eric Berryman <eric.berry...@gmail.com>
wrote:

> When compared to the jdbc implementation, which works for me using the
> EnumerableConvention.
> I see the difference is that the EnumerableProject gets mapped to a
> CalcProject.
> Mapped to Project.NONE
>
> https://github.com/apache/calcite/blob/75511b82ab13ff95bc65f6180d40cf1e234b834e/core/src/main/java/org/apache/calcite/prepare/CalcitePrepareImpl.java#L1061
> Then to CalcProject
>
> https://github.com/apache/calcite/blob/75511b82ab13ff95bc65f6180d40cf1e234b834e/core/src/main/java/org/apache/calcite/prepare/CalcitePrepareImpl.java#L1065
>
> That sounds like this rule: CoreRules.PROJECT_TO_CALC
> But, I don't see this getting applied as such.
>
> Thank you again,
> Eric
>
> On Sun, Jan 28, 2024 at 12:35 PM Eric Berryman <eric.berry...@gmail.com>
> wrote:
>
>> I was trying some examples, the first being the EndToEndExampleBindable:
>>
>> https://github.com/zabetak/calcite/blob/demo-january-2021/core/src/test/java/org/apache/calcite/examples/foodmart/java/EndToEndExampleBindable.java
>>
>> This worked fine for me, but when I attempted to use the pattern in
>> EndToEndExampleEnumerable:
>>
>> https://github.com/zabetak/calcite/blob/demo-january-2021/core/src/test/java/org/apache/calcite/examples/foodmart/java/EndToEndExampleEnumerable.java
>>
>> I am getting the following error message:
>> Suppressed: java.lang.UnsupportedOperationException: null
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableProject.implement(EnumerableProject.java:91)
>> at
>> org.apache.calcite.adapter.enumerable.EnumerableRelImplementor.implementRoot(EnumerableRelImplementor.java:114)
>> ... 53 common frames omitted
>>
>> from the line:
>> Bindable<Object[]> executablePlan = EnumerableInterpretable.toBindable(
>>         new HashMap<>(),
>>         null,
>>         (EnumerableRel) phyPlan,
>>         EnumerableRel.Prefer.ARRAY);
>>
>> I'm confused how the EnumerableProject implement method has this
>> java.lang.UnsupportedOperationException, and what am I missing. I'm not
>> quite connecting the dots on this, and how it should look.
>>
>> Thank you!
>> Eric
>>
>>

Reply via email to