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 2020/01/15 19:24:00 UTC
[jira] [Comment Edited] (CALCITE-3738) Missing order by logical
plan for insert statement
[ https://issues.apache.org/jira/browse/CALCITE-3738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17016246#comment-17016246 ]
Julian Hyde edited comment on CALCITE-3738 at 1/15/20 7:23 PM:
---------------------------------------------------------------
I think Calcite should allow ORDER BY in DML statements, but ignore it unless LIMIT or OFFSET are present. If LIMIT or OFFSET are present, Calcite should apply the limit/offset, but don't guarantee the order of rows.
Which, I believe, is exactly the same as we do for sub-queries.
was (Author: julianhyde):
However, if there is LIMIT or OFFSET, we should allow ORDER BY. We just don't guarantee the order that rows are inserted.
> Missing order by logical plan for insert statement
> --------------------------------------------------
>
> Key: CALCITE-3738
> URL: https://issues.apache.org/jira/browse/CALCITE-3738
> Project: Calcite
> Issue Type: Bug
> Components: core
> Affects Versions: 1.19.0
> Reporter: pengzhiwei
> Assignee: pengzhiwei
> Priority: Major
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> The following sql statement generates a wrong logical plan which missing the LogicalSort :
> {code:java}
> insert into t select id*10,name from users order by name;{code}
> the plan is :
> {code:java}
> LogicalTableModify(table=[[t]], operation=[INSERT], flattened=[false])
> LogicalProject(id=[*($0, 10)], name=[$1])
> LogicalTableScan(table=[[users]])
> {code}
> This issue is introduced by the issue https://issues.apache.org/jira/browse/CALCITE-2978
> which removes the sort by in sub-query.However the query in insert statement is not a sub-query.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)