Index: ql/src/test/results/clientpositive/protectmode2.q.out =================================================================== --- ql/src/test/results/clientpositive/protectmode2.q.out (revision 1349582) +++ ql/src/test/results/clientpositive/protectmode2.q.out (working copy) @@ -106,14 +106,40 @@ POSTHOOK: type: ALTERTABLE_PROTECTMODE POSTHOOK: Input: default@tbl2 POSTHOOK: Output: default@tbl2 -PREHOOK: query: desc extended tbl2 +PREHOOK: query: desc formatted tbl2 PREHOOK: type: DESCTABLE -POSTHOOK: query: desc extended tbl2 +POSTHOOK: query: desc formatted tbl2 POSTHOOK: type: DESCTABLE -col string -p string +# col_name data_type comment +col string None + +# Partition Information +# col_name data_type comment + +p string None + +# Detailed Table Information +Database: default #### A masked pattern was here #### +Protect Mode: NO_DROP_CASCADE +Retention: 0 +#### A masked pattern was here #### +Table Type: MANAGED_TABLE +Table Parameters: + PROTECT_MODE NO_DROP_CASCADE +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe +InputFormat: org.apache.hadoop.mapred.TextInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] +Storage Desc Params: + serialization.format 1 PREHOOK: query: alter table tbl2 disable no_drop cascade PREHOOK: type: ALTERTABLE_PROTECTMODE PREHOOK: Input: default@tbl2 @@ -122,6 +148,39 @@ POSTHOOK: type: ALTERTABLE_PROTECTMODE POSTHOOK: Input: default@tbl2 POSTHOOK: Output: default@tbl2 +PREHOOK: query: desc formatted tbl2 +PREHOOK: type: DESCTABLE +POSTHOOK: query: desc formatted tbl2 +POSTHOOK: type: DESCTABLE +# col_name data_type comment + +col string None + +# Partition Information +# col_name data_type comment + +p string None + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Protect Mode: None +Retention: 0 +#### A masked pattern was here #### +Table Type: MANAGED_TABLE +Table Parameters: +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe +InputFormat: org.apache.hadoop.mapred.TextInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] +Storage Desc Params: + serialization.format 1 PREHOOK: query: drop table tbl2 PREHOOK: type: DROPTABLE PREHOOK: Input: default@tbl2 Index: ql/src/test/queries/clientpositive/protectmode2.q =================================================================== --- ql/src/test/queries/clientpositive/protectmode2.q (revision 1349582) +++ ql/src/test/queries/clientpositive/protectmode2.q (working copy) @@ -17,6 +17,7 @@ alter table tbl2 add partition (p='p2'); alter table tbl2 add partition (p='p3'); alter table tbl2 enable no_drop cascade; -desc extended tbl2; +desc formatted tbl2; alter table tbl2 disable no_drop cascade; +desc formatted tbl2; drop table tbl2; Index: ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java (revision 1349582) +++ ql/src/java/org/apache/hadoop/hive/ql/metadata/Partition.java (working copy) @@ -544,7 +544,12 @@ */ public void setProtectMode(ProtectMode protectMode){ Map parameters = tPartition.getParameters(); - parameters.put(ProtectMode.PARAMETER_NAME, protectMode.toString()); + String pm = protectMode.toString(); + if (pm != null) { + parameters.put(ProtectMode.PARAMETER_NAME, pm); + } else { + parameters.remove(ProtectMode.PARAMETER_NAME); + } tPartition.setParameters(parameters); } Index: ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java (revision 1349582) +++ ql/src/java/org/apache/hadoop/hive/ql/metadata/Table.java (working copy) @@ -767,7 +767,12 @@ */ public void setProtectMode(ProtectMode protectMode){ Map parameters = tTable.getParameters(); - parameters.put(ProtectMode.PARAMETER_NAME, protectMode.toString()); + String pm = protectMode.toString(); + if (pm != null) { + parameters.put(ProtectMode.PARAMETER_NAME, pm); + } else { + parameters.remove(ProtectMode.PARAMETER_NAME); + } tTable.setParameters(parameters); }