Eric, if you want to use EnumerableUnion instead of implementing your own Union, then I think you'll need to implement the appropriate Converter [1] to transform between conventions LDAP <=> ENUMERABLE
Best, Ruben [1] https://github.com/apache/calcite/blob/main/core/src/main/java/org/apache/calcite/rel/convert/Converter.java On Fri, Jul 19, 2024 at 3:56 PM Eric Berryman <eric.berry...@gmail.com> wrote: > I implement an LDAPUnion and rule to convert from logicalunion, and of > course, the error goes away. But I didn’t implement the union correctly, so > nothing is returned in my query. Is there a way to have my LDAPUnion > use EnumerableUnion, > or a way to not have LDAPUnion and take care of this with a rule? > > Thank you again! > Eric > > On Tue, Jul 16, 2024 at 14:24 Eric Berryman <eric.berry...@gmail.com> > wrote: > > > 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 > >>>>> > > >>>>> > >>>> >