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

Vladimir Sitnikov edited comment on CALCITE-4264 at 12/16/20, 1:51 PM:
-----------------------------------------------------------------------

They should return the same results, shouldn't they?
Why use "rows" as the primary comparison tool then? The rows must always be 
equal, and any inequality of the cardinality estimation means there's a bug.

In other words, if "plan a" produces the same data as "plan b", then the 
estimation of the resulting rows must be the same.

That makes it weird to use "rows" as the primary comparison value


was (Author: vladimirsitnikov):
They should return the same results, shouldn't they?
Why use "rows" as the primary comparison tool then? The rows must always be 
equal, and any inequality of the cardinality estimation means there's a bug.

In other words, if "plan a" produces the same data as "plan b", then the 
estimation of the resulting rows must be the same.

That makes it weird to use "rows" as the primary comparison value.omparison 
value.

> The query planner should take CPU cost into account
> ---------------------------------------------------
>
>                 Key: CALCITE-4264
>                 URL: https://issues.apache.org/jira/browse/CALCITE-4264
>             Project: Calcite
>          Issue Type: Improvement
>            Reporter: Thomas Rebele
>            Priority: Major
>              Labels: pull-request-available
>          Time Spent: 20m
>  Remaining Estimate: 0h
>
> Calcite only takes the row count into account when optimizing the queries. 
> See [the relevant lines in 
> VolcanoCost|https://github.com/apache/calcite/blob/52a57078ba081b24b9d086ed363c715485d1a519/core/src/main/java/org/apache/calcite/plan/volcano/VolcanoCost.java#L98-L116].
>  However, two plans might have the same row count, but differ greatly in CPU 
> cost. This happens for example when the limit sort rule 
> ([CALCITE-3920|https://issues.apache.org/jira/browse/CALCITE-3920]) is 
> activated. The row cost is the same, the EnumerableLimitSort only sorts the 
> input partially, so has a lower CPU cost.
> Low impact proposal: Compare first the row cost, and only if the row cost is 
> equal, compare by CPU cost.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to