[
https://issues.apache.org/jira/browse/CALCITE-4522?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17298510#comment-17298510
]
hqx commented on CALCITE-4522:
------------------------------
It's hard for me to choose the constant. The previous code use field_count * 4
to estimate the row_bytes, this may be inaccurate and I have consider use
RelMetadataQuery#getAverageRowSize instead, but it may return null value. I do
not know how to handle this, so I just keep it the old way(row_bytes =
field_count * 4).
> Sort operator returns the same cpu cost no matter the RelCollation is empty
> or not
> ----------------------------------------------------------------------------------
>
> Key: CALCITE-4522
> URL: https://issues.apache.org/jira/browse/CALCITE-4522
> Project: Calcite
> Issue Type: Improvement
> Components: core
> Reporter: hqx
> Priority: Minor
> Labels: pull-request-available
> Time Spent: 40m
> Remaining Estimate: 0h
>
> The old method to compute the cost of sort has some problem.
> # When the RelCollation is empty, there is no need to sort, but it still
> compute the cpu cost of sort.
> # use n * log(n) * row_byte to estimate the cpu cost may be inaccurate,
> where n means the output row count of the sort operator, and row_byte means
> the average bytes of one row .
> Instead, I give follow suggestion.
> # the cpu cost is zero if the RelCollation is empty.
> # let heap_size be min(offset + fetch, input_count), and use input_count *
> log(heap_size + 1)* row_byte to compute the cpu cost.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)