[ https://issues.apache.org/jira/browse/HIVE-6348?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16041275#comment-16041275 ]
Ashutosh Chauhan commented on HIVE-6348: ---------------------------------------- I am not sure doing it on AST is better (or easier). AST is not amenable to traverse nor does it contain semantic info. Easier (and correct) way IMO would be to write a rule on calcite operator tree which matches on HiveSort followed by HiveSort check there is no limit in that sort and than removes that HiveSort from tree. SubQueryRemove rule will remove subqueries from tree by than, but I dont think that will matter. Essentially, on an operator tree you are looking for redundant Sort operators. > Order by/Sort by in subquery > ---------------------------- > > Key: HIVE-6348 > URL: https://issues.apache.org/jira/browse/HIVE-6348 > Project: Hive > Issue Type: Bug > Reporter: Gunther Hagleitner > Assignee: Rui Li > Priority: Minor > Labels: sub-query > Attachments: HIVE-6348.1.patch, HIVE-6348.2.patch > > > select * from (select * from foo order by c asc) bar order by c desc; > in hive sorts the data set twice. The optimizer should probably remove any > order by/sort by in the sub query unless you use 'limit '. Could even go so > far as barring it at the semantic level. -- This message was sent by Atlassian JIRA (v6.3.15#6346)