Index: ql/src/test/results/clientnegative/protectmode_part_no_drop.q.out =================================================================== --- ql/src/test/results/clientnegative/protectmode_part_no_drop.q.out (revision 8760) +++ ql/src/test/results/clientnegative/protectmode_part_no_drop.q.out (working copy) @@ -1,8 +1,8 @@ -PREHOOK: query: -- protect mode: syntax to change protect mode works and queries are not blocked if a table or partition is not in protect mode +PREHOOK: query: -- protect mode: syntax to change protect mode works and queries to drop partitions are blocked if it is marked no drop drop table tbl_protectmode_no_drop PREHOOK: type: DROPTABLE -POSTHOOK: query: -- protect mode: syntax to change protect mode works and queries are not blocked if a table or partition is not in protect mode +POSTHOOK: query: -- protect mode: syntax to change protect mode works and queries to drop partitions are blocked if it is marked no drop drop table tbl_protectmode_no_drop POSTHOOK: type: DROPTABLE @@ -36,10 +36,10 @@ c2 string p string -Detailed Partition Information Partition(values:[p1], dbName:default, tableName:tbl_protectmode_no_drop, createTime:1282025356, lastAccessTime:0, sd:StorageDescriptor(cols:[FieldSchema(name:c1, type:string, comment:null), FieldSchema(name:c2, type:string, comment:null)], location:pfile:/data/users/njain/hive_commit2/hive_commit2/build/ql/test/data/warehouse/tbl_protectmode_no_drop/p=p1, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), parameters:{last_modified_by=njain, last_modified_time=1282025356, PROTECT_MODE=NO_DROP, transient_lastDdlTime=1282025356}) -PREHOOK: query: drop table tbl_protectmode_no_drop -PREHOOK: type: DROPTABLE +Detailed Partition Information Partition(values:[p1], dbName:default, tableName:tbl_protectmode_no_drop, createTime:1284168328, lastAccessTime:0, sd:StorageDescriptor(cols:[FieldSchema(name:c1, type:string, comment:null), FieldSchema(name:c2, type:string, comment:null)], location:pfile:/data/users/sdong/www/trunk/VENDOR.hive/trunk/build/ql/test/data/warehouse/tbl_protectmode_no_drop/p=p1, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), parameters:{last_modified_by=sdong, last_modified_time=1284168328, PROTECT_MODE=NO_DROP, transient_lastDdlTime=1284168328}) +PREHOOK: query: alter table tbl_protectmode_no_drop drop partition (p='p1') +PREHOOK: type: ALTERTABLE_DROPPARTS PREHOOK: Input: default@tbl_protectmode_no_drop -PREHOOK: Output: default@tbl_protectmode_no_drop -FAILED: Error in metadata: Table tbl_protectmode_no_drop Partitionp=p1 is protected from being dropped +PREHOOK: Output: default@tbl_protectmode_no_drop@p=p1 +FAILED: Error in metadata: Table tbl_protectmode_no_drop Partition p=p1 is protected from being dropped FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask Index: ql/src/test/results/clientpositive/protectmode.q.out =================================================================== --- ql/src/test/results/clientpositive/protectmode.q.out (revision 8760) +++ ql/src/test/results/clientpositive/protectmode.q.out (working copy) @@ -18,19 +18,19 @@ PREHOOK: query: select * from tbl1 PREHOOK: type: QUERY PREHOOK: Input: default@tbl1 -PREHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-47_882_345822340790651676/-mr-10000 +PREHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-45_271_7720769583760985242/-mr-10000 POSTHOOK: query: select * from tbl1 POSTHOOK: type: QUERY POSTHOOK: Input: default@tbl1 -POSTHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-47_882_345822340790651676/-mr-10000 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-45_271_7720769583760985242/-mr-10000 PREHOOK: query: select col from tbl1 PREHOOK: type: QUERY PREHOOK: Input: default@tbl1 -PREHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-48_026_4569994021296856299/-mr-10000 +PREHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-48_100_4279756291218553392/-mr-10000 POSTHOOK: query: select col from tbl1 POSTHOOK: type: QUERY POSTHOOK: Input: default@tbl1 -POSTHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-48_026_4569994021296856299/-mr-10000 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-48_100_4279756291218553392/-mr-10000 PREHOOK: query: alter table tbl1 enable offline PREHOOK: type: ALTERTABLE_PROTECTMODE PREHOOK: Input: default@tbl1 @@ -45,7 +45,7 @@ POSTHOOK: type: DESCTABLE col string -Detailed Table Information Table(tableName:tbl1, dbName:default, owner:njain, createTime:1282030307, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/njain/hive_commit2/hive_commit2/build/ql/test/data/warehouse/tbl1, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[], parameters:{last_modified_by=njain, last_modified_time=1282030311, PROTECT_MODE=OFFLINE, transient_lastDdlTime=1282030311}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) +Detailed Table Information Table(tableName:tbl1, dbName:default, owner:sdong, createTime:1284169845, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/sdong/www/trunk/VENDOR.hive/trunk/build/ql/test/data/warehouse/tbl1, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[], parameters:{last_modified_by=sdong, last_modified_time=1284169850, PROTECT_MODE=OFFLINE, transient_lastDdlTime=1284169850}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) PREHOOK: query: alter table tbl1 disable offline PREHOOK: type: ALTERTABLE_PROTECTMODE PREHOOK: Input: default@tbl1 @@ -60,23 +60,23 @@ POSTHOOK: type: DESCTABLE col string -Detailed Table Information Table(tableName:tbl1, dbName:default, owner:njain, createTime:1282030307, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/njain/hive_commit2/hive_commit2/build/ql/test/data/warehouse/tbl1, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[], parameters:{last_modified_by=njain, last_modified_time=1282030311, transient_lastDdlTime=1282030311}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) +Detailed Table Information Table(tableName:tbl1, dbName:default, owner:sdong, createTime:1284169845, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/sdong/www/trunk/VENDOR.hive/trunk/build/ql/test/data/warehouse/tbl1, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[], parameters:{last_modified_by=sdong, last_modified_time=1284169850, transient_lastDdlTime=1284169850}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) PREHOOK: query: select * from tbl1 PREHOOK: type: QUERY PREHOOK: Input: default@tbl1 -PREHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-51_568_4690377861294328852/-mr-10000 +PREHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-51_085_3662411537890443228/-mr-10000 POSTHOOK: query: select * from tbl1 POSTHOOK: type: QUERY POSTHOOK: Input: default@tbl1 -POSTHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-51_568_4690377861294328852/-mr-10000 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-51_085_3662411537890443228/-mr-10000 PREHOOK: query: select col from tbl1 PREHOOK: type: QUERY PREHOOK: Input: default@tbl1 -PREHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-51_719_2669398894679440279/-mr-10000 +PREHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-53_748_1272887305131483235/-mr-10000 POSTHOOK: query: select col from tbl1 POSTHOOK: type: QUERY POSTHOOK: Input: default@tbl1 -POSTHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-51_719_2669398894679440279/-mr-10000 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-53_748_1272887305131483235/-mr-10000 PREHOOK: query: create table tbl2 (col string) partitioned by (p string) PREHOOK: type: CREATETABLE POSTHOOK: query: create table tbl2 (col string) partitioned by (p string) @@ -96,6 +96,13 @@ POSTHOOK: type: ALTERTABLE_ADDPARTS POSTHOOK: Input: default@tbl2 POSTHOOK: Output: default@tbl2@p=p2 +PREHOOK: query: alter table tbl2 add partition (p='p3') +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@tbl2 +POSTHOOK: query: alter table tbl2 add partition (p='p3') +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@tbl2 +POSTHOOK: Output: default@tbl2@p=p3 PREHOOK: query: alter table tbl2 drop partition (p='not_exist') PREHOOK: type: ALTERTABLE_DROPPARTS PREHOOK: Input: default@tbl2 @@ -104,20 +111,16 @@ POSTHOOK: Input: default@tbl2 PREHOOK: query: select * from tbl2 where p='p1' PREHOOK: type: QUERY -PREHOOK: Input: default@tbl2@p=p1 -PREHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-55_288_5009122664008890670/-mr-10000 +PREHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-57_056_6230499629042513772/-mr-10000 POSTHOOK: query: select * from tbl2 where p='p1' POSTHOOK: type: QUERY -POSTHOOK: Input: default@tbl2@p=p1 -POSTHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-55_288_5009122664008890670/-mr-10000 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-57_056_6230499629042513772/-mr-10000 PREHOOK: query: select * from tbl2 where p='p2' PREHOOK: type: QUERY -PREHOOK: Input: default@tbl2@p=p2 -PREHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-55_468_198651221231416854/-mr-10000 +PREHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-59_806_5549339876425201675/-mr-10000 POSTHOOK: query: select * from tbl2 where p='p2' POSTHOOK: type: QUERY -POSTHOOK: Input: default@tbl2@p=p2 -POSTHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-55_468_198651221231416854/-mr-10000 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-50-59_806_5549339876425201675/-mr-10000 PREHOOK: query: alter table tbl2 partition (p='p1') enable offline PREHOOK: type: ALTERPARTITION_PROTECTMODE PREHOOK: Input: default@tbl2 @@ -135,7 +138,7 @@ col string p string -Detailed Partition Information Partition(values:[p1], dbName:default, tableName:tbl2, createTime:1282030315, lastAccessTime:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/njain/hive_commit2/hive_commit2/build/ql/test/data/warehouse/tbl2/p=p1, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), parameters:{last_modified_by=njain, last_modified_time=1282030315, PROTECT_MODE=OFFLINE, transient_lastDdlTime=1282030315}) +Detailed Partition Information Partition(values:[p1], dbName:default, tableName:tbl2, createTime:1284169856, lastAccessTime:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/sdong/www/trunk/VENDOR.hive/trunk/build/ql/test/data/warehouse/tbl2/p=p1, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), parameters:{last_modified_by=sdong, last_modified_time=1284169862, PROTECT_MODE=OFFLINE, transient_lastDdlTime=1284169862}) PREHOOK: query: alter table tbl2 enable offline PREHOOK: type: ALTERTABLE_PROTECTMODE PREHOOK: Input: default@tbl2 @@ -151,7 +154,7 @@ col string p string -Detailed Table Information Table(tableName:tbl2, dbName:default, owner:njain, createTime:1282030314, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/njain/hive_commit2/hive_commit2/build/ql/test/data/warehouse/tbl2, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[FieldSchema(name:p, type:string, comment:null)], parameters:{last_modified_by=njain, last_modified_time=1282030315, PROTECT_MODE=OFFLINE, transient_lastDdlTime=1282030315}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) +Detailed Table Information Table(tableName:tbl2, dbName:default, owner:sdong, createTime:1284169856, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/sdong/www/trunk/VENDOR.hive/trunk/build/ql/test/data/warehouse/tbl2, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[FieldSchema(name:p, type:string, comment:null)], parameters:{last_modified_by=sdong, last_modified_time=1284169862, PROTECT_MODE=OFFLINE, transient_lastDdlTime=1284169862}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) PREHOOK: query: alter table tbl2 enable no_drop PREHOOK: type: ALTERTABLE_PROTECTMODE PREHOOK: Input: default@tbl2 @@ -167,7 +170,15 @@ col string p string -Detailed Table Information Table(tableName:tbl2, dbName:default, owner:njain, createTime:1282030314, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/njain/hive_commit2/hive_commit2/build/ql/test/data/warehouse/tbl2, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[FieldSchema(name:p, type:string, comment:null)], parameters:{last_modified_by=njain, last_modified_time=1282030316, PROTECT_MODE=OFFLINE,NO_DROP, transient_lastDdlTime=1282030316}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) +Detailed Table Information Table(tableName:tbl2, dbName:default, owner:sdong, createTime:1284169856, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/sdong/www/trunk/VENDOR.hive/trunk/build/ql/test/data/warehouse/tbl2, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[FieldSchema(name:p, type:string, comment:null)], parameters:{last_modified_by=sdong, last_modified_time=1284169862, PROTECT_MODE=OFFLINE,NO_DROP, transient_lastDdlTime=1284169862}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) +PREHOOK: query: alter table tbl2 drop partition (p='p3') +PREHOOK: type: ALTERTABLE_DROPPARTS +PREHOOK: Input: default@tbl2 +PREHOOK: Output: default@tbl2@p=p3 +POSTHOOK: query: alter table tbl2 drop partition (p='p3') +POSTHOOK: type: ALTERTABLE_DROPPARTS +POSTHOOK: Input: default@tbl2 +POSTHOOK: Output: default@tbl2@p=p3 PREHOOK: query: alter table tbl2 disable offline PREHOOK: type: ALTERTABLE_PROTECTMODE PREHOOK: Input: default@tbl2 @@ -183,7 +194,7 @@ col string p string -Detailed Table Information Table(tableName:tbl2, dbName:default, owner:njain, createTime:1282030314, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/njain/hive_commit2/hive_commit2/build/ql/test/data/warehouse/tbl2, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[FieldSchema(name:p, type:string, comment:null)], parameters:{last_modified_by=njain, last_modified_time=1282030316, PROTECT_MODE=NO_DROP, transient_lastDdlTime=1282030316}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) +Detailed Table Information Table(tableName:tbl2, dbName:default, owner:sdong, createTime:1284169856, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/sdong/www/trunk/VENDOR.hive/trunk/build/ql/test/data/warehouse/tbl2, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[FieldSchema(name:p, type:string, comment:null)], parameters:{last_modified_by=sdong, last_modified_time=1284169863, PROTECT_MODE=NO_DROP, transient_lastDdlTime=1284169863}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) PREHOOK: query: alter table tbl2 disable no_drop PREHOOK: type: ALTERTABLE_PROTECTMODE PREHOOK: Input: default@tbl2 @@ -199,23 +210,19 @@ col string p string -Detailed Table Information Table(tableName:tbl2, dbName:default, owner:njain, createTime:1282030314, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/njain/hive_commit2/hive_commit2/build/ql/test/data/warehouse/tbl2, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[FieldSchema(name:p, type:string, comment:null)], parameters:{last_modified_by=njain, last_modified_time=1282030316, transient_lastDdlTime=1282030316}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) +Detailed Table Information Table(tableName:tbl2, dbName:default, owner:sdong, createTime:1284169856, lastAccessTime:0, retention:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/sdong/www/trunk/VENDOR.hive/trunk/build/ql/test/data/warehouse/tbl2, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), partitionKeys:[FieldSchema(name:p, type:string, comment:null)], parameters:{last_modified_by=sdong, last_modified_time=1284169863, transient_lastDdlTime=1284169863}, viewOriginalText:null, viewExpandedText:null, tableType:MANAGED_TABLE) PREHOOK: query: select * from tbl2 where p='p2' PREHOOK: type: QUERY -PREHOOK: Input: default@tbl2@p=p2 -PREHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-56_684_3044267555024428489/-mr-10000 +PREHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-51-03_465_2937228236116308381/-mr-10000 POSTHOOK: query: select * from tbl2 where p='p2' POSTHOOK: type: QUERY -POSTHOOK: Input: default@tbl2@p=p2 -POSTHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-56_684_3044267555024428489/-mr-10000 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-51-03_465_2937228236116308381/-mr-10000 PREHOOK: query: select col from tbl2 where p='p2' PREHOOK: type: QUERY -PREHOOK: Input: default@tbl2@p=p2 -PREHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-56_865_5659313889717699465/-mr-10000 +PREHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-51-06_013_308624887480026341/-mr-10000 POSTHOOK: query: select col from tbl2 where p='p2' POSTHOOK: type: QUERY -POSTHOOK: Input: default@tbl2@p=p2 -POSTHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-31-56_865_5659313889717699465/-mr-10000 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-51-06_013_308624887480026341/-mr-10000 PREHOOK: query: alter table tbl2 partition (p='p1') disable offline PREHOOK: type: ALTERPARTITION_PROTECTMODE PREHOOK: Input: default@tbl2 @@ -233,30 +240,24 @@ col string p string -Detailed Partition Information Partition(values:[p1], dbName:default, tableName:tbl2, createTime:1282030315, lastAccessTime:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/njain/hive_commit2/hive_commit2/build/ql/test/data/warehouse/tbl2/p=p1, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), parameters:{last_modified_by=njain, last_modified_time=1282030320, transient_lastDdlTime=1282030320}) +Detailed Partition Information Partition(values:[p1], dbName:default, tableName:tbl2, createTime:1284169856, lastAccessTime:0, sd:StorageDescriptor(cols:[FieldSchema(name:col, type:string, comment:null)], location:pfile:/data/users/sdong/www/trunk/VENDOR.hive/trunk/build/ql/test/data/warehouse/tbl2/p=p1, inputFormat:org.apache.hadoop.mapred.TextInputFormat, outputFormat:org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat, compressed:false, numBuckets:-1, serdeInfo:SerDeInfo(name:null, serializationLib:org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe, parameters:{serialization.format=1}), bucketCols:[], sortCols:[], parameters:{}), parameters:{last_modified_by=sdong, last_modified_time=1284169868, transient_lastDdlTime=1284169868}) PREHOOK: query: select * from tbl2 where p='p1' PREHOOK: type: QUERY -PREHOOK: Input: default@tbl2@p=p1 -PREHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-32-01_137_2604041819153026498/-mr-10000 +PREHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-51-08_793_2358999407611424061/-mr-10000 POSTHOOK: query: select * from tbl2 where p='p1' POSTHOOK: type: QUERY -POSTHOOK: Input: default@tbl2@p=p1 -POSTHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-32-01_137_2604041819153026498/-mr-10000 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-51-08_793_2358999407611424061/-mr-10000 PREHOOK: query: select col from tbl2 where p='p1' PREHOOK: type: QUERY -PREHOOK: Input: default@tbl2@p=p1 -PREHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-32-01_326_194698586482359849/-mr-10000 +PREHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-51-11_385_5104395404418910409/-mr-10000 POSTHOOK: query: select col from tbl2 where p='p1' POSTHOOK: type: QUERY -POSTHOOK: Input: default@tbl2@p=p1 -POSTHOOK: Output: file:/tmp/njain/hive_2010-08-17_00-32-01_326_194698586482359849/-mr-10000 +POSTHOOK: Output: file:/tmp/sdong/hive_2010-09-10_18-51-11_385_5104395404418910409/-mr-10000 PREHOOK: query: insert overwrite table tbl1 select col from tbl2 where p='p1' PREHOOK: type: QUERY -PREHOOK: Input: default@tbl2@p=p1 PREHOOK: Output: default@tbl1 POSTHOOK: query: insert overwrite table tbl1 select col from tbl2 where p='p1' POSTHOOK: type: QUERY -POSTHOOK: Input: default@tbl2@p=p1 POSTHOOK: Output: default@tbl1 POSTHOOK: Lineage: tbl1.col SIMPLE [(tbl2)tbl2.FieldSchema(name:col, type:string, comment:null), ] PREHOOK: query: insert overwrite table tbl1 select col from tbl1 Index: ql/src/test/queries/clientnegative/protectmode_part_no_drop.q =================================================================== --- ql/src/test/queries/clientnegative/protectmode_part_no_drop.q (revision 8760) +++ ql/src/test/queries/clientnegative/protectmode_part_no_drop.q (working copy) @@ -1,4 +1,4 @@ --- protect mode: syntax to change protect mode works and queries are not blocked if a table or partition is not in protect mode +-- protect mode: syntax to change protect mode works and queries to drop partitions are blocked if it is marked no drop drop table tbl_protectmode_no_drop; @@ -7,4 +7,4 @@ alter table tbl_protectmode_no_drop partition (p='p1') enable no_drop; desc extended tbl_protectmode_no_drop partition (p='p1'); -drop table tbl_protectmode_no_drop; \ No newline at end of file +alter table tbl_protectmode_no_drop drop partition (p='p1'); Index: ql/src/test/queries/clientpositive/protectmode.q =================================================================== --- ql/src/test/queries/clientpositive/protectmode.q (revision 8760) +++ ql/src/test/queries/clientpositive/protectmode.q (working copy) @@ -16,6 +16,7 @@ create table tbl2 (col string) partitioned by (p string); alter table tbl2 add partition (p='p1'); alter table tbl2 add partition (p='p2'); +alter table tbl2 add partition (p='p3'); alter table tbl2 drop partition (p='not_exist'); select * from tbl2 where p='p1'; @@ -29,6 +30,7 @@ alter table tbl2 enable no_drop; desc extended tbl2; +alter table tbl2 drop partition (p='p3'); alter table tbl2 disable offline; desc extended tbl2; Index: ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (revision 8760) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (working copy) @@ -2151,10 +2151,6 @@ Table tbl = null; try { tbl = db.getTable(dropTbl.getTableName()); - if (!tbl.canDrop()) { - throw new HiveException("Table " + tbl.getTableName() + - " is protected from being dropped"); - } } catch (InvalidTableException e) { // drop table is idempotent } @@ -2172,6 +2168,11 @@ } if (dropTbl.getPartSpecs() == null) { + if (tbl != null && !tbl.canDrop()) { + throw new HiveException("Table " + tbl.getTableName() + + " is protected from being dropped"); + } + // We should check that all the partitions of the table can be dropped if (tbl != null && tbl.isPartitioned()) { List listPartitions = db.getPartitions(tbl);