Index: ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java (revision 6962) +++ ql/src/java/org/apache/hadoop/hive/ql/optimizer/GenMapRedUtils.java (working copy) @@ -540,12 +540,7 @@ parts.addAll(partsList.getUnknownPartns()); PartitionDesc aliasPartnDesc = null; try { - if (parts.isEmpty()) { - if (!partsList.getDeniedPartns().isEmpty()) { - aliasPartnDesc = Utilities.getPartitionDesc(partsList - .getDeniedPartns().iterator().next()); - } - } else { + if (!parts.isEmpty()) { aliasPartnDesc = Utilities.getPartitionDesc(parts.iterator().next()); } } catch (HiveException e) { Index: ql/src/test/queries/clientpositive/diff_part_input_formats.q =================================================================== --- ql/src/test/queries/clientpositive/diff_part_input_formats.q (revision 0) +++ ql/src/test/queries/clientpositive/diff_part_input_formats.q (revision 0) @@ -0,0 +1,8 @@ +-- Tests the case where a table is changed from sequence file to a RC file, +-- resulting in partitions in both file formats. If no valid partitions are +-- selected, then it should still use RC file for reading the dummy partition. +CREATE TABLE part_test (key STRING, value STRING) PARTITIONED BY (ds STRING) STORED AS SEQUENCEFILE; +ALTER TABLE part_test ADD PARTITION(ds='1'); +ALTER TABLE part_test SET FILEFORMAT RCFILE; +ALTER TABLE part_test ADD PARTITION(ds='2'); +SELECT count(1) FROM part_test WHERE ds='3'; \ No newline at end of file Index: ql/src/test/results/clientpositive/diff_part_input_formats.q.out =================================================================== --- ql/src/test/results/clientpositive/diff_part_input_formats.q.out (revision 0) +++ ql/src/test/results/clientpositive/diff_part_input_formats.q.out (revision 0) @@ -0,0 +1,34 @@ +PREHOOK: query: -- Tests the case where a table is changed from sequence file to a RC file, +-- resulting in partitions in both file formats. If no valid partitions are +-- selected, then it should still use RC file for reading the dummy partition. +CREATE TABLE part_test (key STRING, value STRING) PARTITIONED BY (ds STRING) STORED AS SEQUENCEFILE +PREHOOK: type: CREATETABLE +POSTHOOK: query: -- Tests the case where a table is changed from sequence file to a RC file, +-- resulting in partitions in both file formats. If no valid partitions are +-- selected, then it should still use RC file for reading the dummy partition. +CREATE TABLE part_test (key STRING, value STRING) PARTITIONED BY (ds STRING) STORED AS SEQUENCEFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@part_test +PREHOOK: query: ALTER TABLE part_test ADD PARTITION(ds='1') +PREHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: query: ALTER TABLE part_test ADD PARTITION(ds='1') +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Output: default@part_test@ds=1 +PREHOOK: query: ALTER TABLE part_test SET FILEFORMAT RCFILE +PREHOOK: type: null +POSTHOOK: query: ALTER TABLE part_test SET FILEFORMAT RCFILE +POSTHOOK: type: null +POSTHOOK: Input: default@part_test +POSTHOOK: Output: default@part_test +PREHOOK: query: ALTER TABLE part_test ADD PARTITION(ds='2') +PREHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: query: ALTER TABLE part_test ADD PARTITION(ds='2') +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Output: default@part_test@ds=2 +PREHOOK: query: SELECT count(1) FROM part_test WHERE ds='3' +PREHOOK: type: QUERY +PREHOOK: Output: file:/data/users/pyang/task/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-06-14_20-11-00_664_4677730353646495429/10000 +POSTHOOK: query: SELECT count(1) FROM part_test WHERE ds='3' +POSTHOOK: type: QUERY +POSTHOOK: Output: file:/data/users/pyang/task/trunk/VENDOR.hive/trunk/build/ql/scratchdir/hive_2010-06-14_20-11-00_664_4677730353646495429/10000 +0