Index: ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java (revision 1579544) +++ ql/src/java/org/apache/hadoop/hive/ql/io/HiveInputFormat.java (working copy) @@ -308,10 +308,6 @@ try { List paths = Utilities.getInputPathsTez(job, mrwork); dirs = paths.toArray(new Path[paths.size()]); - if (dirs.length == 0) { - // if we still don't have any files it's time to fail. - throw new IOException("No input paths specified in job"); - } } catch (Exception e) { throw new IOException("Could not create input files", e); } @@ -373,11 +369,13 @@ currentInputFormatClass = inputFormatClass; } - LOG.info("Generating splits"); - addSplitsForGroup(currentDirs, currentTableScan, newjob, - getInputFormatFromCache(currentInputFormatClass, job), - currentInputFormatClass, currentDirs.size()*(numSplits / dirs.length), - currentTable, result); + if (dirs.length != 0) { + LOG.info("Generating splits"); + addSplitsForGroup(currentDirs, currentTableScan, newjob, + getInputFormatFromCache(currentInputFormatClass, job), + currentInputFormatClass, currentDirs.size()*(numSplits / dirs.length), + currentTable, result); + } LOG.info("number of splits " + result.size()); perfLogger.PerfLogEnd(CLASS_NAME, PerfLogger.GET_SPLITS); Index: ql/src/test/queries/clientpositive/tez_dml.q =================================================================== --- ql/src/test/queries/clientpositive/tez_dml.q (revision 1579544) +++ ql/src/test/queries/clientpositive/tez_dml.q (working copy) @@ -29,6 +29,10 @@ SELECT * FROM even; SELECT * FROM odd; +-- create empty table +CREATE TABLE empty STORED AS orc AS SELECT * FROM tmp_src_part WHERE d = -1000; +SELECT * FROM empty; + -- drop the tables DROP TABLE even; DROP TABLE odd; Index: ql/src/test/results/clientpositive/tez/tez_dml.q.out =================================================================== --- ql/src/test/results/clientpositive/tez/tez_dml.q.out (revision 1579544) +++ ql/src/test/results/clientpositive/tez/tez_dml.q.out (working copy) @@ -1499,6 +1499,41 @@ 169 val_169 403 val_403 97 val_97 +PREHOOK: query: -- create empty table +CREATE TABLE empty STORED AS orc AS SELECT * FROM tmp_src_part WHERE d = -1000 +PREHOOK: type: CREATETABLE_AS_SELECT +PREHOOK: Input: default@tmp_src_part +POSTHOOK: query: -- create empty table +CREATE TABLE empty STORED AS orc AS SELECT * FROM tmp_src_part WHERE d = -1000 +POSTHOOK: type: CREATETABLE_AS_SELECT +POSTHOOK: Input: default@tmp_src_part +POSTHOOK: Output: default@empty +POSTHOOK: Lineage: even.c EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: even.d SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: odd.c EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: odd.d SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: tmp_src_part PARTITION(d=1).c SIMPLE [(tmp_src)tmp_src.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: tmp_src_part PARTITION(d=2).c SIMPLE [(tmp_src)tmp_src.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: tmp_src_part PARTITION(d=3).c SIMPLE [(tmp_src)tmp_src.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: tmp_src_part PARTITION(d=4).c SIMPLE [(tmp_src)tmp_src.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: tmp_src_part PARTITION(d=5).c SIMPLE [(tmp_src)tmp_src.FieldSchema(name:value, type:string, comment:null), ] +PREHOOK: query: SELECT * FROM empty +PREHOOK: type: QUERY +PREHOOK: Input: default@empty +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM empty +POSTHOOK: type: QUERY +POSTHOOK: Input: default@empty +#### A masked pattern was here #### +POSTHOOK: Lineage: even.c EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: even.d SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: odd.c EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: odd.d SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: tmp_src_part PARTITION(d=1).c SIMPLE [(tmp_src)tmp_src.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: tmp_src_part PARTITION(d=2).c SIMPLE [(tmp_src)tmp_src.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: tmp_src_part PARTITION(d=3).c SIMPLE [(tmp_src)tmp_src.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: tmp_src_part PARTITION(d=4).c SIMPLE [(tmp_src)tmp_src.FieldSchema(name:value, type:string, comment:null), ] +POSTHOOK: Lineage: tmp_src_part PARTITION(d=5).c SIMPLE [(tmp_src)tmp_src.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: -- drop the tables DROP TABLE even PREHOOK: type: DROPTABLE