Index: ql/src/test/results/clientnegative/default_partition_name.q.out =================================================================== --- ql/src/test/results/clientnegative/default_partition_name.q.out (revision 0) +++ ql/src/test/results/clientnegative/default_partition_name.q.out (revision 0) @@ -0,0 +1,6 @@ +PREHOOK: query: create table default_partition_name (key int, value string) partitioned by (ds string) +PREHOOK: type: CREATETABLE +POSTHOOK: query: create table default_partition_name (key int, value string) partitioned by (ds string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@default_partition_name +FAILED: Error in semantic analysis: Partition value contains a reserved substring (User value: __HIVE_DEFAULT_PARTITION__ Reserved substring: __HIVE_DEFAULT_PARTITION__) Index: ql/src/test/results/clientpositive/default_partition_name.q.out =================================================================== --- ql/src/test/results/clientpositive/default_partition_name.q.out (revision 0) +++ ql/src/test/results/clientpositive/default_partition_name.q.out (revision 0) @@ -0,0 +1,17 @@ +PREHOOK: query: create table default_partition_name (key int, value string) partitioned by (ds string) +PREHOOK: type: CREATETABLE +POSTHOOK: query: create table default_partition_name (key int, value string) partitioned by (ds string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: default@default_partition_name +PREHOOK: query: alter table default_partition_name add partition(ds='__HIVE_DEFAULT_PARTITION__') +PREHOOK: type: ALTERTABLE_ADDPARTS +PREHOOK: Input: default@default_partition_name +POSTHOOK: query: alter table default_partition_name add partition(ds='__HIVE_DEFAULT_PARTITION__') +POSTHOOK: type: ALTERTABLE_ADDPARTS +POSTHOOK: Input: default@default_partition_name +POSTHOOK: Output: default@default_partition_name@ds=__HIVE_DEFAULT_PARTITION__ +PREHOOK: query: show partitions default_partition_name +PREHOOK: type: SHOWPARTITIONS +POSTHOOK: query: show partitions default_partition_name +POSTHOOK: type: SHOWPARTITIONS +ds=__HIVE_DEFAULT_PARTITION__ Index: ql/src/test/queries/clientnegative/default_partition_name.q =================================================================== --- ql/src/test/queries/clientnegative/default_partition_name.q (revision 0) +++ ql/src/test/queries/clientnegative/default_partition_name.q (revision 0) @@ -0,0 +1,3 @@ +create table default_partition_name (key int, value string) partitioned by (ds string); + +alter table default_partition_name add partition(ds='__HIVE_DEFAULT_PARTITION__'); Index: ql/src/test/queries/clientpositive/default_partition_name.q =================================================================== --- ql/src/test/queries/clientpositive/default_partition_name.q (revision 0) +++ ql/src/test/queries/clientpositive/default_partition_name.q (revision 0) @@ -0,0 +1,7 @@ +create table default_partition_name (key int, value string) partitioned by (ds string); + +set hive.exec.default.partition.name='some_other_default_partition_name'; + +alter table default_partition_name add partition(ds='__HIVE_DEFAULT_PARTITION__'); + +show partitions default_partition_name; Index: ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java (revision 1101312) +++ ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java (working copy) @@ -122,9 +122,9 @@ */ public class DDLSemanticAnalyzer extends BaseSemanticAnalyzer { private static final Log LOG = LogFactory.getLog("hive.ql.parse.DDLSemanticAnalyzer"); - public static final Map TokenToTypeName = new HashMap(); + private static final Map TokenToTypeName = new HashMap(); - public static final Set reservedPartitionValues = new HashSet(); + private final Set reservedPartitionValues; static { TokenToTypeName.put(HiveParser.TOK_BOOLEAN, Constants.BOOLEAN_TYPE_NAME); TokenToTypeName.put(HiveParser.TOK_TINYINT, Constants.TINYINT_TYPE_NAME); @@ -168,6 +168,7 @@ public DDLSemanticAnalyzer(HiveConf conf) throws SemanticException { super(conf); + reservedPartitionValues = new HashSet(); // Partition can't have this name reservedPartitionValues.add(HiveConf.getVar(conf, ConfVars.DEFAULTPARTITIONNAME)); reservedPartitionValues.add(HiveConf.getVar(conf, ConfVars.DEFAULT_ZOOKEEPER_PARTITION_NAME)); @@ -477,7 +478,6 @@ revokeDesc), conf)); } - private PrivilegeObjectDesc analyzePrivilegeObject(ASTNode ast, HashSet outputs) throws SemanticException {