diff --git a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchOptimizer.java b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchOptimizer.java index 332e53b..9b9a5ca 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchOptimizer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/optimizer/SimpleFetchOptimizer.java @@ -157,6 +157,13 @@ private boolean checkThreshold(FetchData data, int limit, ParseContext pctx) thr if (threshold < 0) { return true; } + Operator child = data.scanOp.getChildOperators().get(0); + if(child instanceof SelectOperator) { + // select *, constant and casts can be allowed without a threshold check + if (checkExpressions((SelectOperator)child)) { + return true; + } + } long remaining = threshold; remaining -= data.getInputLength(pctx, remaining); if (remaining < 0) {