[ 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)