[
https://issues.apache.org/jira/browse/CALCITE-3738?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17017362#comment-17017362
]
Rui Wang commented on CALCITE-3738:
-----------------------------------
Move some discussions from PR to this thread:
I understand [~pzw2018]'s idea. Basically in some engine implementations (e.g.
big data related). It could insert into message queue or log file, in such that
an order could be preserved. Later when the generated data is consumed somehow
(e.g. someone writes a script to process log files), the ordering could be a
property to be used for optimization (e.g. don't sort again).
[~hyuan] suggests the consumer should sort it rather than assuming INSERT INTO
ORDER BY will perverse order. I also think it makes sense as it is what
relational algebra says about a table.
So I don't have a strong opinion to keep the LogicalSort now. If we keep it, it
could be useful in practice. But if we don't keep it, nothing is wrong.
> Missing LogicalSort 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: 1.5h
> 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)