You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by ha...@apache.org on 2013/10/08 17:44:16 UTC
svn commit: r1530314 - in /hive/trunk/ql/src:
java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
test/queries/clientpositive/vectorization_short_regress.q
test/results/clientpositive/vectorization_short_regress.q.out
Author: hashutosh
Date: Tue Oct 8 15:44:16 2013
New Revision: 1530314
URL: http://svn.apache.org/r1530314
Log:
HIVE-4945 : Make RLIKE/REGEXP run end-to-end by updating VectorizationContext (Teddy Choi via Ashutosh Chauhan)
Modified:
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
hive/trunk/ql/src/test/queries/clientpositive/vectorization_short_regress.q
hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java?rev=1530314&r1=1530313&r2=1530314&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/vector/VectorizationContext.java Tue Oct 8 15:44:16 2013
@@ -39,6 +39,7 @@ import org.apache.hadoop.hive.ql.exec.ve
import org.apache.hadoop.hive.ql.exec.vector.expressions.FilterExprAndExpr;
import org.apache.hadoop.hive.ql.exec.vector.expressions.FilterExprOrExpr;
import org.apache.hadoop.hive.ql.exec.vector.expressions.FilterStringColLikeStringScalar;
+import org.apache.hadoop.hive.ql.exec.vector.expressions.FilterStringColRegExpStringScalar;
import org.apache.hadoop.hive.ql.exec.vector.expressions.IdentityExpression;
import org.apache.hadoop.hive.ql.exec.vector.expressions.SelectColumnIsNotNull;
import org.apache.hadoop.hive.ql.exec.vector.expressions.SelectColumnIsNull;
@@ -95,6 +96,7 @@ import org.apache.hadoop.hive.ql.udf.UDF
import org.apache.hadoop.hive.ql.udf.UDFOPNegative;
import org.apache.hadoop.hive.ql.udf.UDFOPPlus;
import org.apache.hadoop.hive.ql.udf.UDFOPPositive;
+import org.apache.hadoop.hive.ql.udf.UDFRegExp;
import org.apache.hadoop.hive.ql.udf.UDFRTrim;
import org.apache.hadoop.hive.ql.udf.UDFSecond;
import org.apache.hadoop.hive.ql.udf.UDFSubstr;
@@ -513,7 +515,9 @@ public class VectorizationContext {
cl.equals(UDFSecond.class)) {
return getTimestampFieldExpression(cl.getSimpleName(), childExpr);
} else if (cl.equals(UDFLike.class)) {
- return getLikeExpression(childExpr);
+ return getLikeExpression(childExpr, true);
+ } else if (cl.equals(UDFRegExp.class)) {
+ return getLikeExpression(childExpr, false);
} else if (cl.equals(UDFLength.class)) {
return getUnaryStringExpression("StringLength", "Long", childExpr);
} else if (cl.equals(UDFSubstr.class)) {
@@ -813,7 +817,16 @@ public class VectorizationContext {
return expr;
}
- private VectorExpression getLikeExpression(List<ExprNodeDesc> childExpr) throws HiveException {
+ /**
+ * Returns a vector expression for a LIKE or REGEXP expression
+ * @param childExpr A list of child expressions
+ * @param isLike {@code true}: the expression is LIKE.
+ * {@code false}: the expression is REGEXP.
+ * @return A {@link FilterStringColLikeStringScalar} or
+ * a {@link FilterStringColRegExpStringScalar}
+ * @throws HiveException
+ */
+ private VectorExpression getLikeExpression(List<ExprNodeDesc> childExpr, boolean isLike) throws HiveException {
ExprNodeDesc leftExpr = childExpr.get(0);
ExprNodeDesc rightExpr = childExpr.get(1);
@@ -827,15 +840,25 @@ public class VectorizationContext {
ExprNodeColumnDesc leftColDesc = (ExprNodeColumnDesc) leftExpr;
constDesc = (ExprNodeConstantDesc) rightExpr;
inputCol = getInputColumnIndex(leftColDesc.getColumn());
- expr = (VectorExpression) new FilterStringColLikeStringScalar(inputCol,
- new Text((byte[]) getScalarValue(constDesc)));
+ if (isLike) {
+ expr = (VectorExpression) new FilterStringColLikeStringScalar(inputCol,
+ new Text((byte[]) getScalarValue(constDesc)));
+ } else {
+ expr = (VectorExpression) new FilterStringColRegExpStringScalar(inputCol,
+ new Text((byte[]) getScalarValue(constDesc)));
+ }
} else if ((leftExpr instanceof ExprNodeGenericFuncDesc) &&
(rightExpr instanceof ExprNodeConstantDesc)) {
v1 = getVectorExpression(leftExpr);
inputCol = v1.getOutputColumn();
constDesc = (ExprNodeConstantDesc) rightExpr;
- expr = (VectorExpression) new FilterStringColLikeStringScalar(inputCol,
- new Text((byte[]) getScalarValue(constDesc)));
+ if (isLike) {
+ expr = (VectorExpression) new FilterStringColLikeStringScalar(inputCol,
+ new Text((byte[]) getScalarValue(constDesc)));
+ } else {
+ expr = (VectorExpression) new FilterStringColRegExpStringScalar(inputCol,
+ new Text((byte[]) getScalarValue(constDesc)));
+ }
}
// TODO add logic to handle cases where left input is an expression.
if (expr == null) {
Modified: hive/trunk/ql/src/test/queries/clientpositive/vectorization_short_regress.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/vectorization_short_regress.q?rev=1530314&r1=1530313&r2=1530314&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/vectorization_short_regress.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/vectorization_short_regress.q Tue Oct 8 15:44:16 2013
@@ -104,7 +104,7 @@ WHERE ((762 = cbigint)
-- TargetTypeClasses: Long, Bool, Double, String, Timestamp
-- Functions: Max, VarP, StDevP, Avg, Min, StDev, Var
-- ArithmeticOps: Divide, Multiply, Remainder, Subtract
--- FilterOps: LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual, Like
+-- FilterOps: LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual, Like, RLike
-- GroupBy: NoGroupByProjectAggs
EXPLAIN SELECT MAX(cint),
(MAX(cint) / -3728),
@@ -135,7 +135,7 @@ WHERE (((cbigint <= 197)
OR ((cdouble >= -26.28)
AND (csmallint > cdouble))
OR ((ctinyint > cfloat)
- AND (cstring1 LIKE '%ss%'))
+ AND (cstring1 RLIKE '.*ss.*'))
OR ((cfloat > 79.553)
AND (cstring2 LIKE '10%')));
SELECT MAX(cint),
@@ -167,7 +167,7 @@ WHERE (((cbigint <= 197)
OR ((cdouble >= -26.28)
AND (csmallint > cdouble))
OR ((ctinyint > cfloat)
- AND (cstring1 LIKE '%ss%'))
+ AND (cstring1 RLIKE '.*ss.*'))
OR ((cfloat > 79.553)
AND (cstring2 LIKE '10%')));
@@ -290,7 +290,7 @@ WHERE (((ctimestamp2 <= ctimestamp1)
-- TargetTypeClasses: Timestamp, String, Long, Double, Bool
-- Functions: Max, Avg, Min, Var, StDev, Count, StDevP, Sum
-- ArithmeticOps: Multiply, Subtract, Add, Divide
--- FilterOps: Like, NotEqual, LessThan, GreaterThanOrEqual, GreaterThan
+-- FilterOps: Like, NotEqual, LessThan, GreaterThanOrEqual, GreaterThan, RLike
-- GroupBy: NoGroupByProjectColumns
EXPLAIN SELECT cint,
cdouble,
@@ -316,7 +316,7 @@ EXPLAIN SELECT cint,
(-(ctinyint)),
(79.553 / ctinyint)
FROM alltypesorc
-WHERE (((cstring1 LIKE 'a%')
+WHERE (((cstring1 RLIKE 'a.*')
AND (cstring2 LIKE '%ss%'))
OR ((1 != cboolean2)
AND ((csmallint < 79.553)
@@ -349,7 +349,7 @@ SELECT cint,
(-(ctinyint)),
(79.553 / ctinyint)
FROM alltypesorc
-WHERE (((cstring1 LIKE 'a%')
+WHERE (((cstring1 RLIKE 'a.*')
AND (cstring2 LIKE '%ss%'))
OR ((1 != cboolean2)
AND ((csmallint < 79.553)
@@ -664,7 +664,7 @@ ORDER BY cdouble;
-- TargetTypeClasses: Bool, Timestamp, String, Double, Long
-- Functions: StDevP, Avg, Count, Min, Var, VarP, Sum
-- ArithmeticOps: Multiply, Subtract, Add, Divide, Remainder
--- FilterOps: NotEqual, LessThan, Like, Equal
+-- FilterOps: NotEqual, LessThan, Like, Equal, RLike
-- GroupBy: GroupBy
EXPLAIN SELECT ctimestamp1,
cstring1,
@@ -709,7 +709,7 @@ FROM alltypesorc
WHERE (((ctimestamp1 != 0))
AND ((((-257 != ctinyint)
AND (cboolean2 IS NOT NULL))
- AND ((cstring1 LIKE '%ss')
+ AND ((cstring1 RLIKE '.*ss')
AND (-10669 < ctimestamp1)))
OR (ctimestamp2 = -10669)
OR ((ctimestamp1 < 0)
@@ -761,7 +761,7 @@ FROM alltypesorc
WHERE (((ctimestamp1 != 0))
AND ((((-257 != ctinyint)
AND (cboolean2 IS NOT NULL))
- AND ((cstring1 LIKE '%ss')
+ AND ((cstring1 RLIKE '.*ss')
AND (-10669 < ctimestamp1)))
OR (ctimestamp2 = -10669)
OR ((ctimestamp1 < 0)
@@ -774,7 +774,7 @@ GROUP BY ctimestamp1, cstring1;
-- TargetTypeClasses: Double, Long, String, Timestamp, Bool
-- Functions: Max, Sum, Var, Avg, Min, VarP, StDev, StDevP
-- ArithmeticOps: Divide, Subtract, Remainder, Add, Multiply
--- FilterOps: GreaterThan, LessThanOrEqual, Equal, LessThan, GreaterThanOrEqual, NotEqual, Like
+-- FilterOps: GreaterThan, LessThanOrEqual, Equal, LessThan, GreaterThanOrEqual, NotEqual, Like, RLike
-- GroupBy: GroupBy
EXPLAIN SELECT cboolean1,
MAX(cfloat),
@@ -810,7 +810,7 @@ WHERE (((cboolean1 IS NOT NULL))
OR ((cint >= -257)
AND ((cstring1 IS NOT NULL)
AND (cboolean1 >= 1)))
- OR (cstring2 LIKE 'b')
+ OR (cstring2 RLIKE 'b')
OR ((csmallint >= ctinyint)
AND (ctimestamp2 IS NULL))))
GROUP BY cboolean1
@@ -849,7 +849,7 @@ WHERE (((cboolean1 IS NOT NULL))
OR ((cint >= -257)
AND ((cstring1 IS NOT NULL)
AND (cboolean1 >= 1)))
- OR (cstring2 LIKE 'b')
+ OR (cstring2 RLIKE 'b')
OR ((csmallint >= ctinyint)
AND (ctimestamp2 IS NULL))))
GROUP BY cboolean1
Modified: hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out?rev=1530314&r1=1530313&r2=1530314&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/vectorization_short_regress.q.out Tue Oct 8 15:44:16 2013
@@ -363,7 +363,7 @@ POSTHOOK: Input: default@alltypesorc
PREHOOK: query: -- TargetTypeClasses: Long, Bool, Double, String, Timestamp
-- Functions: Max, VarP, StDevP, Avg, Min, StDev, Var
-- ArithmeticOps: Divide, Multiply, Remainder, Subtract
--- FilterOps: LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual, Like
+-- FilterOps: LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual, Like, RLike
-- GroupBy: NoGroupByProjectAggs
EXPLAIN SELECT MAX(cint),
(MAX(cint) / -3728),
@@ -394,14 +394,14 @@ WHERE (((cbigint <= 197)
OR ((cdouble >= -26.28)
AND (csmallint > cdouble))
OR ((ctinyint > cfloat)
- AND (cstring1 LIKE '%ss%'))
+ AND (cstring1 RLIKE '.*ss.*'))
OR ((cfloat > 79.553)
AND (cstring2 LIKE '10%')))
PREHOOK: type: QUERY
POSTHOOK: query: -- TargetTypeClasses: Long, Bool, Double, String, Timestamp
-- Functions: Max, VarP, StDevP, Avg, Min, StDev, Var
-- ArithmeticOps: Divide, Multiply, Remainder, Subtract
--- FilterOps: LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual, Like
+-- FilterOps: LessThan, LessThanOrEqual, GreaterThan, GreaterThanOrEqual, Like, RLike
-- GroupBy: NoGroupByProjectAggs
EXPLAIN SELECT MAX(cint),
(MAX(cint) / -3728),
@@ -432,12 +432,12 @@ WHERE (((cbigint <= 197)
OR ((cdouble >= -26.28)
AND (csmallint > cdouble))
OR ((ctinyint > cfloat)
- AND (cstring1 LIKE '%ss%'))
+ AND (cstring1 RLIKE '.*ss.*'))
OR ((cfloat > 79.553)
AND (cstring2 LIKE '10%')))
POSTHOOK: type: QUERY
ABSTRACT SYNTAX TREE:
- (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME alltypesorc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (/ (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728))) (TOK_SELEXPR (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728))) (TOK_SELEXPR (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (- (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)))) (TOK_SELEXPR (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (% (- 563) (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)))) (TOK_SELEXPR (/ (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cbigint)) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmallint)))) (TOK_SELEXPR (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmallint)))) (TOK_SELEXPR (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmalli
nt)) 10.175)) (TOK_SELEXPR (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (% (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmallint)) 10.175))) (TOK_SELEXPR (- (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cdouble)))) (TOK_SELEXPR (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (% (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cdouble)) (- 26.28))) (TOK_SELEXPR (TOK_FUNCTION STDDEV_SAMP (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (- (/ (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)))) (TOK_SELEXPR (% (- (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728))) (% (- 563) (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728))))) (TOK_SELEXPR (- (/ (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)) (TOK_FUNCTION AVG (TOK_TABLE_OR_COL ctinyint)))) (TOK_SELEXPR (- (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)))) (TOK_SELEXPR (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cint)))) (TOK_WHERE (OR (OR (OR (AND (<= (TOK_TAB
LE_OR_COL cbigint) 197) (< (TOK_TABLE_OR_COL cint) (TOK_TABLE_OR_COL cbigint))) (AND (>= (TOK_TABLE_OR_COL cdouble) (- 26.28)) (> (TOK_TABLE_OR_COL csmallint) (TOK_TABLE_OR_COL cdouble)))) (AND (> (TOK_TABLE_OR_COL ctinyint) (TOK_TABLE_OR_COL cfloat)) (LIKE (TOK_TABLE_OR_COL cstring1) '%ss%'))) (AND (> (TOK_TABLE_OR_COL cfloat) 79.553) (LIKE (TOK_TABLE_OR_COL cstring2) '10%'))))))
+ (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME alltypesorc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (/ (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728))) (TOK_SELEXPR (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728))) (TOK_SELEXPR (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (- (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)))) (TOK_SELEXPR (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (% (- 563) (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)))) (TOK_SELEXPR (/ (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cbigint)) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmallint)))) (TOK_SELEXPR (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmallint)))) (TOK_SELEXPR (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmalli
nt)) 10.175)) (TOK_SELEXPR (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (% (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmallint)) 10.175))) (TOK_SELEXPR (- (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cdouble)))) (TOK_SELEXPR (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (% (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cdouble)) (- 26.28))) (TOK_SELEXPR (TOK_FUNCTION STDDEV_SAMP (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (- (/ (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)))) (TOK_SELEXPR (% (- (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728))) (% (- 563) (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728))))) (TOK_SELEXPR (- (/ (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)) (TOK_FUNCTION AVG (TOK_TABLE_OR_COL ctinyint)))) (TOK_SELEXPR (- (* (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cint)) (- 3728)))) (TOK_SELEXPR (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cint)))) (TOK_WHERE (OR (OR (OR (AND (<= (TOK_TAB
LE_OR_COL cbigint) 197) (< (TOK_TABLE_OR_COL cint) (TOK_TABLE_OR_COL cbigint))) (AND (>= (TOK_TABLE_OR_COL cdouble) (- 26.28)) (> (TOK_TABLE_OR_COL csmallint) (TOK_TABLE_OR_COL cdouble)))) (AND (> (TOK_TABLE_OR_COL ctinyint) (TOK_TABLE_OR_COL cfloat)) (RLIKE (TOK_TABLE_OR_COL cstring1) '.*ss.*'))) (AND (> (TOK_TABLE_OR_COL cfloat) 79.553) (LIKE (TOK_TABLE_OR_COL cstring2) '10%'))))))
STAGE DEPENDENCIES:
Stage-1 is a root stage
@@ -452,7 +452,7 @@ STAGE PLANS:
alias: alltypesorc
Filter Operator
predicate:
- expr: (((((cbigint <= 197) and (cint < cbigint)) or ((cdouble >= (- 26.28)) and (csmallint > cdouble))) or ((ctinyint > cfloat) and (cstring1 like '%ss%'))) or ((cfloat > 79.553) and (cstring2 like '10%')))
+ expr: (((((cbigint <= 197) and (cint < cbigint)) or ((cdouble >= (- 26.28)) and (csmallint > cdouble))) or ((ctinyint > cfloat) and (cstring1 rlike '.*ss.*'))) or ((cfloat > 79.553) and (cstring2 like '10%')))
type: boolean
Vectorized execution: true
Select Operator
@@ -612,7 +612,7 @@ WHERE (((cbigint <= 197)
OR ((cdouble >= -26.28)
AND (csmallint > cdouble))
OR ((ctinyint > cfloat)
- AND (cstring1 LIKE '%ss%'))
+ AND (cstring1 RLIKE '.*ss.*'))
OR ((cfloat > 79.553)
AND (cstring2 LIKE '10%')))
PREHOOK: type: QUERY
@@ -647,7 +647,7 @@ WHERE (((cbigint <= 197)
OR ((cdouble >= -26.28)
AND (csmallint > cdouble))
OR ((ctinyint > cfloat)
- AND (cstring1 LIKE '%ss%'))
+ AND (cstring1 RLIKE '.*ss.*'))
OR ((cfloat > 79.553)
AND (cstring2 LIKE '10%')))
POSTHOOK: type: QUERY
@@ -1161,7 +1161,7 @@ POSTHOOK: Input: default@alltypesorc
PREHOOK: query: -- TargetTypeClasses: Timestamp, String, Long, Double, Bool
-- Functions: Max, Avg, Min, Var, StDev, Count, StDevP, Sum
-- ArithmeticOps: Multiply, Subtract, Add, Divide
--- FilterOps: Like, NotEqual, LessThan, GreaterThanOrEqual, GreaterThan
+-- FilterOps: Like, NotEqual, LessThan, GreaterThanOrEqual, GreaterThan, RLike
-- GroupBy: NoGroupByProjectColumns
EXPLAIN SELECT cint,
cdouble,
@@ -1187,7 +1187,7 @@ EXPLAIN SELECT cint,
(-(ctinyint)),
(79.553 / ctinyint)
FROM alltypesorc
-WHERE (((cstring1 LIKE 'a%')
+WHERE (((cstring1 RLIKE 'a.*')
AND (cstring2 LIKE '%ss%'))
OR ((1 != cboolean2)
AND ((csmallint < 79.553)
@@ -1200,7 +1200,7 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- TargetTypeClasses: Timestamp, String, Long, Double, Bool
-- Functions: Max, Avg, Min, Var, StDev, Count, StDevP, Sum
-- ArithmeticOps: Multiply, Subtract, Add, Divide
--- FilterOps: Like, NotEqual, LessThan, GreaterThanOrEqual, GreaterThan
+-- FilterOps: Like, NotEqual, LessThan, GreaterThanOrEqual, GreaterThan, RLike
-- GroupBy: NoGroupByProjectColumns
EXPLAIN SELECT cint,
cdouble,
@@ -1226,7 +1226,7 @@ EXPLAIN SELECT cint,
(-(ctinyint)),
(79.553 / ctinyint)
FROM alltypesorc
-WHERE (((cstring1 LIKE 'a%')
+WHERE (((cstring1 RLIKE 'a.*')
AND (cstring2 LIKE '%ss%'))
OR ((1 != cboolean2)
AND ((csmallint < 79.553)
@@ -1237,7 +1237,7 @@ WHERE (((cstring1 LIKE 'a%')
AND (ctinyint > cbigint)))
POSTHOOK: type: QUERY
ABSTRACT SYNTAX TREE:
- (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME alltypesorc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL cint)) (TOK_SELEXPR (TOK_TABLE_OR_COL cdouble)) (TOK_SELEXPR (TOK_TABLE_OR_COL ctimestamp2)) (TOK_SELEXPR (TOK_TABLE_OR_COL cstring1)) (TOK_SELEXPR (TOK_TABLE_OR_COL cboolean2)) (TOK_SELEXPR (TOK_TABLE_OR_COL ctinyint)) (TOK_SELEXPR (TOK_TABLE_OR_COL cfloat)) (TOK_SELEXPR (TOK_TABLE_OR_COL ctimestamp1)) (TOK_SELEXPR (TOK_TABLE_OR_COL csmallint)) (TOK_SELEXPR (TOK_TABLE_OR_COL cbigint)) (TOK_SELEXPR (* (- 3728) (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (- (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (- (- 863.257) (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (- (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (- (TOK_TABLE_OR_COL csmallint) (- (TOK_TABLE_OR_COL csmallint)))) (TOK_SELEXPR (+ (- (TOK_TABLE_OR_COL csmallint) (- (TOK_TABLE_OR_COL csmallint))) (- (TOK_TABLE_OR_COL csmallint)))) (TOK_SELEXPR (/ (TOK_TABLE_OR_COL cint) (TOK_TABLE_OR_C
OL cint))) (TOK_SELEXPR (- (- (- 863.257) (TOK_TABLE_OR_COL cint)) (- 26.28))) (TOK_SELEXPR (- (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (* (TOK_TABLE_OR_COL cdouble) (- 89010))) (TOK_SELEXPR (/ (TOK_TABLE_OR_COL ctinyint) 988888)) (TOK_SELEXPR (- (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (/ 79.553 (TOK_TABLE_OR_COL ctinyint)))) (TOK_WHERE (OR (OR (OR (AND (LIKE (TOK_TABLE_OR_COL cstring1) 'a%') (LIKE (TOK_TABLE_OR_COL cstring2) '%ss%')) (AND (!= 1 (TOK_TABLE_OR_COL cboolean2)) (AND (< (TOK_TABLE_OR_COL csmallint) 79.553) (!= (- 257) (TOK_TABLE_OR_COL ctinyint))))) (AND (> (TOK_TABLE_OR_COL cdouble) (TOK_TABLE_OR_COL ctinyint)) (>= (TOK_TABLE_OR_COL cfloat) (TOK_TABLE_OR_COL cint)))) (AND (< (TOK_TABLE_OR_COL cint) (TOK_TABLE_OR_COL cbigint)) (> (TOK_TABLE_OR_COL ctinyint) (TOK_TABLE_OR_COL cbigint)))))))
+ (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME alltypesorc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL cint)) (TOK_SELEXPR (TOK_TABLE_OR_COL cdouble)) (TOK_SELEXPR (TOK_TABLE_OR_COL ctimestamp2)) (TOK_SELEXPR (TOK_TABLE_OR_COL cstring1)) (TOK_SELEXPR (TOK_TABLE_OR_COL cboolean2)) (TOK_SELEXPR (TOK_TABLE_OR_COL ctinyint)) (TOK_SELEXPR (TOK_TABLE_OR_COL cfloat)) (TOK_SELEXPR (TOK_TABLE_OR_COL ctimestamp1)) (TOK_SELEXPR (TOK_TABLE_OR_COL csmallint)) (TOK_SELEXPR (TOK_TABLE_OR_COL cbigint)) (TOK_SELEXPR (* (- 3728) (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (- (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (- (- 863.257) (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (- (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (- (TOK_TABLE_OR_COL csmallint) (- (TOK_TABLE_OR_COL csmallint)))) (TOK_SELEXPR (+ (- (TOK_TABLE_OR_COL csmallint) (- (TOK_TABLE_OR_COL csmallint))) (- (TOK_TABLE_OR_COL csmallint)))) (TOK_SELEXPR (/ (TOK_TABLE_OR_COL cint) (TOK_TABLE_OR_C
OL cint))) (TOK_SELEXPR (- (- (- 863.257) (TOK_TABLE_OR_COL cint)) (- 26.28))) (TOK_SELEXPR (- (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (* (TOK_TABLE_OR_COL cdouble) (- 89010))) (TOK_SELEXPR (/ (TOK_TABLE_OR_COL ctinyint) 988888)) (TOK_SELEXPR (- (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (/ 79.553 (TOK_TABLE_OR_COL ctinyint)))) (TOK_WHERE (OR (OR (OR (AND (RLIKE (TOK_TABLE_OR_COL cstring1) 'a.*') (LIKE (TOK_TABLE_OR_COL cstring2) '%ss%')) (AND (!= 1 (TOK_TABLE_OR_COL cboolean2)) (AND (< (TOK_TABLE_OR_COL csmallint) 79.553) (!= (- 257) (TOK_TABLE_OR_COL ctinyint))))) (AND (> (TOK_TABLE_OR_COL cdouble) (TOK_TABLE_OR_COL ctinyint)) (>= (TOK_TABLE_OR_COL cfloat) (TOK_TABLE_OR_COL cint)))) (AND (< (TOK_TABLE_OR_COL cint) (TOK_TABLE_OR_COL cbigint)) (> (TOK_TABLE_OR_COL ctinyint) (TOK_TABLE_OR_COL cbigint)))))))
STAGE DEPENDENCIES:
Stage-1 is a root stage
@@ -1252,7 +1252,7 @@ STAGE PLANS:
alias: alltypesorc
Filter Operator
predicate:
- expr: (((((cstring1 like 'a%') and (cstring2 like '%ss%')) or ((1 <> cboolean2) and ((csmallint < 79.553) and ((- 257) <> ctinyint)))) or ((cdouble > ctinyint) and (cfloat >= cint))) or ((cint < cbigint) and (ctinyint > cbigint)))
+ expr: (((((cstring1 rlike 'a.*') and (cstring2 like '%ss%')) or ((1 <> cboolean2) and ((csmallint < 79.553) and ((- 257) <> ctinyint)))) or ((cdouble > ctinyint) and (cfloat >= cint))) or ((cint < cbigint) and (ctinyint > cbigint)))
type: boolean
Vectorized execution: true
Select Operator
@@ -1343,7 +1343,7 @@ PREHOOK: query: SELECT cint,
(-(ctinyint)),
(79.553 / ctinyint)
FROM alltypesorc
-WHERE (((cstring1 LIKE 'a%')
+WHERE (((cstring1 RLIKE 'a.*')
AND (cstring2 LIKE '%ss%'))
OR ((1 != cboolean2)
AND ((csmallint < 79.553)
@@ -1379,7 +1379,7 @@ POSTHOOK: query: SELECT cint,
(-(ctinyint)),
(79.553 / ctinyint)
FROM alltypesorc
-WHERE (((cstring1 LIKE 'a%')
+WHERE (((cstring1 RLIKE 'a.*')
AND (cstring2 LIKE '%ss%'))
OR ((1 != cboolean2)
AND ((csmallint < 79.553)
@@ -8252,7 +8252,7 @@ POSTHOOK: Input: default@alltypesorc
PREHOOK: query: -- TargetTypeClasses: Bool, Timestamp, String, Double, Long
-- Functions: StDevP, Avg, Count, Min, Var, VarP, Sum
-- ArithmeticOps: Multiply, Subtract, Add, Divide, Remainder
--- FilterOps: NotEqual, LessThan, Like, Equal
+-- FilterOps: NotEqual, LessThan, Like, Equal, RLike
-- GroupBy: GroupBy
EXPLAIN SELECT ctimestamp1,
cstring1,
@@ -8297,7 +8297,7 @@ FROM alltypesorc
WHERE (((ctimestamp1 != 0))
AND ((((-257 != ctinyint)
AND (cboolean2 IS NOT NULL))
- AND ((cstring1 LIKE '%ss')
+ AND ((cstring1 RLIKE '.*ss')
AND (-10669 < ctimestamp1)))
OR (ctimestamp2 = -10669)
OR ((ctimestamp1 < 0)
@@ -8310,7 +8310,7 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- TargetTypeClasses: Bool, Timestamp, String, Double, Long
-- Functions: StDevP, Avg, Count, Min, Var, VarP, Sum
-- ArithmeticOps: Multiply, Subtract, Add, Divide, Remainder
--- FilterOps: NotEqual, LessThan, Like, Equal
+-- FilterOps: NotEqual, LessThan, Like, Equal, RLike
-- GroupBy: GroupBy
EXPLAIN SELECT ctimestamp1,
cstring1,
@@ -8355,7 +8355,7 @@ FROM alltypesorc
WHERE (((ctimestamp1 != 0))
AND ((((-257 != ctinyint)
AND (cboolean2 IS NOT NULL))
- AND ((cstring1 LIKE '%ss')
+ AND ((cstring1 RLIKE '.*ss')
AND (-10669 < ctimestamp1)))
OR (ctimestamp2 = -10669)
OR ((ctimestamp1 < 0)
@@ -8366,7 +8366,7 @@ WHERE (((ctimestamp1 != 0))
GROUP BY ctimestamp1, cstring1
POSTHOOK: type: QUERY
ABSTRACT SYNTAX TREE:
- (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME alltypesorc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL ctimestamp1)) (TOK_SELEXPR (TOK_TABLE_OR_COL cstring1)) (TOK_SELEXPR (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (* (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)) 10.175)) (TOK_SELEXPR (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (TOK_FUNCTIONSTAR COUNT)) (TOK_SELEXPR (- (TOK_FUNCTIONSTAR COUNT))) (TOK_SELEXPR (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))))) (TOK_SELEXPR (TOK_FUNCTION MIN (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (T
OK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) (TOK_SELEXPR (- (* (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)) 10.175))) (TOK_SELEXPR (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (+ (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint)) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT))))) (TOK_SELEXPR (- (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))))) (TOK_SELEXPR (/ (- (TOK_FUNCTIONSTAR COUNT)) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (/ 10.175 (TOK_FUNCTION AVG (TOK_TABLE_OR_COL csmallint)))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (- (+ (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint)) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (T
OK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT))))) (TOK_SELEXPR (- (- (* (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)) 10.175)))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (* (- (+ (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint)) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) 10.175)) (TOK_SELEXPR (% 10.175 (/ 10.175 (TOK_FUNCTION AVG (TOK_TABLE_OR_COL csmallint))))) (TOK_SELEXPR (- (TOK_FUNCTION MIN (TOK_TABLE_OR_COL ctinyint)))) (TOK_SELEXPR (TOK_FUNCTION MIN (TOK_TABLE_O
R_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (- (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))))) (TOK_SELEXPR (% (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cfloat)))) (TOK_SELEXPR (/ (- 26.28) (- (TOK_FUNCTION MIN (TOK_TABLE_OR_COL ctinyint))))) (TOK_SELEXPR (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (/ (+ (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint)) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cfloat)))) (TOK_SELEXPR (- (- (TOK_FUNCTIONSTAR COUNT)))) (TOK_SELEXPR (TOK_FUNCTIONSTAR COUNT)) (TOK_SELEXPR (% (+ (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint)) (* (* (- (- 26.2
8) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) (- 26.28)))) (TOK_WHERE (AND (!= (TOK_TABLE_OR_COL ctimestamp1) 0) (OR (OR (OR (OR (AND (AND (!= (- 257) (TOK_TABLE_OR_COL ctinyint)) (TOK_FUNCTION TOK_ISNOTNULL (TOK_TABLE_OR_COL cboolean2))) (AND (LIKE (TOK_TABLE_OR_COL cstring1) '%ss') (< (- 10669) (TOK_TABLE_OR_COL ctimestamp1)))) (= (TOK_TABLE_OR_COL ctimestamp2) (- 10669))) (AND (< (TOK_TABLE_OR_COL ctimestamp1) 0) (LIKE (TOK_TABLE_OR_COL cstring2) '%b%'))) (= (TOK_TABLE_OR_COL cdouble) (TOK_TABLE_OR_COL cint))) (AND (TOK_FUNCTION TOK_ISNULL (TOK_TABLE_OR_COL cboolean1)) (< (TOK_TABLE_OR_COL cfloat) (TOK_TABLE_OR_COL cint)))))) (TOK_GROUPBY (TOK_TABLE_OR_COL ctimestamp1) (TOK_TABLE_OR_COL cstring1))))
+ (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME alltypesorc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL ctimestamp1)) (TOK_SELEXPR (TOK_TABLE_OR_COL cstring1)) (TOK_SELEXPR (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (* (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)) 10.175)) (TOK_SELEXPR (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (TOK_FUNCTIONSTAR COUNT)) (TOK_SELEXPR (- (TOK_FUNCTIONSTAR COUNT))) (TOK_SELEXPR (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))))) (TOK_SELEXPR (TOK_FUNCTION MIN (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (T
OK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) (TOK_SELEXPR (- (* (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)) 10.175))) (TOK_SELEXPR (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (+ (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint)) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT))))) (TOK_SELEXPR (- (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))))) (TOK_SELEXPR (/ (- (TOK_FUNCTIONSTAR COUNT)) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (/ 10.175 (TOK_FUNCTION AVG (TOK_TABLE_OR_COL csmallint)))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (- (+ (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint)) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (T
OK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT))))) (TOK_SELEXPR (- (- (* (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)) 10.175)))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (* (- (+ (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint)) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) 10.175)) (TOK_SELEXPR (% 10.175 (/ 10.175 (TOK_FUNCTION AVG (TOK_TABLE_OR_COL csmallint))))) (TOK_SELEXPR (- (TOK_FUNCTION MIN (TOK_TABLE_OR_COL ctinyint)))) (TOK_SELEXPR (TOK_FUNCTION MIN (TOK_TABLE_O
R_COL cdouble))) (TOK_SELEXPR (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (- (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))))) (TOK_SELEXPR (% (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cfloat)))) (TOK_SELEXPR (/ (- 26.28) (- (TOK_FUNCTION MIN (TOK_TABLE_OR_COL ctinyint))))) (TOK_SELEXPR (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (/ (+ (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint)) (* (* (- (- 26.28) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cfloat)))) (TOK_SELEXPR (- (- (TOK_FUNCTIONSTAR COUNT)))) (TOK_SELEXPR (TOK_FUNCTIONSTAR COUNT)) (TOK_SELEXPR (% (+ (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL csmallint)) (* (* (- (- 26.2
8) (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint))) (- (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL cint)))) (- (TOK_FUNCTIONSTAR COUNT)))) (- 26.28)))) (TOK_WHERE (AND (!= (TOK_TABLE_OR_COL ctimestamp1) 0) (OR (OR (OR (OR (AND (AND (!= (- 257) (TOK_TABLE_OR_COL ctinyint)) (TOK_FUNCTION TOK_ISNOTNULL (TOK_TABLE_OR_COL cboolean2))) (AND (RLIKE (TOK_TABLE_OR_COL cstring1) '.*ss') (< (- 10669) (TOK_TABLE_OR_COL ctimestamp1)))) (= (TOK_TABLE_OR_COL ctimestamp2) (- 10669))) (AND (< (TOK_TABLE_OR_COL ctimestamp1) 0) (LIKE (TOK_TABLE_OR_COL cstring2) '%b%'))) (= (TOK_TABLE_OR_COL cdouble) (TOK_TABLE_OR_COL cint))) (AND (TOK_FUNCTION TOK_ISNULL (TOK_TABLE_OR_COL cboolean1)) (< (TOK_TABLE_OR_COL cfloat) (TOK_TABLE_OR_COL cint)))))) (TOK_GROUPBY (TOK_TABLE_OR_COL ctimestamp1) (TOK_TABLE_OR_COL cstring1))))
STAGE DEPENDENCIES:
Stage-1 is a root stage
@@ -8381,7 +8381,7 @@ STAGE PLANS:
alias: alltypesorc
Filter Operator
predicate:
- expr: ((ctimestamp1 <> 0) and ((((((((- 257) <> ctinyint) and cboolean2 is not null) and ((cstring1 like '%ss') and ((- 10669) < ctimestamp1))) or (ctimestamp2 = (- 10669))) or ((ctimestamp1 < 0) and (cstring2 like '%b%'))) or (cdouble = cint)) or (cboolean1 is null and (cfloat < cint))))
+ expr: ((ctimestamp1 <> 0) and ((((((((- 257) <> ctinyint) and cboolean2 is not null) and ((cstring1 rlike '.*ss') and ((- 10669) < ctimestamp1))) or (ctimestamp2 = (- 10669))) or ((ctimestamp1 < 0) and (cstring2 like '%b%'))) or (cdouble = cint)) or (cboolean1 is null and (cfloat < cint))))
type: boolean
Vectorized execution: true
Select Operator
@@ -8627,7 +8627,7 @@ FROM alltypesorc
WHERE (((ctimestamp1 != 0))
AND ((((-257 != ctinyint)
AND (cboolean2 IS NOT NULL))
- AND ((cstring1 LIKE '%ss')
+ AND ((cstring1 RLIKE '.*ss')
AND (-10669 < ctimestamp1)))
OR (ctimestamp2 = -10669)
OR ((ctimestamp1 < 0)
@@ -8682,7 +8682,7 @@ FROM alltypesorc
WHERE (((ctimestamp1 != 0))
AND ((((-257 != ctinyint)
AND (cboolean2 IS NOT NULL))
- AND ((cstring1 LIKE '%ss')
+ AND ((cstring1 RLIKE '.*ss')
AND (-10669 < ctimestamp1)))
OR (ctimestamp2 = -10669)
OR ((ctimestamp1 < 0)
@@ -8936,7 +8936,7 @@ WARNING: Comparing a bigint and a double
PREHOOK: query: -- TargetTypeClasses: Double, Long, String, Timestamp, Bool
-- Functions: Max, Sum, Var, Avg, Min, VarP, StDev, StDevP
-- ArithmeticOps: Divide, Subtract, Remainder, Add, Multiply
--- FilterOps: GreaterThan, LessThanOrEqual, Equal, LessThan, GreaterThanOrEqual, NotEqual, Like
+-- FilterOps: GreaterThan, LessThanOrEqual, Equal, LessThan, GreaterThanOrEqual, NotEqual, Like, RLike
-- GroupBy: GroupBy
EXPLAIN SELECT cboolean1,
MAX(cfloat),
@@ -8972,7 +8972,7 @@ WHERE (((cboolean1 IS NOT NULL))
OR ((cint >= -257)
AND ((cstring1 IS NOT NULL)
AND (cboolean1 >= 1)))
- OR (cstring2 LIKE 'b')
+ OR (cstring2 RLIKE 'b')
OR ((csmallint >= ctinyint)
AND (ctimestamp2 IS NULL))))
GROUP BY cboolean1
@@ -8981,7 +8981,7 @@ PREHOOK: type: QUERY
POSTHOOK: query: -- TargetTypeClasses: Double, Long, String, Timestamp, Bool
-- Functions: Max, Sum, Var, Avg, Min, VarP, StDev, StDevP
-- ArithmeticOps: Divide, Subtract, Remainder, Add, Multiply
--- FilterOps: GreaterThan, LessThanOrEqual, Equal, LessThan, GreaterThanOrEqual, NotEqual, Like
+-- FilterOps: GreaterThan, LessThanOrEqual, Equal, LessThan, GreaterThanOrEqual, NotEqual, Like, RLike
-- GroupBy: GroupBy
EXPLAIN SELECT cboolean1,
MAX(cfloat),
@@ -9017,14 +9017,14 @@ WHERE (((cboolean1 IS NOT NULL))
OR ((cint >= -257)
AND ((cstring1 IS NOT NULL)
AND (cboolean1 >= 1)))
- OR (cstring2 LIKE 'b')
+ OR (cstring2 RLIKE 'b')
OR ((csmallint >= ctinyint)
AND (ctimestamp2 IS NULL))))
GROUP BY cboolean1
ORDER BY cboolean1
POSTHOOK: type: QUERY
ABSTRACT SYNTAX TREE:
- (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME alltypesorc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL cboolean1)) (TOK_SELEXPR (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (- (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat)))) (TOK_SELEXPR (/ (- 26.28) (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat)))) (TOK_SELEXPR (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (- (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cbigint)) 10.175)) (TOK_SELEXPR (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (% (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cint)) (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat)))) (TOK_SELEXPR (+ 10.175 (- (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat))))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (+ (- (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cbigint)) 10.175) (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cbigint))) (TOK_SELEX
PR (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (- (+ 10.175 (- (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat)))))) (TOK_SELEXPR (/ 79.553 (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cbigint)))) (TOK_SELEXPR (% (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cint)) (/ 79.553 (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cbigint))))) (TOK_SELEXPR (- (+ 10.175 (- (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat)))))) (TOK_SELEXPR (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (TOK_FUNCTION STDDEV_SAMP (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (* (- 1.389) (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cbigint)))) (TOK_SELEXPR (- (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cint)) (* (- 1.389) (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cbigint))))) (TOK_SELEXPR (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (- (- (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cint)) (* (- 1.389) (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cbigint)))))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR
(- (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (* (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cint)) (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cint))))) (TOK_WHERE (AND (TOK_FUNCTION TOK_ISNOTNULL (TOK_TABLE_OR_COL cboolean1)) (OR (OR (OR (AND (< (TOK_TABLE_OR_COL cdouble) (TOK_TABLE_OR_COL csmallint)) (AND (= (TOK_TABLE_OR_COL cboolean2) (TOK_TABLE_OR_COL cboolean1)) (<= (TOK_TABLE_OR_COL cbigint) (- 863.257)))) (AND (>= (TOK_TABLE_OR_COL cint) (- 257)) (AND (TOK_FUNCTION TOK_ISNOTNULL (TOK_TABLE_OR_COL cstring1)) (>= (TOK_TABLE_OR_COL cboolean1) 1)))) (LIKE (TOK_TABLE_OR_COL cstring2) 'b')) (AND (>= (TOK_TABLE_OR_COL csmallint) (TOK_TABLE_OR_COL ctinyint)) (TOK_FUNCTION TOK_ISNULL (TOK_TABLE_OR_COL ctimestamp2)))))) (TOK_GROUPBY (TOK_TABLE_OR_COL cboolean1)) (TOK_ORDERBY (TOK_TABSORTCOLNAMEASC (TOK_TABLE_OR_COL cboolean1)))))
+ (TOK_QUERY (TOK_FROM (TOK_TABREF (TOK_TABNAME alltypesorc))) (TOK_INSERT (TOK_DESTINATION (TOK_DIR TOK_TMP_FILE)) (TOK_SELECT (TOK_SELEXPR (TOK_TABLE_OR_COL cboolean1)) (TOK_SELEXPR (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat))) (TOK_SELEXPR (- (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat)))) (TOK_SELEXPR (/ (- 26.28) (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat)))) (TOK_SELEXPR (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (- (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cbigint)) 10.175)) (TOK_SELEXPR (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (% (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cint)) (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat)))) (TOK_SELEXPR (+ 10.175 (- (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat))))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cdouble))) (TOK_SELEXPR (+ (- (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cbigint)) 10.175) (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cbigint))) (TOK_SELEX
PR (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cbigint))) (TOK_SELEXPR (- (+ 10.175 (- (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat)))))) (TOK_SELEXPR (/ 79.553 (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cbigint)))) (TOK_SELEXPR (% (TOK_FUNCTION VAR_SAMP (TOK_TABLE_OR_COL cint)) (/ 79.553 (TOK_FUNCTION VAR_POP (TOK_TABLE_OR_COL cbigint))))) (TOK_SELEXPR (- (+ 10.175 (- (TOK_FUNCTION MAX (TOK_TABLE_OR_COL cfloat)))))) (TOK_SELEXPR (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR (TOK_FUNCTION STDDEV_SAMP (TOK_TABLE_OR_COL ctinyint))) (TOK_SELEXPR (* (- 1.389) (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cbigint)))) (TOK_SELEXPR (- (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cint)) (* (- 1.389) (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cbigint))))) (TOK_SELEXPR (TOK_FUNCTION STDDEV_POP (TOK_TABLE_OR_COL csmallint))) (TOK_SELEXPR (- (- (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cint)) (* (- 1.389) (TOK_FUNCTION MIN (TOK_TABLE_OR_COL cbigint)))))) (TOK_SELEXPR (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cint))) (TOK_SELEXPR
(- (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cint)))) (TOK_SELEXPR (* (TOK_FUNCTION AVG (TOK_TABLE_OR_COL cint)) (TOK_FUNCTION SUM (TOK_TABLE_OR_COL cint))))) (TOK_WHERE (AND (TOK_FUNCTION TOK_ISNOTNULL (TOK_TABLE_OR_COL cboolean1)) (OR (OR (OR (AND (< (TOK_TABLE_OR_COL cdouble) (TOK_TABLE_OR_COL csmallint)) (AND (= (TOK_TABLE_OR_COL cboolean2) (TOK_TABLE_OR_COL cboolean1)) (<= (TOK_TABLE_OR_COL cbigint) (- 863.257)))) (AND (>= (TOK_TABLE_OR_COL cint) (- 257)) (AND (TOK_FUNCTION TOK_ISNOTNULL (TOK_TABLE_OR_COL cstring1)) (>= (TOK_TABLE_OR_COL cboolean1) 1)))) (RLIKE (TOK_TABLE_OR_COL cstring2) 'b')) (AND (>= (TOK_TABLE_OR_COL csmallint) (TOK_TABLE_OR_COL ctinyint)) (TOK_FUNCTION TOK_ISNULL (TOK_TABLE_OR_COL ctimestamp2)))))) (TOK_GROUPBY (TOK_TABLE_OR_COL cboolean1)) (TOK_ORDERBY (TOK_TABSORTCOLNAMEASC (TOK_TABLE_OR_COL cboolean1)))))
STAGE DEPENDENCIES:
Stage-1 is a root stage
@@ -9040,7 +9040,7 @@ STAGE PLANS:
alias: alltypesorc
Filter Operator
predicate:
- expr: (cboolean1 is not null and (((((cdouble < csmallint) and ((cboolean2 = cboolean1) and (cbigint <= (- 863.257)))) or ((cint >= (- 257)) and (cstring1 is not null and (cboolean1 >= 1)))) or (cstring2 like 'b')) or ((csmallint >= ctinyint) and ctimestamp2 is null)))
+ expr: (cboolean1 is not null and (((((cdouble < csmallint) and ((cboolean2 = cboolean1) and (cbigint <= (- 863.257)))) or ((cint >= (- 257)) and (cstring1 is not null and (cboolean1 >= 1)))) or (cstring2 rlike 'b')) or ((csmallint >= ctinyint) and ctimestamp2 is null)))
type: boolean
Vectorized execution: true
Select Operator
@@ -9306,7 +9306,7 @@ WHERE (((cboolean1 IS NOT NULL))
OR ((cint >= -257)
AND ((cstring1 IS NOT NULL)
AND (cboolean1 >= 1)))
- OR (cstring2 LIKE 'b')
+ OR (cstring2 RLIKE 'b')
OR ((csmallint >= ctinyint)
AND (ctimestamp2 IS NULL))))
GROUP BY cboolean1
@@ -9348,7 +9348,7 @@ WHERE (((cboolean1 IS NOT NULL))
OR ((cint >= -257)
AND ((cstring1 IS NOT NULL)
AND (cboolean1 >= 1)))
- OR (cstring2 LIKE 'b')
+ OR (cstring2 RLIKE 'b')
OR ((csmallint >= ctinyint)
AND (ctimestamp2 IS NULL))))
GROUP BY cboolean1