diff --git ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java index 0ec6e63..974a5d6 100755 --- ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java +++ ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java @@ -280,6 +280,10 @@ protected void init(JobConf job) { Operator op = mrwork.getAliasToWork().get(aliases.get(0)); if ((op != null) && (op instanceof TableScanOperator)) { TableScanOperator tableScan = (TableScanOperator) op; + // push down projections. + ColumnProjectionUtils.appendReadColumns( + newjob, tableScan.getNeededColumnIDs(), tableScan.getNeededColumns()); + // push down filters pushFilters(newjob, tableScan); } } diff --git ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java index f0b5d7a..abdc165 100644 --- ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java +++ ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcInputFormat.java @@ -168,8 +168,7 @@ static void includeColumnRecursive(List types, public static SearchArgument createSarg(List types, Configuration conf) { String serializedPushdown = conf.get(TableScanDesc.FILTER_EXPR_CONF_STR); if (serializedPushdown == null - || (conf.get(ColumnProjectionUtils.READ_COLUMN_NAMES_CONF_STR) == null - && conf.get(serdeConstants.LIST_COLUMNS) == null)) { + || conf.get(ColumnProjectionUtils.READ_COLUMN_NAMES_CONF_STR) == null) { LOG.info("No ORC pushdown predicate"); return null; } @@ -542,15 +541,21 @@ public void run() { int[] filterColumns = null; if (sarg != null) { List sargLeaves = null; - String[] columnNames = conf.get(serdeConstants.LIST_COLUMNS).split(","); - if (columnNames == null) { - columnNames = conf.get(ColumnProjectionUtils.READ_COLUMN_NAMES_CONF_STR).split(","); - } + String[] allColumns = conf.get(serdeConstants.LIST_COLUMNS).split(","); + String[] neededColumns = conf.get(ColumnProjectionUtils.READ_COLUMN_NAMES_CONF_STR).split(","); sargLeaves = sarg.getLeaves(); filterColumns = new int[sargLeaves.size()]; for (int i = 0; i < filterColumns.length; ++i) { String colName = sargLeaves.get(i).getColumnName(); - filterColumns[i] = RecordReaderImpl.findColumns(columnNames, colName); + + // if needed columns does not contain the column specified in filter expression then + // it must be partition column. There will not be columns within ORC file for partitioned + // column, so we can ignore them + if (containsColumn(neededColumns, colName)) { + filterColumns[i] = RecordReaderImpl.findColumns(allColumns, colName); + } else { + filterColumns[i] = -1; + } } Metadata metadata = orcReader.getMetadata(); @@ -609,6 +614,15 @@ public void run() { } } + private boolean containsColumn(String[] neededColumns, String colName) { + for (String col : neededColumns) { + if (colName.equalsIgnoreCase(col)) { + return true; + } + } + return false; + } + private boolean isStripeSatisfyPredicate(StripeStatistics stripeStatistics, SearchArgument sarg, int[] filterColumns) { if (sarg != null && filterColumns != null) { @@ -623,6 +637,12 @@ private boolean isStripeSatisfyPredicate(StripeStatistics stripeStatistics, Object maxValue = getMax(stats); truthValues[pred] = RecordReaderImpl.evaluatePredicateRange(predLeaves.get(pred), minValue, maxValue); + } else { + + // parition column case. + // partition filter will be evaluated by partition pruner so + // we will not evaluate partition filter here. + truthValues[pred] = TruthValue.YES_NO_NULL; } } return sarg.evaluate(truthValues).isNeeded(); diff --git ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcSplitElimination.java ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcSplitElimination.java index 9494a18..e96e2ae 100644 --- ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcSplitElimination.java +++ ql/src/test/org/apache/hadoop/hive/ql/io/orc/TestOrcSplitElimination.java @@ -19,6 +19,7 @@ import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPAnd; import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPEqual; import org.apache.hadoop.hive.ql.udf.generic.GenericUDFOPEqualOrLessThan; +import org.apache.hadoop.hive.serde2.ColumnProjectionUtils; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspectorFactory; import org.apache.hadoop.io.Text; @@ -64,8 +65,11 @@ @Before public void openFileSystem() throws Exception { conf = new JobConf(); + // all columns conf.set("columns", "userid,string1,subtype,decimal1,ts"); conf.set("columns.types", "bigint,string,double,decimal,timestamp"); + // needed columns + conf.set(ColumnProjectionUtils.READ_COLUMN_NAMES_CONF_STR, "userid,subtype"); fs = FileSystem.getLocal(conf); testFilePath = new Path(workDir, "TestOrcFile." + testCaseName.getMethodName() + ".orc"); diff --git ql/src/test/queries/clientpositive/orc_split_elimination.q ql/src/test/queries/clientpositive/orc_split_elimination.q index 112fa3f..54eb23e 100644 --- ql/src/test/queries/clientpositive/orc_split_elimination.q +++ ql/src/test/queries/clientpositive/orc_split_elimination.q @@ -99,3 +99,70 @@ SET hive.optimize.index.filter=true; -- 5 mappers select userid,string1,subtype,decimal1,ts from orc_split_elim where userid<=70 order by userid; SET hive.optimize.index.filter=false; + +-- partitioned table +create table orc_split_elim_part (userid bigint, string1 string, subtype double, decimal1 decimal, ts timestamp) partitioned by (country string, year int) stored as orc; + +alter table orc_split_elim_part add partition(country='us', year=2000); +alter table orc_split_elim_part add partition(country='us', year=2001); + +load data local inpath '../../data/files/orc_split_elim.orc' into table orc_split_elim_part partition(country='us', year=2000); +load data local inpath '../../data/files/orc_split_elim.orc' into table orc_split_elim_part partition(country='us', year=2001); + +-- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us'order by userid; + +SET hive.optimize.index.filter=true; +-- 2 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' order by userid; +SET hive.optimize.index.filter=false; + +-- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and (year=2000 or year=2001) order by userid; + +SET hive.optimize.index.filter=true; +-- 2 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and (year=2000 or year=2001) order by userid; +SET hive.optimize.index.filter=false; + +-- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and year=2000 order by userid; + +SET hive.optimize.index.filter=true; +-- 1 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and year=2000 order by userid; +SET hive.optimize.index.filter=false; + +-- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' order by userid; + +SET hive.optimize.index.filter=true; +-- 4 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' order by userid; +SET hive.optimize.index.filter=false; + +-- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and (year=2000 or year=2001) order by userid; + +SET hive.optimize.index.filter=true; +-- 4 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and (year=2000 or year=2001) order by userid; +SET hive.optimize.index.filter=false; + +-- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and year=2000 order by userid; + +SET hive.optimize.index.filter=true; +-- 2 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and year=2000 order by userid; +SET hive.optimize.index.filter=false; + +-- 0 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='in' order by userid; +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='us' and year=2002 order by userid; + +SET hive.optimize.index.filter=true; +-- 0 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='in' order by userid; +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='us' and year=2002 order by userid; +SET hive.optimize.index.filter=false; diff --git ql/src/test/results/clientpositive/orc_split_elimination.q.out ql/src/test/results/clientpositive/orc_split_elimination.q.out index 3d7a3b6..fcbcdb3 100644 --- ql/src/test/results/clientpositive/orc_split_elimination.q.out +++ ql/src/test/results/clientpositive/orc_split_elimination.q.out @@ -255,3 +255,262 @@ POSTHOOK: Input: default@orc_split_elim 13 bar 80.0 2 1969-12-31 16:00:05 29 cat 8.0 3 1969-12-31 16:00:10 70 dog 1.8 4 1969-12-31 16:00:15 +PREHOOK: query: -- partitioned table +create table orc_split_elim_part (userid bigint, string1 string, subtype double, decimal1 decimal, ts timestamp) partitioned by (country string, year int) stored as orc +PREHOOK: type: CREATETABLE +POSTHOOK: query: -- partitioned table +create table orc_split_elim_part (userid bigint, string1 string, subtype double, decimal1 decimal, ts timestamp) partitioned by (country string, year int) stored as orc +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@orc_split_elim_part +PREHOOK: query: alter table orc_split_elim_part add partition(country='us', year=2000) +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@orc_split_elim_part +POSTHOOK: query: alter table orc_split_elim_part add partition(country='us', year=2000) +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Output: default@orc_split_elim_part@country=us/year=2000 +PREHOOK: query: alter table orc_split_elim_part add partition(country='us', year=2001) +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@orc_split_elim_part +POSTHOOK: query: alter table orc_split_elim_part add partition(country='us', year=2001) +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Output: default@orc_split_elim_part@country=us/year=2001 +PREHOOK: query: load data local inpath '../../data/files/orc_split_elim.orc' into table orc_split_elim_part partition(country='us', year=2000) +PREHOOK: type: LOAD +PREHOOK: Output: default@orc_split_elim_part@country=us/year=2000 +POSTHOOK: query: load data local inpath '../../data/files/orc_split_elim.orc' into table orc_split_elim_part partition(country='us', year=2000) +POSTHOOK: type: LOAD +POSTHOOK: Output: default@orc_split_elim_part@country=us/year=2000 +PREHOOK: query: load data local inpath '../../data/files/orc_split_elim.orc' into table orc_split_elim_part partition(country='us', year=2001) +PREHOOK: type: LOAD +PREHOOK: Output: default@orc_split_elim_part@country=us/year=2001 +POSTHOOK: query: load data local inpath '../../data/files/orc_split_elim.orc' into table orc_split_elim_part partition(country='us', year=2001) +POSTHOOK: type: LOAD +POSTHOOK: Output: default@orc_split_elim_part@country=us/year=2001 +PREHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us'order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +POSTHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us'order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +2 foo 0.8 1 1969-12-31 16:00:00 +PREHOOK: query: -- 2 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +POSTHOOK: query: -- 2 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +2 foo 0.8 1 1969-12-31 16:00:00 +PREHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and (year=2000 or year=2001) order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +POSTHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and (year=2000 or year=2001) order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +2 foo 0.8 1 1969-12-31 16:00:00 +PREHOOK: query: -- 2 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and (year=2000 or year=2001) order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +POSTHOOK: query: -- 2 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and (year=2000 or year=2001) order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +2 foo 0.8 1 1969-12-31 16:00:00 +PREHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and year=2000 order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +#### A masked pattern was here #### +POSTHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and year=2000 order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +PREHOOK: query: -- 1 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and year=2000 order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +#### A masked pattern was here #### +POSTHOOK: query: -- 1 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=2 and country='us' and year=2000 order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +PREHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +POSTHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +2 foo 0.8 1 1969-12-31 16:00:00 +5 eat 0.8 6 1969-12-31 16:00:20 +5 eat 0.8 6 1969-12-31 16:00:20 +PREHOOK: query: -- 4 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +POSTHOOK: query: -- 4 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +2 foo 0.8 1 1969-12-31 16:00:00 +5 eat 0.8 6 1969-12-31 16:00:20 +5 eat 0.8 6 1969-12-31 16:00:20 +PREHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and (year=2000 or year=2001) order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +POSTHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and (year=2000 or year=2001) order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +2 foo 0.8 1 1969-12-31 16:00:00 +5 eat 0.8 6 1969-12-31 16:00:20 +5 eat 0.8 6 1969-12-31 16:00:20 +PREHOOK: query: -- 4 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and (year=2000 or year=2001) order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +POSTHOOK: query: -- 4 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and (year=2000 or year=2001) order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2001 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +2 foo 0.8 1 1969-12-31 16:00:00 +5 eat 0.8 6 1969-12-31 16:00:20 +5 eat 0.8 6 1969-12-31 16:00:20 +PREHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and year=2000 order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +#### A masked pattern was here #### +POSTHOOK: query: -- 10 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and year=2000 order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +5 eat 0.8 6 1969-12-31 16:00:20 +PREHOOK: query: -- 2 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and year=2000 order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +PREHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +#### A masked pattern was here #### +POSTHOOK: query: -- 2 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=5 and country='us' and year=2000 order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +POSTHOOK: Input: default@orc_split_elim_part@country=us/year=2000 +#### A masked pattern was here #### +2 foo 0.8 1 1969-12-31 16:00:00 +5 eat 0.8 6 1969-12-31 16:00:20 +PREHOOK: query: -- 0 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='in' order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +#### A masked pattern was here #### +POSTHOOK: query: -- 0 mapper - no split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='in' order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +#### A masked pattern was here #### +PREHOOK: query: select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='us' and year=2002 order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +#### A masked pattern was here #### +POSTHOOK: query: select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='us' and year=2002 order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +#### A masked pattern was here #### +PREHOOK: query: -- 0 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='in' order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +#### A masked pattern was here #### +POSTHOOK: query: -- 0 mapper - split elimination +select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='in' order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +#### A masked pattern was here #### +PREHOOK: query: select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='us' and year=2002 order by userid +PREHOOK: type: QUERY +PREHOOK: Input: default@orc_split_elim_part +#### A masked pattern was here #### +POSTHOOK: query: select userid,string1,subtype,decimal1,ts from orc_split_elim_part where userid<=70 and country='us' and year=2002 order by userid +POSTHOOK: type: QUERY +POSTHOOK: Input: default@orc_split_elim_part +#### A masked pattern was here ####