You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@calcite.apache.org by "Julian Hyde (JIRA)" <ji...@apache.org> on 2019/03/21 18:31:00 UTC

[jira] [Commented] (CALCITE-2941) EnumerableLimitRule on Sort with no collation creates EnumerableLimit with wrong traitSet and cluster

    [ https://issues.apache.org/jira/browse/CALCITE-2941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16798320#comment-16798320 ] 

Julian Hyde commented on CALCITE-2941:
--------------------------------------

Looks good (I'm glad that you switched to using the {{create}} method - using constructors for RelNodes is an anti-pattern), but can you include a test case?

> EnumerableLimitRule on Sort with no collation creates EnumerableLimit with wrong traitSet and cluster
> -----------------------------------------------------------------------------------------------------
>
>                 Key: CALCITE-2941
>                 URL: https://issues.apache.org/jira/browse/CALCITE-2941
>             Project: Calcite
>          Issue Type: Bug
>    Affects Versions: 1.18.0
>            Reporter: Ruben Quesada Lopez
>            Assignee: Ruben Quesada Lopez
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> EnumerableLimitRule _"converst a Sort that has offset or fetch set to an EnumerableLimit on top of a 'pure' Sort that has no offset or fetch"_. This is the "normal" scenario, and there is no issue with that.
> However, there is another scenario, where the EnumerableLimitRule is applied on an "empty" Sort (with no field collations) with offset / fetch. In that case, the EnumerableLimit's input will not be the Sort (because it will disappear, since it was empty), but the Sort's input. The problem comes in this case, because the EnumerableLimit will be created with the Sort's traitSet and cluster; instead of the Sort's input (which is the actual EnumerableLimit input) traitSet and cluster.
> Probably the bug can be easily fixed by using EnumerableLimit#create method, instead of EnumerableLimit's constructor.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)