[
https://issues.apache.org/jira/browse/CALCITE-5724?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17728442#comment-17728442
]
Joey Moore commented on CALCITE-5724:
-------------------------------------
Looking into removing ORDER BY nodes when created on literal values. One
question though, if an ORDER BY clause has a literal value with postfix
operators associated with it eg. ORDER BY '3.14159' DESC NULLS FIRST. Is there
a reasonable way to keep the effect of those operators around while still
filtering out the ORDER BY a literal?
> Generated SQL uses literal values in ORDER BY clauses
> -----------------------------------------------------
>
> Key: CALCITE-5724
> URL: https://issues.apache.org/jira/browse/CALCITE-5724
> Project: Calcite
> Issue Type: Bug
> Reporter: Joey Moore
> Assignee: Joey Moore
> Priority: Major
>
> Current behavior in the SqlImplementor will generate SqlCharStringLiterals in
> ORDER BY fields when there is a Literal value in the SELECT clause. This
> happens in languages with isSortByOrdinal(). This leads to errors in dialects
> in which cannot have literal values in ORDER BY clauses such as BigQuery.
> Proposed fix is to use ordinals in all cases where a literal value is present
> in the SELECT clause.
> Example of current implementation:
> {code:java}
> select 3.14159265 as pi
> from \"product\"
> order by 1;
> {code}
> Will returnĀ
> {code:java}
> SELECT 3.14159265 AS \"PI\"
> FROM \"foodmart\".\"product\"
> ORDER BY '3.14159265'{code}
> Proposed implementation will return :
> {code:java}
> SELECT 3.14159265 AS \"PI\"
> FROM \"foodmart\".\"product\"
> ORDER BY 1{code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)