Re: Sortlimit and limit examples

2024-07-29 Thread Eric Berryman
That didn't paste well. Here is a gist: https://gist.github.com/berryma4/c6c09da050f273295edd23c045c63403 On Mon, Jul 29, 2024 at 4:58 PM Eric Berryman wrote: > I’m back from a long holiday, and seem stuck still on this scenario. The > plan gets created without any issues, but I get this

Re: Sortlimit and limit examples

2024-07-29 Thread Eric Berryman
I’m back from a long holiday, and seem stuck still on this scenario. The plan gets created without any issues, but I get this error while executing queries with unions. Thank you again! Eric Here is the plan dump and error after running relRunner.prepareStatement.

Re: Sortlimit and limit examples

2024-07-19 Thread Julian Hyde
Is there a rule that can push a limit (Sort with 0 sort keys) through Union? Hopefully there is, and it can be adapted for any subclass of Sort and Union. That rule should create the right plan. Then we can debate whether OP needs to implement a new union operator or reuse EnumerableUnion.

Re: Sortlimit and limit examples

2024-07-19 Thread Ruben Q L
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]

Re: Sortlimit and limit examples

2024-07-19 Thread Eric Berryman
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

Re: Sortlimit and limit examples

2024-07-16 Thread Eric Berryman
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

Re: Sortlimit and limit examples

2024-07-16 Thread Eric Berryman
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

Re: Sortlimit and limit examples

2024-07-15 Thread Eric Berryman
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

Re: Sortlimit and limit examples

2024-06-21 Thread Eric Berryman
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 wrote: > Eric, > > Could you give a more specific example of

Re: Sortlimit and limit examples

2024-06-21 Thread Michael Mior
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

Sortlimit and limit examples

2024-06-21 Thread Eric Berryman
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