Well, I was wrong. That didn’t solve my problem with :

Missing conversion is LogicalUnion[convention: NONE -> LDAP]

Do I have to implement my own union? Is there a way I could just use the
EnumerableUnion?
ie. NONE -> Enumerable and skip implementing one for my ldap datastore?

Thank you!
Eric

On Tue, Jul 16, 2024 at 09:00 Eric Berryman <eric.berry...@gmail.com> wrote:

> When I register my tablescan object, and add my rules, I also added a
> removeRule for EnumerableRules.ENUMERABLE_MERGE_UNION_RULE, and now
> everything works with an offset also.
>
> Although, I don’t know why this is. I noticed the EnumerableMergeUnion
> object in the plan, and thought I would try to remove it, because it was
> different.
>
> Any explanation is appreciated, thank you!!!
> Eric
>
>
> On Mon, Jul 15, 2024 at 18:02 Eric Berryman <eric.berry...@gmail.com>
> wrote:
>
>> Hello!
>>
>> I seem to have an issue with my new limit rule which pushes down to the
>> datastore. It works fine, unless I add an offset to the fetch. Where I end
>> up with the following error:
>> There are not enough rules… Missing conversion is
>> LogicalUnion[convention: NONE -> LDAP]
>>
>> Why would this only come up when an offset value is added?
>>
>> Thank you!
>> Eric
>>
>>
>> On Fri, Jun 21, 2024 at 09:25 Eric Berryman <eric.berry...@gmail.com>
>> wrote:
>>
>>> That’s perfect
>>>
>>> https://github.com/apache/calcite/blob/main/cassandra/src/main/java/org/apache/calcite/adapter/cassandra/CassandraRules.java#L401
>>>
>>> Thank you for such a quick response!
>>> Eric
>>>
>>>
>>> On Fri, Jun 21, 2024 at 09:14 Michael Mior <mm...@apache.org> wrote:
>>>
>>>> Eric,
>>>>
>>>> Could you give a more specific example of the failure scenario you're
>>>> experiencing?
>>>>
>>>> For a simple example of how limits can be pushed down, this is done in
>>>> the
>>>> Cassandra adapter with CassandraLimitRule. It matches an
>>>> EnumerableLimit on
>>>> top of a CassandraToEnumerableConverter and then converts that limit to
>>>> a
>>>> CassandraLimit which passes along the limit and offset information to
>>>> CassandraToEnumerableConverter for when the query is executed. The
>>>> EnumerableLimit is then replaced with a CassandraLimit effectively as a
>>>> placeholder to signal that the limit has been handled.
>>>>
>>>> --
>>>> Michael Mior
>>>> mm...@apache.org
>>>>
>>>>
>>>> On Fri, Jun 21, 2024 at 8:44 AM Eric Berryman <eric.berry...@gmail.com>
>>>> wrote:
>>>>
>>>> > Hello!
>>>> >
>>>> > When I add limit to my relbuilder object, the planner gives up. But
>>>> works
>>>> > fine without it.
>>>> >
>>>> > I wasn’t able to find any examples of using limit and pushing the
>>>> limit
>>>> > values down to a data source.
>>>> >
>>>> > Could someone help with some links on this subject?
>>>> >
>>>> > Thank you!
>>>> > Eric
>>>> >
>>>>
>>>

Reply via email to