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