diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/LeafFilterFactory.java b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/LeafFilterFactory.java index a1dbc1a..88a68da 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/LeafFilterFactory.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/LeafFilterFactory.java @@ -22,8 +22,11 @@ import org.apache.parquet.filter2.predicate.FilterApi; import org.apache.parquet.filter2.predicate.FilterPredicate; import org.apache.parquet.io.api.Binary; +import org.apache.parquet.schema.MessageType; +import org.apache.parquet.schema.PrimitiveType; import static org.apache.parquet.filter2.predicate.FilterApi.eq; +import static org.apache.parquet.filter2.predicate.FilterApi.floatColumn; import static org.apache.parquet.filter2.predicate.FilterApi.lt; import static org.apache.parquet.filter2.predicate.FilterApi.ltEq; import static org.apache.parquet.filter2.predicate.FilterApi.binaryColumn; @@ -81,6 +84,25 @@ public FilterPredicate buildPredict(Operator op, Object constant, } } + class FloatFilterPredicateLeafBuilder extends FilterPredicateLeafBuilder { + @Override + public FilterPredicate buildPredict(Operator op, Object constant, String columnName) { + switch (op) { + case LESS_THAN: + return lt(floatColumn(columnName), ((Number) constant).floatValue()); + case IS_NULL: + case EQUALS: + case NULL_SAFE_EQUALS: + return eq(floatColumn(columnName), + (constant == null) ? null : ((Number) constant).floatValue()); + case LESS_THAN_EQUALS: + return ltEq(FilterApi.floatColumn(columnName), ((Number) constant).floatValue()); + default: + throw new RuntimeException("Unknown PredicateLeaf Operator type: " + op); + } + } + } + class DoubleFilterPredicateLeafBuilder extends FilterPredicateLeafBuilder { @Override @@ -146,21 +168,22 @@ public FilterPredicate buildPredict(Operator op, Object constant, * @param type FilterPredicateType * @return */ - public FilterPredicateLeafBuilder getLeafFilterBuilderByType(PredicateLeaf.Type type){ + public FilterPredicateLeafBuilder getLeafFilterBuilderByType(PrimitiveType.PrimitiveTypeName type){ switch (type){ - case INTEGER: + case INT32: return new IntFilterPredicateLeafBuilder(); - case LONG: + case INT64: return new LongFilterPredicateLeafBuilder(); - case FLOAT: // float and double - return new DoubleFilterPredicateLeafBuilder(); - case STRING: // string, char, varchar + case FLOAT: + return new FloatFilterPredicateLeafBuilder(); + case BINARY: + case INT96: + case FIXED_LEN_BYTE_ARRAY: return new BinaryFilterPredicateLeafBuilder(); case BOOLEAN: return new BooleanFilterPredicateLeafBuilder(); - case DATE: - case DECIMAL: - case TIMESTAMP: + case DOUBLE: + return new DoubleFilterPredicateLeafBuilder(); default: LOG.debug("Conversion to Parquet FilterPredicate not supported for " + type); return null; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/read/ParquetFilterPredicateConverter.java b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/read/ParquetFilterPredicateConverter.java index f170026..47fadaa 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/read/ParquetFilterPredicateConverter.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/read/ParquetFilterPredicateConverter.java @@ -27,49 +27,48 @@ import org.apache.parquet.filter2.predicate.FilterApi; import org.apache.parquet.filter2.predicate.FilterPredicate; import org.apache.parquet.schema.MessageType; +import org.apache.parquet.schema.PrimitiveType; import org.apache.parquet.schema.Type; +import java.util.HashMap; import java.util.HashSet; import java.util.List; +import java.util.Map; import java.util.Set; public class ParquetFilterPredicateConverter { private static final Log LOG = LogFactory.getLog(ParquetFilterPredicateConverter.class); /** - * Translate the search argument to the filter predicate parquet uses - * @return translate the sarg into a filter predicate - */ - public static FilterPredicate toFilterPredicate(SearchArgument sarg) { - return toFilterPredicate(sarg, null); - } - - /** * Translate the search argument to the filter predicate parquet uses. It includes * only the columns from the passed schema. * @return translate the sarg into a filter predicate */ public static FilterPredicate toFilterPredicate(SearchArgument sarg, MessageType schema) { Set columns = null; + Map typeMap = new HashMap<>(); if (schema != null) { columns = new HashSet(); for (Type field : schema.getFields()) { columns.add(field.getName()); + if (field.isPrimitive()) { + typeMap.put(field.getName(), field.asPrimitiveType().getPrimitiveTypeName()); + } } } - return translate(sarg.getExpression(), sarg.getLeaves(), columns); + return translate(sarg.getExpression(), sarg.getLeaves(), columns, typeMap); } - private static FilterPredicate translate(ExpressionTree root, List leaves, Set columns) { + private static FilterPredicate translate(ExpressionTree root, List leaves, Set columns, Map typeMap) { FilterPredicate p = null; switch (root.getOperator()) { case OR: for(ExpressionTree child: root.getChildren()) { if (p == null) { - p = translate(child, leaves, columns); + p = translate(child, leaves, columns, typeMap); } else { - FilterPredicate right = translate(child, leaves, columns); + FilterPredicate right = translate(child, leaves, columns, typeMap); // constant means no filter, ignore it when it is null if(right != null){ p = FilterApi.or(p, right); @@ -80,9 +79,9 @@ private static FilterPredicate translate(ExpressionTree root, List leaves = sarg.getLeaves(); assertEquals(9, leaves.size()); - - FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg); + MessageType schema = MessageTypeParser.parseMessageType( + "message test { required binary first_name; required binary greg; required int32 id; }"); + FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg, schema); String[] conditions = new String[]{ "eq(first_name, Binary{\"john\"})", /* first_name = 'john' */ "not(lteq(first_name, Binary{\"greg\"}))", /* 'greg' < first_name */ @@ -842,7 +845,9 @@ public void testExpression2() throws Exception { "lteq(id, 4)" /* id <= 4 */ }; - FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg); + MessageType schema = MessageTypeParser.parseMessageType( + "message test { required binary first_name; required binary greg; required int32 id; }"); + FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg, schema); String expected = String.format("or(or(or(%1$s, %2$s), %3$s), %4$s)", conditions); assertEquals(expected, p.toString()); @@ -1272,7 +1277,9 @@ public void testExpression3() throws Exception { "eq(last_name, Binary{\"smith\"})" /* 'smith' = last_name */ }; - FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg); + MessageType schema = MessageTypeParser.parseMessageType( + "message test { required binary first_name; required binary last_name; required int32 id; }"); + FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg, schema); String expected = String.format("and(and(and(%1$s, %2$s), %3$s), %4$s)", conditions); assertEquals(expected, p.toString()); @@ -1493,7 +1500,9 @@ id in (34,50) */ "or(eq(id, 34), eq(id, 50))" /* id in (34,50) */ }; - FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg); + MessageType schema = MessageTypeParser.parseMessageType( + "message test { required binary first_name; required int32 id; }"); + FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg, schema); String expected = String.format("and(and(%1$s, %2$s), %3$s)", conditions); assertEquals(expected, p.toString()); @@ -1752,7 +1761,9 @@ public void testExpression5() throws Exception { List leaves = sarg.getLeaves(); assertEquals(1, leaves.size()); - FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg); + MessageType schema = MessageTypeParser.parseMessageType( + "message test { required binary first_name; required binary last_name;}"); + FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg, schema); String expected = "and(lt(first_name, Binary{\"greg\"}), not(lteq(first_name, Binary{\"david\"})))"; assertEquals(p.toString(), expected); @@ -2232,7 +2243,9 @@ public void testExpression7() throws Exception { List leaves = sarg.getLeaves(); assertEquals(9, leaves.size()); - FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg); + MessageType schema = MessageTypeParser.parseMessageType( + "message hive_schema{optional int32 id;}"); + FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg, schema); String expected = "and(and(and(and(and(and(and(and(and(and(and(and(and(and(and(and(and(" + "or(or(or(lt(id, 18), lt(id, 10)), lt(id, 13)), lt(id, 16)), " + "or(or(or(lt(id, 18), lt(id, 11)), lt(id, 13)), lt(id, 16))), " + @@ -2387,8 +2400,8 @@ public void testExpression8() throws Exception { (SearchArgumentImpl) ConvertAstToSearchArg.create(getFuncDesc(exprStr)); List leaves = sarg.getLeaves(); assertEquals(0, leaves.size()); - - FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg); + MessageType schema = MessageTypeParser.parseMessageType("message test { required binary first_name; required binary last_name;}"); + FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg, schema); assertNull(p); assertEquals("YES_NO_NULL", @@ -2643,7 +2656,8 @@ public void testExpression10() throws Exception { List leaves = sarg.getLeaves(); assertEquals(1, leaves.size()); - FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg); + MessageType schema = MessageTypeParser.parseMessageType("message test { required int32 id; }"); + FilterPredicate p = ParquetFilterPredicateConverter.toFilterPredicate(sarg, schema); String expected = "and(not(lt(id, 10)), not(lt(id, 10)))"; assertEquals(expected, p.toString()); diff --git a/ql/src/test/queries/clientpositive/parquet_predicate_pushdown.q b/ql/src/test/queries/clientpositive/parquet_predicate_pushdown.q index 08af84f..32767e8 100644 --- a/ql/src/test/queries/clientpositive/parquet_predicate_pushdown.q +++ b/ql/src/test/queries/clientpositive/parquet_predicate_pushdown.q @@ -1,9 +1,292 @@ -SET hive.optimize.index.filter=true; SET hive.optimize.ppd=true; --- Test predicate with partitioned columns -CREATE TABLE part1 (id int, content string) PARTITIONED BY (p string) STORED AS PARQUET; -ALTER TABLE part1 ADD PARTITION (p='p1'); -INSERT INTO TABLE part1 PARTITION (p='p1') VALUES (1, 'a'), (2, 'b'); -SELECT * FROM part1 WHERE p='p1'; -DROP TABLE part1 PURGE; \ No newline at end of file +-- SORT_QUERY_RESULTS +CREATE TABLE tbl_pred(t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + bo boolean, + s string, + ts timestamp, + dec decimal(4,2), + bin binary) +STORED AS PARQUET; + +CREATE TABLE staging(t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + bo boolean, + s string, + ts timestamp, + dec decimal(4,2), + bin binary) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE; + +LOAD DATA LOCAL INPATH '../../data/files/over1k' OVERWRITE INTO TABLE staging; + +INSERT INTO TABLE tbl_pred select * from staging; + +-- no predicate case. the explain plan should not have filter expression in table scan operator + +SELECT SUM(HASH(t)) FROM tbl_pred; + +SET hive.optimize.index.filter=true; +SELECT SUM(HASH(t)) FROM tbl_pred; +SET hive.optimize.index.filter=false; + +EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred; + +SET hive.optimize.index.filter=true; +EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred; +SET hive.optimize.index.filter=false; + +-- all the following queries have predicates which are pushed down to table scan operator if +-- hive.optimize.index.filter is set to true. the explain plan should show filter expression +-- in table scan operator. + +SELECT * FROM tbl_pred WHERE t<2 limit 1; +SET hive.optimize.index.filter=true; +SELECT * FROM tbl_pred WHERE t<2 limit 1; +SET hive.optimize.index.filter=false; + +SELECT * FROM tbl_pred WHERE t>2 limit 1; +SET hive.optimize.index.filter=true; +SELECT * FROM tbl_pred WHERE t>2 limit 1; +SET hive.optimize.index.filter=false; + +SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2; + +SET hive.optimize.index.filter=true; +SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2; +SET hive.optimize.index.filter=false; + +EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2; + +SET hive.optimize.index.filter=true; +EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2; +SET hive.optimize.index.filter=false; + +SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' + ; + +SET hive.optimize.index.filter=true; +SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' + ; +SET hive.optimize.index.filter=false; + +EXPLAIN SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' + ; + +SET hive.optimize.index.filter=true; +EXPLAIN SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' + ; +SET hive.optimize.index.filter=false; + +SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s; + +set hive.optimize.index.filter=true; +SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s; +set hive.optimize.index.filter=false; + +EXPLAIN SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s; + +SET hive.optimize.index.filter=true; +EXPLAIN SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s; +SET hive.optimize.index.filter=false; + +SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3; + +SET hive.optimize.index.filter=true; +SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3; +SET hive.optimize.index.filter=false; + +EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3; + +SET hive.optimize.index.filter=true; +EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3; +SET hive.optimize.index.filter=false; + +SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3; + +SET hive.optimize.index.filter=true; +SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3; +SET hive.optimize.index.filter=false; + +SET hive.optimize.index.filter=true; +SELECT f, i, b FROM tbl_pred + WHERE f IS NOT NULL + AND f < 123.2 + AND f > 1.92 + AND f >= 9.99 + AND f BETWEEN 1.92 AND 123.2 + AND i IS NOT NULL + AND i < 67627 + AND i > 60627 + AND i >= 60626 + AND i BETWEEN 60626 AND 67627 + AND b IS NOT NULL + AND b < 4294967861 + AND b > 4294967261 + AND b >= 4294967260 + AND b BETWEEN 4294967261 AND 4294967861 + SORT BY f DESC + LIMIT 3; +SET hive.optimize.index.filter=false; + +EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3; + +SET hive.optimize.index.filter=true; +EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3; +SET hive.optimize.index.filter=false; + + +SET hive.optimize.index.filter=true; +EXPLAIN SELECT f, i, b FROM tbl_pred + WHERE f IS NOT NULL + AND f < 123.2 + AND f > 1.92 + AND f >= 9.99 + AND f BETWEEN 1.92 AND 123.2 + AND i IS NOT NULL + AND i < 67627 + AND i > 60627 + AND i >= 60626 + AND i BETWEEN 60626 AND 67627 + AND b IS NOT NULL + AND b < 4294967861 + AND b > 4294967261 + AND b >= 4294967260 + AND b BETWEEN 4294967261 AND 4294967861 + SORT BY f DESC + LIMIT 3; +SET hive.optimize.index.filter=false; \ No newline at end of file diff --git a/ql/src/test/results/clientpositive/parquet_predicate_pushdown.q.out b/ql/src/test/results/clientpositive/parquet_predicate_pushdown.q.out index 4186618..ac3ef5c 100644 --- a/ql/src/test/results/clientpositive/parquet_predicate_pushdown.q.out +++ b/ql/src/test/results/clientpositive/parquet_predicate_pushdown.q.out @@ -1,47 +1,1270 @@ -PREHOOK: query: -- Test predicate with partitioned columns -CREATE TABLE part1 (id int, content string) PARTITIONED BY (p string) STORED AS PARQUET +PREHOOK: query: -- SORT_QUERY_RESULTS +CREATE TABLE tbl_pred(t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + bo boolean, + s string, + ts timestamp, + dec decimal(4,2), + bin binary) +STORED AS PARQUET PREHOOK: type: CREATETABLE PREHOOK: Output: database:default -PREHOOK: Output: default@part1 -POSTHOOK: query: -- Test predicate with partitioned columns -CREATE TABLE part1 (id int, content string) PARTITIONED BY (p string) STORED AS PARQUET +PREHOOK: Output: default@tbl_pred +POSTHOOK: query: -- SORT_QUERY_RESULTS +CREATE TABLE tbl_pred(t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + bo boolean, + s string, + ts timestamp, + dec decimal(4,2), + bin binary) +STORED AS PARQUET POSTHOOK: type: CREATETABLE POSTHOOK: Output: database:default -POSTHOOK: Output: default@part1 -PREHOOK: query: ALTER TABLE part1 ADD PARTITION (p='p1') -PREHOOK: type: ALTERTABLE_ADDPARTS -PREHOOK: Output: default@part1 -POSTHOOK: query: ALTER TABLE part1 ADD PARTITION (p='p1') -POSTHOOK: type: ALTERTABLE_ADDPARTS -POSTHOOK: Output: default@part1 -POSTHOOK: Output: default@part1@p=p1 -PREHOOK: query: INSERT INTO TABLE part1 PARTITION (p='p1') VALUES (1, 'a'), (2, 'b') -PREHOOK: type: QUERY -PREHOOK: Input: default@values__tmp__table__1 -PREHOOK: Output: default@part1@p=p1 -POSTHOOK: query: INSERT INTO TABLE part1 PARTITION (p='p1') VALUES (1, 'a'), (2, 'b') -POSTHOOK: type: QUERY -POSTHOOK: Input: default@values__tmp__table__1 -POSTHOOK: Output: default@part1@p=p1 -POSTHOOK: Lineage: part1 PARTITION(p=p1).content SIMPLE [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col2, type:string, comment:), ] -POSTHOOK: Lineage: part1 PARTITION(p=p1).id EXPRESSION [(values__tmp__table__1)values__tmp__table__1.FieldSchema(name:tmp_values_col1, type:string, comment:), ] -PREHOOK: query: SELECT * FROM part1 WHERE p='p1' -PREHOOK: type: QUERY -PREHOOK: Input: default@part1 -PREHOOK: Input: default@part1@p=p1 -#### A masked pattern was here #### -POSTHOOK: query: SELECT * FROM part1 WHERE p='p1' -POSTHOOK: type: QUERY -POSTHOOK: Input: default@part1 -POSTHOOK: Input: default@part1@p=p1 -#### A masked pattern was here #### -1 a p1 -2 b p1 -PREHOOK: query: DROP TABLE part1 PURGE -PREHOOK: type: DROPTABLE -PREHOOK: Input: default@part1 -PREHOOK: Output: default@part1 -POSTHOOK: query: DROP TABLE part1 PURGE -POSTHOOK: type: DROPTABLE -POSTHOOK: Input: default@part1 -POSTHOOK: Output: default@part1 +POSTHOOK: Output: default@tbl_pred +PREHOOK: query: CREATE TABLE staging(t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + bo boolean, + s string, + ts timestamp, + dec decimal(4,2), + bin binary) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@staging +POSTHOOK: query: CREATE TABLE staging(t tinyint, + si smallint, + i int, + b bigint, + f float, + d double, + bo boolean, + s string, + ts timestamp, + dec decimal(4,2), + bin binary) +ROW FORMAT DELIMITED FIELDS TERMINATED BY '|' +STORED AS TEXTFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@staging +PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/over1k' OVERWRITE INTO TABLE staging +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@staging +POSTHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/over1k' OVERWRITE INTO TABLE staging +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@staging +PREHOOK: query: INSERT INTO TABLE tbl_pred select * from staging +PREHOOK: type: QUERY +PREHOOK: Input: default@staging +PREHOOK: Output: default@tbl_pred +POSTHOOK: query: INSERT INTO TABLE tbl_pred select * from staging +POSTHOOK: type: QUERY +POSTHOOK: Input: default@staging +POSTHOOK: Output: default@tbl_pred +POSTHOOK: Lineage: tbl_pred.b SIMPLE [(staging)staging.FieldSchema(name:b, type:bigint, comment:null), ] +POSTHOOK: Lineage: tbl_pred.bin SIMPLE [(staging)staging.FieldSchema(name:bin, type:binary, comment:null), ] +POSTHOOK: Lineage: tbl_pred.bo SIMPLE [(staging)staging.FieldSchema(name:bo, type:boolean, comment:null), ] +POSTHOOK: Lineage: tbl_pred.d SIMPLE [(staging)staging.FieldSchema(name:d, type:double, comment:null), ] +POSTHOOK: Lineage: tbl_pred.dec SIMPLE [(staging)staging.FieldSchema(name:dec, type:decimal(4,2), comment:null), ] +POSTHOOK: Lineage: tbl_pred.f SIMPLE [(staging)staging.FieldSchema(name:f, type:float, comment:null), ] +POSTHOOK: Lineage: tbl_pred.i SIMPLE [(staging)staging.FieldSchema(name:i, type:int, comment:null), ] +POSTHOOK: Lineage: tbl_pred.s SIMPLE [(staging)staging.FieldSchema(name:s, type:string, comment:null), ] +POSTHOOK: Lineage: tbl_pred.si SIMPLE [(staging)staging.FieldSchema(name:si, type:smallint, comment:null), ] +POSTHOOK: Lineage: tbl_pred.t SIMPLE [(staging)staging.FieldSchema(name:t, type:tinyint, comment:null), ] +POSTHOOK: Lineage: tbl_pred.ts SIMPLE [(staging)staging.FieldSchema(name:ts, type:timestamp, comment:null), ] +PREHOOK: query: -- no predicate case. the explain plan should not have filter expression in table scan operator + +SELECT SUM(HASH(t)) FROM tbl_pred +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: -- no predicate case. the explain plan should not have filter expression in table scan operator + +SELECT SUM(HASH(t)) FROM tbl_pred +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +62430 +PREHOOK: query: SELECT SUM(HASH(t)) FROM tbl_pred +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT SUM(HASH(t)) FROM tbl_pred +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +62430 +PREHOOK: query: EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: hash(t) (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: sum(_col0) + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + sort order: + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: sum(VALUE._col0) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: hash(t) (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: sum(_col0) + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + sort order: + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: sum(VALUE._col0) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: -- all the following queries have predicates which are pushed down to table scan operator if +-- hive.optimize.index.filter is set to true. the explain plan should show filter expression +-- in table scan operator. + +SELECT * FROM tbl_pred WHERE t<2 limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: -- all the following queries have predicates which are pushed down to table scan operator if +-- hive.optimize.index.filter is set to true. the explain plan should show filter expression +-- in table scan operator. + +SELECT * FROM tbl_pred WHERE t<2 limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +-3 467 65575 4294967437 81.64 23.53 true tom hernandez 2013-03-01 09:11:58.703188 32.85 study skills +PREHOOK: query: SELECT * FROM tbl_pred WHERE t<2 limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM tbl_pred WHERE t<2 limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +-3 467 65575 4294967437 81.64 23.53 true tom hernandez 2013-03-01 09:11:58.703188 32.85 study skills +PREHOOK: query: SELECT * FROM tbl_pred WHERE t>2 limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM tbl_pred WHERE t>2 limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +124 336 65664 4294967435 74.72 42.47 true bob davidson 2013-03-01 09:11:58.703302 45.4 yard duty +PREHOOK: query: SELECT * FROM tbl_pred WHERE t>2 limit 1 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM tbl_pred WHERE t>2 limit 1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +124 336 65664 4294967435 74.72 42.47 true bob davidson 2013-03-01 09:11:58.703302 45.4 yard duty +PREHOOK: query: SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +-8 +PREHOOK: query: SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +-8 +PREHOOK: query: EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: ((t < 0) and (UDFToInteger(t) > -2)) (type: boolean) + Statistics: Num rows: 116 Data size: 1276 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: hash(t) (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 116 Data size: 1276 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: sum(_col0) + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + sort order: + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: sum(VALUE._col0) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT SUM(HASH(t)) FROM tbl_pred + WHERE t IS NOT NULL + AND t < 0 + AND t > -2 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + filterExpr: ((t < 0) and (UDFToInteger(t) > -2)) (type: boolean) + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: ((t < 0) and (UDFToInteger(t) > -2)) (type: boolean) + Statistics: Num rows: 116 Data size: 1276 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: hash(t) (type: int) + outputColumnNames: _col0 + Statistics: Num rows: 116 Data size: 1276 Basic stats: COMPLETE Column stats: NONE + Group By Operator + aggregations: sum(_col0) + mode: hash + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + sort order: + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: bigint) + Reduce Operator Tree: + Group By Operator + aggregations: sum(VALUE._col0) + mode: mergepartial + outputColumnNames: _col0 + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 8 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +-1 bob laertes +-1 bob young +PREHOOK: query: SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +-1 bob laertes +-1 bob young +PREHOOK: query: EXPLAIN SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (((t = -1) and s is not null) and (s like 'bob%')) (type: boolean) + Statistics: Num rows: 131 Data size: 1441 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: -1 (type: tinyint), s (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 131 Data size: 1441 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 131 Data size: 1441 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: EXPLAIN SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT t, s FROM tbl_pred + WHERE t <=> -1 + AND s IS NOT NULL + AND s LIKE 'bob%' +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + filterExpr: (((t = -1) and s is not null) and (s like 'bob%')) (type: boolean) + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (((t = -1) and s is not null) and (s like 'bob%')) (type: boolean) + Statistics: Num rows: 131 Data size: 1441 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: -1 (type: tinyint), s (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 131 Data size: 1441 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 131 Data size: 1441 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +26 bob ovid +26 bob quirinius +27 bob ovid +PREHOOK: query: SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +26 bob ovid +26 bob quirinius +27 bob ovid +PREHOOK: query: EXPLAIN SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (((s is not null and (s like 'bob%')) and (not (t) IN (-1, -2, -3))) and t BETWEEN 25 AND 30) (type: boolean) + Statistics: Num rows: 65 Data size: 715 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: t (type: tinyint), s (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 65 Data size: 715 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: tinyint), _col1 (type: string) + sort order: ++ + Statistics: Num rows: 65 Data size: 715 Basic stats: COMPLETE Column stats: NONE + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: tinyint), KEY.reducesinkkey1 (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 65 Data size: 715 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 65 Data size: 715 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: EXPLAIN SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT t, s FROM tbl_pred + WHERE s IS NOT NULL + AND s LIKE 'bob%' + AND t NOT IN (-1,-2,-3) + AND t BETWEEN 25 AND 30 + SORT BY t,s +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + filterExpr: (((s is not null and (s like 'bob%')) and (not (t) IN (-1, -2, -3))) and t BETWEEN 25 AND 30) (type: boolean) + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (((s is not null and (s like 'bob%')) and (not (t) IN (-1, -2, -3))) and t BETWEEN 25 AND 30) (type: boolean) + Statistics: Num rows: 65 Data size: 715 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: t (type: tinyint), s (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 65 Data size: 715 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: tinyint), _col1 (type: string) + sort order: ++ + Statistics: Num rows: 65 Data size: 715 Basic stats: COMPLETE Column stats: NONE + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: tinyint), KEY.reducesinkkey1 (type: string) + outputColumnNames: _col0, _col1 + Statistics: Num rows: 65 Data size: 715 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 65 Data size: 715 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: -1 + Processor Tree: + ListSink + +PREHOOK: query: SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +101 327 11.48 gabriella ellison +15 334 11.12 jessica robinson +7 320 11.54 bob ellison +PREHOOK: query: SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +101 327 11.48 gabriella ellison +15 334 11.12 jessica robinson +7 320 11.54 bob ellison +PREHOOK: query: EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (((((((d >= 10.0) and (d < 12.0)) and t is not null) and (s like '%son')) and (not (s like '%car%'))) and (t > 0)) and si BETWEEN 300 AND 400) (type: boolean) + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: t (type: tinyint), si (type: smallint), d (type: double), s (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col3 (type: string) + sort order: - + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: tinyint), _col1 (type: smallint), _col2 (type: double) + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: tinyint), VALUE._col1 (type: smallint), VALUE._col2 (type: double), KEY.reducesinkkey0 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + Limit + Number of rows: 3 + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: 3 + Processor Tree: + ListSink + +PREHOOK: query: EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + ORDER BY s DESC + LIMIT 3 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-0 depends on stages: Stage-1 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + filterExpr: (((((((d >= 10.0) and (d < 12.0)) and t is not null) and (s like '%son')) and (not (s like '%car%'))) and (t > 0)) and si BETWEEN 300 AND 400) (type: boolean) + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (((((((d >= 10.0) and (d < 12.0)) and t is not null) and (s like '%son')) and (not (s like '%car%'))) and (t > 0)) and si BETWEEN 300 AND 400) (type: boolean) + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: t (type: tinyint), si (type: smallint), d (type: double), s (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col3 (type: string) + sort order: - + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: tinyint), _col1 (type: smallint), _col2 (type: double) + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: tinyint), VALUE._col1 (type: smallint), VALUE._col2 (type: double), KEY.reducesinkkey0 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + Limit + Number of rows: 3 + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 2 Data size: 22 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: 3 + Processor Tree: + ListSink + +PREHOOK: query: SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +15 334 11.12 jessica robinson +PREHOOK: query: SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +15 334 11.12 jessica robinson +PREHOOK: query: SELECT f, i, b FROM tbl_pred + WHERE f IS NOT NULL + AND f < 123.2 + AND f > 1.92 + AND f >= 9.99 + AND f BETWEEN 1.92 AND 123.2 + AND i IS NOT NULL + AND i < 67627 + AND i > 60627 + AND i >= 60626 + AND i BETWEEN 60626 AND 67627 + AND b IS NOT NULL + AND b < 4294967861 + AND b > 4294967261 + AND b >= 4294967260 + AND b BETWEEN 4294967261 AND 4294967861 + SORT BY f DESC + LIMIT 3 +PREHOOK: type: QUERY +PREHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +POSTHOOK: query: SELECT f, i, b FROM tbl_pred + WHERE f IS NOT NULL + AND f < 123.2 + AND f > 1.92 + AND f >= 9.99 + AND f BETWEEN 1.92 AND 123.2 + AND i IS NOT NULL + AND i < 67627 + AND i > 60627 + AND i >= 60626 + AND i BETWEEN 60626 AND 67627 + AND b IS NOT NULL + AND b < 4294967861 + AND b > 4294967261 + AND b >= 4294967260 + AND b BETWEEN 4294967261 AND 4294967861 + SORT BY f DESC + LIMIT 3 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@tbl_pred +#### A masked pattern was here #### +99.68 65658 4294967503 +99.91 65763 4294967324 +99.92 65661 4294967404 +PREHOOK: query: EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (((((((((t > 10) and (t <> 101)) and (d >= 10.0)) and (d < 12.0)) and t is not null) and (s like '%son')) and (not (s like '%car%'))) and (t > 0)) and si BETWEEN 300 AND 400) (type: boolean) + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: t (type: tinyint), si (type: smallint), d (type: double), s (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col3 (type: string) + sort order: - + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: tinyint), _col1 (type: smallint), _col2 (type: double) + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: tinyint), VALUE._col1 (type: smallint), VALUE._col2 (type: double), KEY.reducesinkkey0 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Limit + Number of rows: 3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + Reduce Output Operator + key expressions: _col3 (type: string) + sort order: - + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: tinyint), _col1 (type: smallint), _col2 (type: double) + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: tinyint), VALUE._col1 (type: smallint), VALUE._col2 (type: double), KEY.reducesinkkey0 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Limit + Number of rows: 3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: 3 + Processor Tree: + ListSink + +PREHOOK: query: EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT t, si, d, s FROM tbl_pred + WHERE t > 10 + AND t <> 101 + AND d >= ROUND(9.99) + AND d < 12 + AND t IS NOT NULL + AND s LIKE '%son' + AND s NOT LIKE '%car%' + AND t > 0 + AND si BETWEEN 300 AND 400 + SORT BY s DESC + LIMIT 3 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + filterExpr: (((((((((t > 10) and (t <> 101)) and (d >= 10.0)) and (d < 12.0)) and t is not null) and (s like '%son')) and (not (s like '%car%'))) and (t > 0)) and si BETWEEN 300 AND 400) (type: boolean) + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: (((((((((t > 10) and (t <> 101)) and (d >= 10.0)) and (d < 12.0)) and t is not null) and (s like '%son')) and (not (s like '%car%'))) and (t > 0)) and si BETWEEN 300 AND 400) (type: boolean) + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: t (type: tinyint), si (type: smallint), d (type: double), s (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col3 (type: string) + sort order: - + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: tinyint), _col1 (type: smallint), _col2 (type: double) + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: tinyint), VALUE._col1 (type: smallint), VALUE._col2 (type: double), KEY.reducesinkkey0 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Limit + Number of rows: 3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + Reduce Output Operator + key expressions: _col3 (type: string) + sort order: - + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + value expressions: _col0 (type: tinyint), _col1 (type: smallint), _col2 (type: double) + Reduce Operator Tree: + Select Operator + expressions: VALUE._col0 (type: tinyint), VALUE._col1 (type: smallint), VALUE._col2 (type: double), KEY.reducesinkkey0 (type: string) + outputColumnNames: _col0, _col1, _col2, _col3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Limit + Number of rows: 3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: 3 + Processor Tree: + ListSink + +PREHOOK: query: EXPLAIN SELECT f, i, b FROM tbl_pred + WHERE f IS NOT NULL + AND f < 123.2 + AND f > 1.92 + AND f >= 9.99 + AND f BETWEEN 1.92 AND 123.2 + AND i IS NOT NULL + AND i < 67627 + AND i > 60627 + AND i >= 60626 + AND i BETWEEN 60626 AND 67627 + AND b IS NOT NULL + AND b < 4294967861 + AND b > 4294967261 + AND b >= 4294967260 + AND b BETWEEN 4294967261 AND 4294967861 + SORT BY f DESC + LIMIT 3 +PREHOOK: type: QUERY +POSTHOOK: query: EXPLAIN SELECT f, i, b FROM tbl_pred + WHERE f IS NOT NULL + AND f < 123.2 + AND f > 1.92 + AND f >= 9.99 + AND f BETWEEN 1.92 AND 123.2 + AND i IS NOT NULL + AND i < 67627 + AND i > 60627 + AND i >= 60626 + AND i BETWEEN 60626 AND 67627 + AND b IS NOT NULL + AND b < 4294967861 + AND b > 4294967261 + AND b >= 4294967260 + AND b BETWEEN 4294967261 AND 4294967861 + SORT BY f DESC + LIMIT 3 +POSTHOOK: type: QUERY +STAGE DEPENDENCIES: + Stage-1 is a root stage + Stage-2 depends on stages: Stage-1 + Stage-0 depends on stages: Stage-2 + +STAGE PLANS: + Stage: Stage-1 + Map Reduce + Map Operator Tree: + TableScan + alias: tbl_pred + filterExpr: ((((((((((((((f < 123.2) and (f > 1.92)) and (f >= 9.99)) and f BETWEEN 1.92 AND 123.2) and i is not null) and (i < 67627)) and (i > 60627)) and (i >= 60626)) and i BETWEEN 60626 AND 67627) and b is not null) and (b < 4294967861)) and (b > 4294967261)) and (b >= 4294967260)) and b BETWEEN 4294967261 AND 4294967861) (type: boolean) + Statistics: Num rows: 1049 Data size: 11539 Basic stats: COMPLETE Column stats: NONE + Filter Operator + predicate: ((((((((((((((f < 123.2) and (f > 1.92)) and (f >= 9.99)) and f BETWEEN 1.92 AND 123.2) and i is not null) and (i < 67627)) and (i > 60627)) and (i >= 60626)) and i BETWEEN 60626 AND 67627) and b is not null) and (b < 4294967861)) and (b > 4294967261)) and (b >= 4294967260)) and b BETWEEN 4294967261 AND 4294967861) (type: boolean) + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Select Operator + expressions: f (type: float), i (type: int), b (type: bigint) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Reduce Output Operator + key expressions: _col0 (type: float) + sort order: - + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: int), _col2 (type: bigint) + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: float), VALUE._col0 (type: int), VALUE._col1 (type: bigint) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Limit + Number of rows: 3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + table: + input format: org.apache.hadoop.mapred.SequenceFileInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveSequenceFileOutputFormat + serde: org.apache.hadoop.hive.serde2.lazybinary.LazyBinarySerDe + + Stage: Stage-2 + Map Reduce + Map Operator Tree: + TableScan + Reduce Output Operator + key expressions: _col0 (type: float) + sort order: - + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + value expressions: _col1 (type: int), _col2 (type: bigint) + Reduce Operator Tree: + Select Operator + expressions: KEY.reducesinkkey0 (type: float), VALUE._col0 (type: int), VALUE._col1 (type: bigint) + outputColumnNames: _col0, _col1, _col2 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + Limit + Number of rows: 3 + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + File Output Operator + compressed: false + Statistics: Num rows: 1 Data size: 11 Basic stats: COMPLETE Column stats: NONE + table: + input format: org.apache.hadoop.mapred.TextInputFormat + output format: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat + serde: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe + + Stage: Stage-0 + Fetch Operator + limit: 3 + Processor Tree: + ListSink +