[
https://issues.apache.org/jira/browse/HIVE-61?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12700998#action_12700998
]
Zheng Shao commented on HIVE-61:
--------------------------------
Nit: Can you move the definition of numReducers inside the "if
(qbp.getClusterByForClause(dest) != null ... "? In case the "if" is not
executed, the variables don't get used, so they should not be exposed outside
the "if"s.
There are 2 places that you assign values to extraMRStep - I think it's cleaner
to split them into 2 different variables, each defined and assigned in the
"then" and "else" clause of "if (qbp.getIsSubQ())". That makes the logic
cleaner. What do you think?
{code}
@@ -2944,21 +2958,36 @@
curr = genSelectPlan(dest, qb, curr);
Integer limit = qbp.getDestLimit(dest);
+ boolean extraMRStep = true;
+ int numReducers = -1;
+ if (qbp.getOrderByForClause(dest) != null) {
+ numReducers = 1;
+ extraMRStep = false;
+ }
+
if (qbp.getClusterByForClause(dest) != null
|| qbp.getDistributeByForClause(dest) != null
+ || qbp.getOrderByForClause(dest) != null
|| qbp.getSortByForClause(dest) != null) {
- curr = genReduceSinkPlan(dest, qb, curr, -1);
+ curr = genReduceSinkPlan(dest, qb, curr, numReducers);
}
if (qbp.getIsSubQ()) {
if (limit != null) {
- curr = genLimitMapRedPlan(dest, qb, curr, limit.intValue(), false);
+ curr = genLimitMapRedPlan(dest, qb, curr, limit.intValue(),
extraMRStep);
}
} else {
curr = genConversionOps(dest, qb, curr);
// exact limit can be taken care of by the fetch operator
if (limit != null) {
- curr = genLimitMapRedPlan(dest, qb, curr, limit.intValue(),
qb.getIsQuery());
+ if (qb.getIsQuery() &&
+ qbp.getClusterByForClause(dest) == null &&
+ qbp.getSortByForClause(dest) == null)
+ extraMRStep = false;
+ else
+ extraMRStep = true;
+
+ curr = genLimitMapRedPlan(dest, qb, curr, limit.intValue(),
extraMRStep);
qb.getParseInfo().setOuterQueryLimit(limit.intValue());
}
curr = genFileSinkPlan(dest, qb, curr);
{code}
> Implment ORDER BY
> -----------------
>
> Key: HIVE-61
> URL: https://issues.apache.org/jira/browse/HIVE-61
> Project: Hadoop Hive
> Issue Type: New Feature
> Components: Query Processor
> Reporter: Jeff Hammerbacher
> Assignee: Zheng Shao
> Attachments: hive.61.1.patch
>
>
> ORDER BY is in the query language reference but currently is a no-op. We
> should make it an op.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.