You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jd...@apache.org on 2014/10/17 20:30:08 UTC

svn commit: r1632645 - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/ java/org/apache/hadoop/hive/ql/exec/ java/org/apache/hadoop/hive/ql/parse/ java/org/apache/hadoop/hive/ql/plan/ test/queries/clientnegative/ test/queries/clientpositive/ test...

Author: jdere
Date: Fri Oct 17 18:30:08 2014
New Revision: 1632645

URL: http://svn.apache.org/r1632645
Log:
HIVE-8411: Support partial partition spec for certain ALTER PARTITION statements (Jason Dere, reviewed by Gunther Hagleitner)

Added:
    hive/trunk/ql/src/test/queries/clientnegative/alter_partition_partial_spec_dyndisabled.q
    hive/trunk/ql/src/test/results/clientnegative/alter_partition_partial_spec_dyndisabled.q.out
Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/AlterTableDesc.java
    hive/trunk/ql/src/test/queries/clientpositive/alter_partition_change_col.q
    hive/trunk/ql/src/test/results/clientpositive/alter_partition_change_col.q.out

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java?rev=1632645&r1=1632644&r2=1632645&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java Fri Oct 17 18:30:08 2014
@@ -421,6 +421,8 @@ public enum ErrorMsg {
       "an AcidOutputFormat or is not bucketed", true),
   ACID_NO_SORTED_BUCKETS(10298, "ACID insert, update, delete not supported on tables that are " +
       "sorted, table {0}", true),
+  ALTER_TABLE_TYPE_PARTIAL_PARTITION_SPEC_NO_SUPPORTED(10299,
+      "Alter table partition type {0} does not allow partial partition spec"),
 
   //========================== 20000 range starts here ========================//
   SCRIPT_INIT_ERROR(20000, "Unable to initialize custom script."),

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java?rev=1632645&r1=1632644&r2=1632645&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java Fri Oct 17 18:30:08 2014
@@ -88,6 +88,7 @@ import org.apache.hadoop.hive.ql.metadat
 import org.apache.hadoop.hive.ql.metadata.formatting.MetaDataFormatter;
 import org.apache.hadoop.hive.ql.parse.AlterTablePartMergeFilesDesc;
 import org.apache.hadoop.hive.ql.parse.BaseSemanticAnalyzer;
+import org.apache.hadoop.hive.ql.parse.DDLSemanticAnalyzer;
 import org.apache.hadoop.hive.ql.plan.AddPartitionDesc;
 import org.apache.hadoop.hive.ql.plan.AlterDatabaseDesc;
 import org.apache.hadoop.hive.ql.plan.AlterIndexDesc;
@@ -3279,22 +3280,77 @@ public class DDLTask extends Task<DDLWor
     // alter the table
     Table tbl = db.getTable(alterTbl.getOldName());
 
-    Partition part = null;
     List<Partition> allPartitions = null;
     if (alterTbl.getPartSpec() != null) {
-      if (alterTbl.getOp() != AlterTableDesc.AlterTableTypes.ALTERPROTECTMODE) {
-        part = db.getPartition(tbl, alterTbl.getPartSpec(), false);
+      Map<String, String> partSpec = alterTbl.getPartSpec(); 
+      if (DDLSemanticAnalyzer.isFullSpec(tbl, partSpec)) {
+        allPartitions = new ArrayList<Partition>();
+        Partition part = db.getPartition(tbl, partSpec, false);
         if (part == null) {
+          // User provided a fully specified partition spec but it doesn't exist, fail.
           throw new HiveException(ErrorMsg.INVALID_PARTITION,
-              StringUtils.join(alterTbl.getPartSpec().keySet(), ',') + " for table " + alterTbl.getOldName());
+                StringUtils.join(alterTbl.getPartSpec().keySet(), ',') + " for table " + alterTbl.getOldName());
+
         }
-      }
-      else {
+        allPartitions.add(part);
+      } else {
+        // DDLSemanticAnalyzer has already checked if partial partition specs are allowed,
+        // thus we should not need to check it here.
         allPartitions = db.getPartitions(tbl, alterTbl.getPartSpec());
       }
     }
 
     Table oldTbl = tbl.copy();
+    if (allPartitions != null) {
+      // Alter all partitions
+      for (Partition part : allPartitions) {
+        alterTableOrSinglePartition(alterTbl, tbl, part);
+      }
+    } else {
+      // Just alter the table
+      alterTableOrSinglePartition(alterTbl, tbl, null);
+    }
+
+    if (allPartitions == null) {
+      updateModifiedParameters(tbl.getTTable().getParameters(), conf);
+      tbl.checkValidity();
+    } else {
+      for (Partition tmpPart: allPartitions) {
+        updateModifiedParameters(tmpPart.getParameters(), conf);
+      }
+    }
+
+    try {
+      if (allPartitions == null) {
+        db.alterTable(alterTbl.getOldName(), tbl);
+      } else {
+        db.alterPartitions(tbl.getTableName(), allPartitions);
+      }
+    } catch (InvalidOperationException e) {
+      LOG.error("alter table: " + stringifyException(e));
+      throw new HiveException(e, ErrorMsg.GENERIC_ERROR);
+    }
+
+    // This is kind of hacky - the read entity contains the old table, whereas
+    // the write entity
+    // contains the new table. This is needed for rename - both the old and the
+    // new table names are
+    // passed
+    // Don't acquire locks for any of these, we have already asked for them in DDLSemanticAnalyzer.
+    if (allPartitions != null ) {
+      for (Partition tmpPart: allPartitions) {
+        work.getInputs().add(new ReadEntity(tmpPart));
+        work.getOutputs().add(new WriteEntity(tmpPart, WriteEntity.WriteType.DDL_NO_LOCK));
+      }
+    } else {
+      work.getInputs().add(new ReadEntity(oldTbl));
+      work.getOutputs().add(new WriteEntity(tbl, WriteEntity.WriteType.DDL_NO_LOCK));
+    }
+    return 0;
+  }
+
+  private int alterTableOrSinglePartition(AlterTableDesc alterTbl, Table tbl, Partition part)
+      throws HiveException {
     List<FieldSchema> oldCols = (part == null ? tbl.getCols() : part.getCols());
     StorageDescriptor sd = (part == null ? tbl.getTTable().getSd() : part.getTPartition().getSd());
 
@@ -3440,12 +3496,10 @@ public class DDLTask extends Task<DDLWor
       AlterTableDesc.ProtectModeType protectMode = alterTbl.getProtectModeType();
 
       ProtectMode mode = null;
-      if (allPartitions != null) {
-        for (Partition tmpPart: allPartitions) {
-          mode = tmpPart.getProtectMode();
-          setAlterProtectMode(protectModeEnable, protectMode, mode);
-          tmpPart.setProtectMode(mode);
-        }
+      if (part != null) {
+        mode = part.getProtectMode();
+        setAlterProtectMode(protectModeEnable, protectMode, mode);
+        part.setProtectMode(mode);
       } else {
         mode = tbl.getProtectMode();
         setAlterProtectMode(protectModeEnable,protectMode, mode);
@@ -3488,12 +3542,12 @@ public class DDLTask extends Task<DDLWor
         throw new HiveException(e);
       }
     } else if (alterTbl.getOp() == AlterTableDesc.AlterTableTypes.ADDSKEWEDBY) {
-      /* Validation's been done at compile time. no validation is needed here. */
+      // Validation's been done at compile time. no validation is needed here.
       List<String> skewedColNames = null;
       List<List<String>> skewedValues = null;
 
       if (alterTbl.isTurnOffSkewed()) {
-        /* Convert skewed table to non-skewed table. */
+        // Convert skewed table to non-skewed table.
         skewedColNames = new ArrayList<String>();
         skewedValues = new ArrayList<List<String>>();
       } else {
@@ -3502,7 +3556,7 @@ public class DDLTask extends Task<DDLWor
       }
 
       if ( null == tbl.getSkewedInfo()) {
-        /* Convert non-skewed table to skewed table. */
+        // Convert non-skewed table to skewed table.
         SkewedInfo skewedInfo = new SkewedInfo();
         skewedInfo.setSkewedColNames(skewedColNames);
         skewedInfo.setSkewedColValues(skewedValues);
@@ -3544,59 +3598,12 @@ public class DDLTask extends Task<DDLWor
         }
         tbl.setNumBuckets(alterTbl.getNumberBuckets());
       }
-   } else {
+    } else {
       throw new HiveException(ErrorMsg.UNSUPPORTED_ALTER_TBL_OP, alterTbl.getOp().toString());
     }
 
-    if (part == null && allPartitions == null) {
-      updateModifiedParameters(tbl.getTTable().getParameters(), conf);
-      tbl.checkValidity();
-    } else if (part != null) {
-      updateModifiedParameters(part.getParameters(), conf);
-    }
-    else {
-      for (Partition tmpPart: allPartitions) {
-        updateModifiedParameters(tmpPart.getParameters(), conf);
-      }
-    }
-
-    try {
-      if (part == null && allPartitions == null) {
-        db.alterTable(alterTbl.getOldName(), tbl);
-      } else if (part != null) {
-        db.alterPartition(tbl.getTableName(), part);
-      }
-      else {
-        db.alterPartitions(tbl.getTableName(), allPartitions);
-      }
-    } catch (InvalidOperationException e) {
-      LOG.info("alter table: " + stringifyException(e));
-      throw new HiveException(e, ErrorMsg.GENERIC_ERROR);
-    }
-
-    // This is kind of hacky - the read entity contains the old table, whereas
-    // the write entity
-    // contains the new table. This is needed for rename - both the old and the
-    // new table names are
-    // passed
-    // Don't acquire locks for any of these, we have already asked for them in DDLSemanticAnalyzer.
-    if(part != null) {
-      work.getInputs().add(new ReadEntity(part));
-      work.getOutputs().add(new WriteEntity(part, WriteEntity.WriteType.DDL_NO_LOCK));
-    }
-    else if (allPartitions != null ){
-      for (Partition tmpPart: allPartitions) {
-        work.getInputs().add(new ReadEntity(tmpPart));
-        work.getOutputs().add(new WriteEntity(tmpPart, WriteEntity.WriteType.DDL_NO_LOCK));
-      }
-    }
-    else {
-      work.getInputs().add(new ReadEntity(oldTbl));
-      work.getOutputs().add(new WriteEntity(tbl, WriteEntity.WriteType.DDL_NO_LOCK));
-    }
     return 0;
   }
-
   /**
    * Drop a given table or some partitions. DropTableDesc is currently used for both.
    *

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java?rev=1632645&r1=1632644&r2=1632645&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java Fri Oct 17 18:30:08 2014
@@ -1017,7 +1017,7 @@ public class DDLSemanticAnalyzer extends
     rootTasks.add(truncateTask);
   }
 
-  private boolean isFullSpec(Table table, Map<String, String> partSpec) {
+  public static boolean isFullSpec(Table table, Map<String, String> partSpec) {
     for (FieldSchema partCol : table.getPartCols()) {
       if (partSpec.get(partCol.getName()) == null) {
         return false;
@@ -1387,11 +1387,21 @@ public class DDLSemanticAnalyzer extends
       // ReadEntity as no lock.
       re.noLockNeeded();
       inputs.add(re);
-      if (desc == null || desc.getOp() != AlterTableDesc.AlterTableTypes.ALTERPROTECTMODE) {
+
+      if (isFullSpec(tab, partSpec)) {
+        // Fully specified partition spec
         Partition part = getPartition(tab, partSpec, true);
-        outputs.add(new WriteEntity(part, writeType));
-      }
-      else {
+        outputs.add(new WriteEntity(part, writeType));        
+      } else {
+        // Partial partition spec supplied. Make sure this is allowed.
+        if (desc == null
+            || !AlterTableDesc.doesAlterTableTypeSupportPartialPartitionSpec(desc.getOp())) {
+          throw new SemanticException(
+              ErrorMsg.ALTER_TABLE_TYPE_PARTIAL_PARTITION_SPEC_NO_SUPPORTED, desc.getOp().name());
+        } else if (!conf.getBoolVar(HiveConf.ConfVars.DYNAMICPARTITIONING)) {
+          throw new SemanticException(ErrorMsg.DYNAMIC_PARTITION_DISABLED);
+        }
+
         for (Partition part : getPartitions(tab, partSpec, true)) {
           outputs.add(new WriteEntity(part, writeType));
         }

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/AlterTableDesc.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/AlterTableDesc.java?rev=1632645&r1=1632644&r2=1632645&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/AlterTableDesc.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/AlterTableDesc.java Fri Oct 17 18:30:08 2014
@@ -21,8 +21,10 @@ package org.apache.hadoop.hive.ql.plan;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import org.apache.hadoop.hive.metastore.api.FieldSchema;
 import org.apache.hadoop.hive.metastore.api.Order;
@@ -63,6 +65,20 @@ public class AlterTableDesc extends DDLD
     NO_DROP, OFFLINE, READ_ONLY, NO_DROP_CASCADE
   }
 
+  public static final Set<AlterTableTypes> alterTableTypesWithPartialSpec =
+      new HashSet<AlterTableDesc.AlterTableTypes>();
+
+  static {
+    alterTableTypesWithPartialSpec.add(AlterTableDesc.AlterTableTypes.ALTERPROTECTMODE);
+    alterTableTypesWithPartialSpec.add(AlterTableDesc.AlterTableTypes.ADDCOLS);
+    alterTableTypesWithPartialSpec.add(AlterTableDesc.AlterTableTypes.REPLACECOLS);
+    alterTableTypesWithPartialSpec.add(AlterTableDesc.AlterTableTypes.RENAMECOLUMN);
+    alterTableTypesWithPartialSpec.add(AlterTableDesc.AlterTableTypes.ADDPROPS);
+    alterTableTypesWithPartialSpec.add(AlterTableDesc.AlterTableTypes.DROPPROPS);
+    alterTableTypesWithPartialSpec.add(AlterTableDesc.AlterTableTypes.ADDSERDE);
+    alterTableTypesWithPartialSpec.add(AlterTableDesc.AlterTableTypes.ADDSERDEPROPS);
+    alterTableTypesWithPartialSpec.add(AlterTableDesc.AlterTableTypes.ADDFILEFORMAT);
+  }
 
   AlterTableTypes op;
   String oldName;
@@ -704,5 +720,8 @@ public class AlterTableDesc extends DDLD
     return isDropIfExists;
   }
 
+  public static boolean doesAlterTableTypeSupportPartialPartitionSpec(AlterTableTypes type) {
+    return alterTableTypesWithPartialSpec.contains(type);
+  }
 
 }

Added: hive/trunk/ql/src/test/queries/clientnegative/alter_partition_partial_spec_dyndisabled.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientnegative/alter_partition_partial_spec_dyndisabled.q?rev=1632645&view=auto
==============================================================================
--- hive/trunk/ql/src/test/queries/clientnegative/alter_partition_partial_spec_dyndisabled.q (added)
+++ hive/trunk/ql/src/test/queries/clientnegative/alter_partition_partial_spec_dyndisabled.q Fri Oct 17 18:30:08 2014
@@ -0,0 +1,13 @@
+SET hive.exec.dynamic.partition = true;
+SET hive.exec.dynamic.partition.mode = nonstrict;
+
+create table alter_partition_partial_spec_dyndisabled0 (c1 string) partitioned by (p1 string, p2 string);
+
+alter table alter_partition_partial_spec_dyndisabled0 add partition (p1='abc', p2='123');
+alter table alter_partition_partial_spec_dyndisabled0 partition (p1, p2) change c1 c1 int;
+
+describe alter_partition_partial_spec_dyndisabled0 partition (p1='abc', p2='123');
+
+SET hive.exec.dynamic.partition = false;
+-- Same statement should fail if dynamic partitioning disabled
+alter table alter_partition_partial_spec_dyndisabled0 partition (p1, p2) change c1 c1 int;

Modified: hive/trunk/ql/src/test/queries/clientpositive/alter_partition_change_col.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/alter_partition_change_col.q?rev=1632645&r1=1632644&r2=1632645&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/alter_partition_change_col.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/alter_partition_change_col.q Fri Oct 17 18:30:08 2014
@@ -6,54 +6,70 @@ SET hive.exec.dynamic.partition.mode = n
 create table alter_partition_change_col0 (c1 string, c2 string);
 load data local inpath '../../data/files/dec.txt' overwrite into table alter_partition_change_col0;
 
-create table alter_partition_change_col1 (c1 string, c2 string) partitioned by (p1 string);
+create table alter_partition_change_col1 (c1 string, c2 string) partitioned by (p1 string, p2 string);
 
-insert overwrite table alter_partition_change_col1 partition (p1)
-  select c1, c2, 'abc' from alter_partition_change_col0
+insert overwrite table alter_partition_change_col1 partition (p1, p2)
+  select c1, c2, 'abc', '123' from alter_partition_change_col0
   union all
-  select c1, c2, null from alter_partition_change_col0;
+  select c1, c2, null, '123' from alter_partition_change_col0;
   
 show partitions alter_partition_change_col1;
-select * from alter_partition_change_col1;
+select * from alter_partition_change_col1 where p1='abc';
+select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__';
 
 -- Change c2 to decimal(10,0)
 alter table alter_partition_change_col1 change c2 c2 decimal(10,0);
-alter table alter_partition_change_col1 partition (p1='abc') change c2 c2 decimal(10,0);
-alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__') change c2 c2 decimal(10,0);
-select * from alter_partition_change_col1;
+alter table alter_partition_change_col1 partition (p1='abc', p2='123') change c2 c2 decimal(10,0);
+alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123') change c2 c2 decimal(10,0);
+select * from alter_partition_change_col1 where p1='abc';
+select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__';
 
 -- Change the column type at the table level. Table-level describe shows the new type, but the existing partition does not.
 alter table alter_partition_change_col1 change c2 c2 decimal(14,4);
 describe alter_partition_change_col1;
-describe alter_partition_change_col1 partition (p1='abc');
-select * from alter_partition_change_col1;
+describe alter_partition_change_col1 partition (p1='abc', p2='123');
+select * from alter_partition_change_col1 where p1='abc';
+select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__';
 
 -- now change the column type of the existing partition
-alter table alter_partition_change_col1 partition (p1='abc') change c2 c2 decimal(14,4);
-describe alter_partition_change_col1 partition (p1='abc');
-select * from alter_partition_change_col1;
+alter table alter_partition_change_col1 partition (p1='abc', p2='123') change c2 c2 decimal(14,4);
+describe alter_partition_change_col1 partition (p1='abc', p2='123');
+select * from alter_partition_change_col1 where p1='abc';
+select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__';
 
 -- change column for default partition value
-alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__') change c2 c2 decimal(14,4);
-describe alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__');
-select * from alter_partition_change_col1;
+alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123') change c2 c2 decimal(14,4);
+describe alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123');
+select * from alter_partition_change_col1 where p1='abc';
+select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__';
 
 -- Try out replace columns
-alter table alter_partition_change_col1 partition (p1='abc') replace columns (c1 string);
+alter table alter_partition_change_col1 partition (p1='abc', p2='123') replace columns (c1 string);
 describe alter_partition_change_col1;
-describe alter_partition_change_col1 partition (p1='abc');
-select * from alter_partition_change_col1;
+describe alter_partition_change_col1 partition (p1='abc', p2='123');
+select * from alter_partition_change_col1 where p1='abc';
+select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__';
+
 alter table alter_partition_change_col1 replace columns (c1 string);
 describe alter_partition_change_col1;
-select * from alter_partition_change_col1;
+select * from alter_partition_change_col1 where p1='abc';
+select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__';
 
 -- Try add columns
 alter table alter_partition_change_col1 add columns (c2 decimal(14,4));
 describe alter_partition_change_col1;
-describe alter_partition_change_col1 partition (p1='abc');
-select * from alter_partition_change_col1;
-
-alter table alter_partition_change_col1 partition (p1='abc') add columns (c2 decimal(14,4));
-describe alter_partition_change_col1 partition (p1='abc');
-select * from alter_partition_change_col1;
-
+describe alter_partition_change_col1 partition (p1='abc', p2='123');
+select * from alter_partition_change_col1 where p1='abc';
+select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__';
+
+alter table alter_partition_change_col1 partition (p1='abc', p2='123') add columns (c2 decimal(14,4));
+describe alter_partition_change_col1 partition (p1='abc', p2='123');
+select * from alter_partition_change_col1 where p1='abc';
+select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__';
+
+-- Try changing column for all partitions at once
+alter table alter_partition_change_col1 partition (p1, p2='123') change column c2 c2 decimal(10,0);
+describe alter_partition_change_col1 partition (p1='abc', p2='123');
+describe alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123');
+select * from alter_partition_change_col1 where p1='abc';
+select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__';

Added: hive/trunk/ql/src/test/results/clientnegative/alter_partition_partial_spec_dyndisabled.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientnegative/alter_partition_partial_spec_dyndisabled.q.out?rev=1632645&view=auto
==============================================================================
--- hive/trunk/ql/src/test/results/clientnegative/alter_partition_partial_spec_dyndisabled.q.out (added)
+++ hive/trunk/ql/src/test/results/clientnegative/alter_partition_partial_spec_dyndisabled.q.out Fri Oct 17 18:30:08 2014
@@ -0,0 +1,40 @@
+PREHOOK: query: create table alter_partition_partial_spec_dyndisabled0 (c1 string) partitioned by (p1 string, p2 string)
+PREHOOK: type: CREATETABLE
+PREHOOK: Output: database:default
+PREHOOK: Output: default@alter_partition_partial_spec_dyndisabled0
+POSTHOOK: query: create table alter_partition_partial_spec_dyndisabled0 (c1 string) partitioned by (p1 string, p2 string)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: database:default
+POSTHOOK: Output: default@alter_partition_partial_spec_dyndisabled0
+PREHOOK: query: alter table alter_partition_partial_spec_dyndisabled0 add partition (p1='abc', p2='123')
+PREHOOK: type: ALTERTABLE_ADDPARTS
+PREHOOK: Output: default@alter_partition_partial_spec_dyndisabled0
+POSTHOOK: query: alter table alter_partition_partial_spec_dyndisabled0 add partition (p1='abc', p2='123')
+POSTHOOK: type: ALTERTABLE_ADDPARTS
+POSTHOOK: Output: default@alter_partition_partial_spec_dyndisabled0
+POSTHOOK: Output: default@alter_partition_partial_spec_dyndisabled0@p1=abc/p2=123
+PREHOOK: query: alter table alter_partition_partial_spec_dyndisabled0 partition (p1, p2) change c1 c1 int
+PREHOOK: type: ALTERTABLE_RENAMECOL
+PREHOOK: Input: default@alter_partition_partial_spec_dyndisabled0
+PREHOOK: Output: default@alter_partition_partial_spec_dyndisabled0@p1=abc/p2=123
+POSTHOOK: query: alter table alter_partition_partial_spec_dyndisabled0 partition (p1, p2) change c1 c1 int
+POSTHOOK: type: ALTERTABLE_RENAMECOL
+POSTHOOK: Input: default@alter_partition_partial_spec_dyndisabled0
+POSTHOOK: Input: default@alter_partition_partial_spec_dyndisabled0@p1=abc/p2=123
+POSTHOOK: Output: default@alter_partition_partial_spec_dyndisabled0@p1=abc/p2=123
+PREHOOK: query: describe alter_partition_partial_spec_dyndisabled0 partition (p1='abc', p2='123')
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@alter_partition_partial_spec_dyndisabled0
+POSTHOOK: query: describe alter_partition_partial_spec_dyndisabled0 partition (p1='abc', p2='123')
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@alter_partition_partial_spec_dyndisabled0
+c1                  	int                 	                    
+p1                  	string              	                    
+p2                  	string              	                    
+	 	 
+# Partition Information	 	 
+# col_name            	data_type           	comment             
+	 	 
+p1                  	string              	                    
+p2                  	string              	                    
+FAILED: SemanticException [Error 10095]: Dynamic partition is disabled. Either enable it by setting hive.exec.dynamic.partition=true or specify partition column values

Modified: hive/trunk/ql/src/test/results/clientpositive/alter_partition_change_col.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/alter_partition_change_col.q.out?rev=1632645&r1=1632644&r2=1632645&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/alter_partition_change_col.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/alter_partition_change_col.q.out Fri Oct 17 18:30:08 2014
@@ -18,73 +18,81 @@ POSTHOOK: query: load data local inpath 
 POSTHOOK: type: LOAD
 #### A masked pattern was here ####
 POSTHOOK: Output: default@alter_partition_change_col0
-PREHOOK: query: create table alter_partition_change_col1 (c1 string, c2 string) partitioned by (p1 string)
+PREHOOK: query: create table alter_partition_change_col1 (c1 string, c2 string) partitioned by (p1 string, p2 string)
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
 PREHOOK: Output: default@alter_partition_change_col1
-POSTHOOK: query: create table alter_partition_change_col1 (c1 string, c2 string) partitioned by (p1 string)
+POSTHOOK: query: create table alter_partition_change_col1 (c1 string, c2 string) partitioned by (p1 string, p2 string)
 POSTHOOK: type: CREATETABLE
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@alter_partition_change_col1
-PREHOOK: query: insert overwrite table alter_partition_change_col1 partition (p1)
-  select c1, c2, 'abc' from alter_partition_change_col0
+PREHOOK: query: insert overwrite table alter_partition_change_col1 partition (p1, p2)
+  select c1, c2, 'abc', '123' from alter_partition_change_col0
   union all
-  select c1, c2, null from alter_partition_change_col0
+  select c1, c2, null, '123' from alter_partition_change_col0
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alter_partition_change_col0
 PREHOOK: Output: default@alter_partition_change_col1
-POSTHOOK: query: insert overwrite table alter_partition_change_col1 partition (p1)
-  select c1, c2, 'abc' from alter_partition_change_col0
+POSTHOOK: query: insert overwrite table alter_partition_change_col1 partition (p1, p2)
+  select c1, c2, 'abc', '123' from alter_partition_change_col0
   union all
-  select c1, c2, null from alter_partition_change_col0
+  select c1, c2, null, '123' from alter_partition_change_col0
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col0
-POSTHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Output: default@alter_partition_change_col1@p1=abc
-POSTHOOK: Lineage: alter_partition_change_col1 PARTITION(p1=__HIVE_DEFAULT_PARTITION__).c1 EXPRESSION [(alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c1, type:string, comment:null), (alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c1, type:string, comment:null), ]
-POSTHOOK: Lineage: alter_partition_change_col1 PARTITION(p1=__HIVE_DEFAULT_PARTITION__).c2 EXPRESSION [(alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c2, type:string, comment:null), (alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c2, type:string, comment:null), ]
-POSTHOOK: Lineage: alter_partition_change_col1 PARTITION(p1=abc).c1 EXPRESSION [(alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c1, type:string, comment:null), (alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c1, type:string, comment:null), ]
-POSTHOOK: Lineage: alter_partition_change_col1 PARTITION(p1=abc).c2 EXPRESSION [(alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c2, type:string, comment:null), (alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c2, type:string, comment:null), ]
+POSTHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+POSTHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
+POSTHOOK: Lineage: alter_partition_change_col1 PARTITION(p1=__HIVE_DEFAULT_PARTITION__,p2=123).c1 EXPRESSION [(alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c1, type:string, comment:null), (alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c1, type:string, comment:null), ]
+POSTHOOK: Lineage: alter_partition_change_col1 PARTITION(p1=__HIVE_DEFAULT_PARTITION__,p2=123).c2 EXPRESSION [(alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c2, type:string, comment:null), (alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c2, type:string, comment:null), ]
+POSTHOOK: Lineage: alter_partition_change_col1 PARTITION(p1=abc,p2=123).c1 EXPRESSION [(alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c1, type:string, comment:null), (alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c1, type:string, comment:null), ]
+POSTHOOK: Lineage: alter_partition_change_col1 PARTITION(p1=abc,p2=123).c2 EXPRESSION [(alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c2, type:string, comment:null), (alter_partition_change_col0)alter_partition_change_col0.FieldSchema(name:c2, type:string, comment:null), ]
 PREHOOK: query: show partitions alter_partition_change_col1
 PREHOOK: type: SHOWPARTITIONS
 PREHOOK: Input: default@alter_partition_change_col1
 POSTHOOK: query: show partitions alter_partition_change_col1
 POSTHOOK: type: SHOWPARTITIONS
 POSTHOOK: Input: default@alter_partition_change_col1
-p1=__HIVE_DEFAULT_PARTITION__
-p1=abc
-PREHOOK: query: select * from alter_partition_change_col1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: Input: default@alter_partition_change_col1@p1=abc
-#### A masked pattern was here ####
-POSTHOOK: query: select * from alter_partition_change_col1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-#### A masked pattern was here ####
-Beck	0.0	__HIVE_DEFAULT_PARTITION__
-Beck	0.0	abc
-Beck	77.341	__HIVE_DEFAULT_PARTITION__
-Beck	77.341	abc
-Beck	79.9	__HIVE_DEFAULT_PARTITION__
-Beck	79.9	abc
-Cluck	5.96	__HIVE_DEFAULT_PARTITION__
-Cluck	5.96	abc
-Mary	33.33	__HIVE_DEFAULT_PARTITION__
-Mary	33.33	abc
-Mary	4.329	__HIVE_DEFAULT_PARTITION__
-Mary	4.329	abc
-Snow	55.71	__HIVE_DEFAULT_PARTITION__
-Snow	55.71	abc
-Tom	-12.25	__HIVE_DEFAULT_PARTITION__
-Tom	-12.25	abc
-Tom	19.00	__HIVE_DEFAULT_PARTITION__
-Tom	19.00	abc
-Tom	234.79	__HIVE_DEFAULT_PARTITION__
-Tom	234.79	abc
+p1=__HIVE_DEFAULT_PARTITION__/p2=123
+p1=abc/p2=123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+Beck	0.0	abc	123
+Beck	77.341	abc	123
+Beck	79.9	abc	123
+Cluck	5.96	abc	123
+Mary	33.33	abc	123
+Mary	4.329	abc	123
+Snow	55.71	abc	123
+Tom	-12.25	abc	123
+Tom	19.00	abc	123
+Tom	234.79	abc	123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+Beck	0.0	__HIVE_DEFAULT_PARTITION__	123
+Beck	77.341	__HIVE_DEFAULT_PARTITION__	123
+Beck	79.9	__HIVE_DEFAULT_PARTITION__	123
+Cluck	5.96	__HIVE_DEFAULT_PARTITION__	123
+Mary	33.33	__HIVE_DEFAULT_PARTITION__	123
+Mary	4.329	__HIVE_DEFAULT_PARTITION__	123
+Snow	55.71	__HIVE_DEFAULT_PARTITION__	123
+Tom	-12.25	__HIVE_DEFAULT_PARTITION__	123
+Tom	19.00	__HIVE_DEFAULT_PARTITION__	123
+Tom	234.79	__HIVE_DEFAULT_PARTITION__	123
 PREHOOK: query: -- Change c2 to decimal(10,0)
 alter table alter_partition_change_col1 change c2 c2 decimal(10,0)
 PREHOOK: type: ALTERTABLE_RENAMECOL
@@ -95,56 +103,64 @@ alter table alter_partition_change_col1 
 POSTHOOK: type: ALTERTABLE_RENAMECOL
 POSTHOOK: Input: default@alter_partition_change_col1
 POSTHOOK: Output: default@alter_partition_change_col1
-PREHOOK: query: alter table alter_partition_change_col1 partition (p1='abc') change c2 c2 decimal(10,0)
+PREHOOK: query: alter table alter_partition_change_col1 partition (p1='abc', p2='123') change c2 c2 decimal(10,0)
 PREHOOK: type: ALTERTABLE_RENAMECOL
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Output: default@alter_partition_change_col1@p1=abc
-POSTHOOK: query: alter table alter_partition_change_col1 partition (p1='abc') change c2 c2 decimal(10,0)
+PREHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
+POSTHOOK: query: alter table alter_partition_change_col1 partition (p1='abc', p2='123') change c2 c2 decimal(10,0)
 POSTHOOK: type: ALTERTABLE_RENAMECOL
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-POSTHOOK: Output: default@alter_partition_change_col1@p1=abc
-PREHOOK: query: alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__') change c2 c2 decimal(10,0)
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+POSTHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
+PREHOOK: query: alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123') change c2 c2 decimal(10,0)
 PREHOOK: type: ALTERTABLE_RENAMECOL
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: query: alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__') change c2 c2 decimal(10,0)
+PREHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+POSTHOOK: query: alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123') change c2 c2 decimal(10,0)
 POSTHOOK: type: ALTERTABLE_RENAMECOL
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: query: select * from alter_partition_change_col1
-PREHOOK: type: QUERY
-PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: Input: default@alter_partition_change_col1@p1=abc
-#### A masked pattern was here ####
-POSTHOOK: query: select * from alter_partition_change_col1
-POSTHOOK: type: QUERY
-POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-#### A masked pattern was here ####
-Beck	0	__HIVE_DEFAULT_PARTITION__
-Beck	0	abc
-Beck	77	__HIVE_DEFAULT_PARTITION__
-Beck	77	abc
-Beck	80	__HIVE_DEFAULT_PARTITION__
-Beck	80	abc
-Cluck	6	__HIVE_DEFAULT_PARTITION__
-Cluck	6	abc
-Mary	33	__HIVE_DEFAULT_PARTITION__
-Mary	33	abc
-Mary	4	__HIVE_DEFAULT_PARTITION__
-Mary	4	abc
-Snow	56	__HIVE_DEFAULT_PARTITION__
-Snow	56	abc
-Tom	-12	__HIVE_DEFAULT_PARTITION__
-Tom	-12	abc
-Tom	19	__HIVE_DEFAULT_PARTITION__
-Tom	19	abc
-Tom	235	__HIVE_DEFAULT_PARTITION__
-Tom	235	abc
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+POSTHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+Beck	0	abc	123
+Beck	77	abc	123
+Beck	80	abc	123
+Cluck	6	abc	123
+Mary	33	abc	123
+Mary	4	abc	123
+Snow	56	abc	123
+Tom	-12	abc	123
+Tom	19	abc	123
+Tom	235	abc	123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+Beck	0	__HIVE_DEFAULT_PARTITION__	123
+Beck	77	__HIVE_DEFAULT_PARTITION__	123
+Beck	80	__HIVE_DEFAULT_PARTITION__	123
+Cluck	6	__HIVE_DEFAULT_PARTITION__	123
+Mary	33	__HIVE_DEFAULT_PARTITION__	123
+Mary	4	__HIVE_DEFAULT_PARTITION__	123
+Snow	56	__HIVE_DEFAULT_PARTITION__	123
+Tom	-12	__HIVE_DEFAULT_PARTITION__	123
+Tom	19	__HIVE_DEFAULT_PARTITION__	123
+Tom	235	__HIVE_DEFAULT_PARTITION__	123
 PREHOOK: query: -- Change the column type at the table level. Table-level describe shows the new type, but the existing partition does not.
 alter table alter_partition_change_col1 change c2 c2 decimal(14,4)
 PREHOOK: type: ALTERTABLE_RENAMECOL
@@ -164,182 +180,214 @@ POSTHOOK: Input: default@alter_partition
 c1                  	string              	                    
 c2                  	decimal(14,4)       	                    
 p1                  	string              	                    
+p2                  	string              	                    
 	 	 
 # Partition Information	 	 
 # col_name            	data_type           	comment             
 	 	 
 p1                  	string              	                    
-PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc')
+p2                  	string              	                    
+PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc')
+POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@alter_partition_change_col1
 c1                  	string              	                    
 c2                  	decimal(10,0)       	                    
 p1                  	string              	                    
+p2                  	string              	                    
 	 	 
 # Partition Information	 	 
 # col_name            	data_type           	comment             
 	 	 
 p1                  	string              	                    
-PREHOOK: query: select * from alter_partition_change_col1
+p2                  	string              	                    
+PREHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+Beck	0	abc	123
+Beck	77	abc	123
+Beck	80	abc	123
+Cluck	6	abc	123
+Mary	33	abc	123
+Mary	4	abc	123
+Snow	56	abc	123
+Tom	-12	abc	123
+Tom	19	abc	123
+Tom	235	abc	123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: Input: default@alter_partition_change_col1@p1=abc
+PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-POSTHOOK: query: select * from alter_partition_change_col1
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-#### A masked pattern was here ####
-Beck	0	__HIVE_DEFAULT_PARTITION__
-Beck	0	abc
-Beck	77	__HIVE_DEFAULT_PARTITION__
-Beck	77	abc
-Beck	80	__HIVE_DEFAULT_PARTITION__
-Beck	80	abc
-Cluck	6	__HIVE_DEFAULT_PARTITION__
-Cluck	6	abc
-Mary	33	__HIVE_DEFAULT_PARTITION__
-Mary	33	abc
-Mary	4	__HIVE_DEFAULT_PARTITION__
-Mary	4	abc
-Snow	56	__HIVE_DEFAULT_PARTITION__
-Snow	56	abc
-Tom	-12	__HIVE_DEFAULT_PARTITION__
-Tom	-12	abc
-Tom	19	__HIVE_DEFAULT_PARTITION__
-Tom	19	abc
-Tom	235	__HIVE_DEFAULT_PARTITION__
-Tom	235	abc
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+Beck	0	__HIVE_DEFAULT_PARTITION__	123
+Beck	77	__HIVE_DEFAULT_PARTITION__	123
+Beck	80	__HIVE_DEFAULT_PARTITION__	123
+Cluck	6	__HIVE_DEFAULT_PARTITION__	123
+Mary	33	__HIVE_DEFAULT_PARTITION__	123
+Mary	4	__HIVE_DEFAULT_PARTITION__	123
+Snow	56	__HIVE_DEFAULT_PARTITION__	123
+Tom	-12	__HIVE_DEFAULT_PARTITION__	123
+Tom	19	__HIVE_DEFAULT_PARTITION__	123
+Tom	235	__HIVE_DEFAULT_PARTITION__	123
 PREHOOK: query: -- now change the column type of the existing partition
-alter table alter_partition_change_col1 partition (p1='abc') change c2 c2 decimal(14,4)
+alter table alter_partition_change_col1 partition (p1='abc', p2='123') change c2 c2 decimal(14,4)
 PREHOOK: type: ALTERTABLE_RENAMECOL
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Output: default@alter_partition_change_col1@p1=abc
+PREHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
 POSTHOOK: query: -- now change the column type of the existing partition
-alter table alter_partition_change_col1 partition (p1='abc') change c2 c2 decimal(14,4)
+alter table alter_partition_change_col1 partition (p1='abc', p2='123') change c2 c2 decimal(14,4)
 POSTHOOK: type: ALTERTABLE_RENAMECOL
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-POSTHOOK: Output: default@alter_partition_change_col1@p1=abc
-PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc')
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+POSTHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
+PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc')
+POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@alter_partition_change_col1
 c1                  	string              	                    
 c2                  	decimal(14,4)       	                    
 p1                  	string              	                    
+p2                  	string              	                    
 	 	 
 # Partition Information	 	 
 # col_name            	data_type           	comment             
 	 	 
 p1                  	string              	                    
-PREHOOK: query: select * from alter_partition_change_col1
+p2                  	string              	                    
+PREHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+Beck	0.0	abc	123
+Beck	77.341	abc	123
+Beck	79.9	abc	123
+Cluck	5.96	abc	123
+Mary	33.33	abc	123
+Mary	4.329	abc	123
+Snow	55.71	abc	123
+Tom	-12.25	abc	123
+Tom	19.00	abc	123
+Tom	234.79	abc	123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: Input: default@alter_partition_change_col1@p1=abc
+PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-POSTHOOK: query: select * from alter_partition_change_col1
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-#### A masked pattern was here ####
-Beck	0	__HIVE_DEFAULT_PARTITION__
-Beck	0.0	abc
-Beck	77	__HIVE_DEFAULT_PARTITION__
-Beck	77.341	abc
-Beck	79.9	abc
-Beck	80	__HIVE_DEFAULT_PARTITION__
-Cluck	5.96	abc
-Cluck	6	__HIVE_DEFAULT_PARTITION__
-Mary	33	__HIVE_DEFAULT_PARTITION__
-Mary	33.33	abc
-Mary	4	__HIVE_DEFAULT_PARTITION__
-Mary	4.329	abc
-Snow	55.71	abc
-Snow	56	__HIVE_DEFAULT_PARTITION__
-Tom	-12	__HIVE_DEFAULT_PARTITION__
-Tom	-12.25	abc
-Tom	19	__HIVE_DEFAULT_PARTITION__
-Tom	19.00	abc
-Tom	234.79	abc
-Tom	235	__HIVE_DEFAULT_PARTITION__
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+Beck	0	__HIVE_DEFAULT_PARTITION__	123
+Beck	77	__HIVE_DEFAULT_PARTITION__	123
+Beck	80	__HIVE_DEFAULT_PARTITION__	123
+Cluck	6	__HIVE_DEFAULT_PARTITION__	123
+Mary	33	__HIVE_DEFAULT_PARTITION__	123
+Mary	4	__HIVE_DEFAULT_PARTITION__	123
+Snow	56	__HIVE_DEFAULT_PARTITION__	123
+Tom	-12	__HIVE_DEFAULT_PARTITION__	123
+Tom	19	__HIVE_DEFAULT_PARTITION__	123
+Tom	235	__HIVE_DEFAULT_PARTITION__	123
 PREHOOK: query: -- change column for default partition value
-alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__') change c2 c2 decimal(14,4)
+alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123') change c2 c2 decimal(14,4)
 PREHOOK: type: ALTERTABLE_RENAMECOL
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
+PREHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 POSTHOOK: query: -- change column for default partition value
-alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__') change c2 c2 decimal(14,4)
+alter table alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123') change c2 c2 decimal(14,4)
 POSTHOOK: type: ALTERTABLE_RENAMECOL
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: query: describe alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__')
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+POSTHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+PREHOOK: query: describe alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123')
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: query: describe alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__')
+POSTHOOK: query: describe alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123')
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@alter_partition_change_col1
 c1                  	string              	                    
 c2                  	decimal(14,4)       	                    
 p1                  	string              	                    
+p2                  	string              	                    
 	 	 
 # Partition Information	 	 
 # col_name            	data_type           	comment             
 	 	 
 p1                  	string              	                    
-PREHOOK: query: select * from alter_partition_change_col1
+p2                  	string              	                    
+PREHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+Beck	0.0	abc	123
+Beck	77.341	abc	123
+Beck	79.9	abc	123
+Cluck	5.96	abc	123
+Mary	33.33	abc	123
+Mary	4.329	abc	123
+Snow	55.71	abc	123
+Tom	-12.25	abc	123
+Tom	19.00	abc	123
+Tom	234.79	abc	123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: Input: default@alter_partition_change_col1@p1=abc
+PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-POSTHOOK: query: select * from alter_partition_change_col1
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-#### A masked pattern was here ####
-Beck	0.0	__HIVE_DEFAULT_PARTITION__
-Beck	0.0	abc
-Beck	77.341	__HIVE_DEFAULT_PARTITION__
-Beck	77.341	abc
-Beck	79.9	__HIVE_DEFAULT_PARTITION__
-Beck	79.9	abc
-Cluck	5.96	__HIVE_DEFAULT_PARTITION__
-Cluck	5.96	abc
-Mary	33.33	__HIVE_DEFAULT_PARTITION__
-Mary	33.33	abc
-Mary	4.329	__HIVE_DEFAULT_PARTITION__
-Mary	4.329	abc
-Snow	55.71	__HIVE_DEFAULT_PARTITION__
-Snow	55.71	abc
-Tom	-12.25	__HIVE_DEFAULT_PARTITION__
-Tom	-12.25	abc
-Tom	19.00	__HIVE_DEFAULT_PARTITION__
-Tom	19.00	abc
-Tom	234.79	__HIVE_DEFAULT_PARTITION__
-Tom	234.79	abc
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+Beck	0.0	__HIVE_DEFAULT_PARTITION__	123
+Beck	77.341	__HIVE_DEFAULT_PARTITION__	123
+Beck	79.9	__HIVE_DEFAULT_PARTITION__	123
+Cluck	5.96	__HIVE_DEFAULT_PARTITION__	123
+Mary	33.33	__HIVE_DEFAULT_PARTITION__	123
+Mary	4.329	__HIVE_DEFAULT_PARTITION__	123
+Snow	55.71	__HIVE_DEFAULT_PARTITION__	123
+Tom	-12.25	__HIVE_DEFAULT_PARTITION__	123
+Tom	19.00	__HIVE_DEFAULT_PARTITION__	123
+Tom	234.79	__HIVE_DEFAULT_PARTITION__	123
 PREHOOK: query: -- Try out replace columns
-alter table alter_partition_change_col1 partition (p1='abc') replace columns (c1 string)
+alter table alter_partition_change_col1 partition (p1='abc', p2='123') replace columns (c1 string)
 PREHOOK: type: ALTERTABLE_REPLACECOLS
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Output: default@alter_partition_change_col1@p1=abc
+PREHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
 POSTHOOK: query: -- Try out replace columns
-alter table alter_partition_change_col1 partition (p1='abc') replace columns (c1 string)
+alter table alter_partition_change_col1 partition (p1='abc', p2='123') replace columns (c1 string)
 POSTHOOK: type: ALTERTABLE_REPLACECOLS
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-POSTHOOK: Output: default@alter_partition_change_col1@p1=abc
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+POSTHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
 PREHOOK: query: describe alter_partition_change_col1
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@alter_partition_change_col1
@@ -349,56 +397,68 @@ POSTHOOK: Input: default@alter_partition
 c1                  	string              	                    
 c2                  	decimal(14,4)       	                    
 p1                  	string              	                    
+p2                  	string              	                    
 	 	 
 # Partition Information	 	 
 # col_name            	data_type           	comment             
 	 	 
 p1                  	string              	                    
-PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc')
+p2                  	string              	                    
+PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc')
+POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@alter_partition_change_col1
 c1                  	string              	                    
 p1                  	string              	                    
+p2                  	string              	                    
 	 	 
 # Partition Information	 	 
 # col_name            	data_type           	comment             
 	 	 
 p1                  	string              	                    
-PREHOOK: query: select * from alter_partition_change_col1
+p2                  	string              	                    
+PREHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+Beck	NULL	abc	123
+Beck	NULL	abc	123
+Beck	NULL	abc	123
+Cluck	NULL	abc	123
+Mary	NULL	abc	123
+Mary	NULL	abc	123
+Snow	NULL	abc	123
+Tom	NULL	abc	123
+Tom	NULL	abc	123
+Tom	NULL	abc	123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: Input: default@alter_partition_change_col1@p1=abc
+PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-POSTHOOK: query: select * from alter_partition_change_col1
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-Beck	0.0	__HIVE_DEFAULT_PARTITION__
-Beck	77.341	__HIVE_DEFAULT_PARTITION__
-Beck	79.9	__HIVE_DEFAULT_PARTITION__
-Beck	NULL	abc
-Beck	NULL	abc
-Beck	NULL	abc
-Cluck	5.96	__HIVE_DEFAULT_PARTITION__
-Cluck	NULL	abc
-Mary	33.33	__HIVE_DEFAULT_PARTITION__
-Mary	4.329	__HIVE_DEFAULT_PARTITION__
-Mary	NULL	abc
-Mary	NULL	abc
-Snow	55.71	__HIVE_DEFAULT_PARTITION__
-Snow	NULL	abc
-Tom	-12.25	__HIVE_DEFAULT_PARTITION__
-Tom	19.00	__HIVE_DEFAULT_PARTITION__
-Tom	234.79	__HIVE_DEFAULT_PARTITION__
-Tom	NULL	abc
-Tom	NULL	abc
-Tom	NULL	abc
+Beck	0.0	__HIVE_DEFAULT_PARTITION__	123
+Beck	77.341	__HIVE_DEFAULT_PARTITION__	123
+Beck	79.9	__HIVE_DEFAULT_PARTITION__	123
+Cluck	5.96	__HIVE_DEFAULT_PARTITION__	123
+Mary	33.33	__HIVE_DEFAULT_PARTITION__	123
+Mary	4.329	__HIVE_DEFAULT_PARTITION__	123
+Snow	55.71	__HIVE_DEFAULT_PARTITION__	123
+Tom	-12.25	__HIVE_DEFAULT_PARTITION__	123
+Tom	19.00	__HIVE_DEFAULT_PARTITION__	123
+Tom	234.79	__HIVE_DEFAULT_PARTITION__	123
 PREHOOK: query: alter table alter_partition_change_col1 replace columns (c1 string)
 PREHOOK: type: ALTERTABLE_REPLACECOLS
 PREHOOK: Input: default@alter_partition_change_col1
@@ -415,43 +475,53 @@ POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@alter_partition_change_col1
 c1                  	string              	                    
 p1                  	string              	                    
+p2                  	string              	                    
 	 	 
 # Partition Information	 	 
 # col_name            	data_type           	comment             
 	 	 
 p1                  	string              	                    
-PREHOOK: query: select * from alter_partition_change_col1
+p2                  	string              	                    
+PREHOOK: query: select * from alter_partition_change_col1 where p1='abc'
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: Input: default@alter_partition_change_col1@p1=abc
+PREHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
 #### A masked pattern was here ####
-POSTHOOK: query: select * from alter_partition_change_col1
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='abc'
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-#### A masked pattern was here ####
-Beck	__HIVE_DEFAULT_PARTITION__
-Beck	__HIVE_DEFAULT_PARTITION__
-Beck	__HIVE_DEFAULT_PARTITION__
-Beck	abc
-Beck	abc
-Beck	abc
-Cluck	__HIVE_DEFAULT_PARTITION__
-Cluck	abc
-Mary	__HIVE_DEFAULT_PARTITION__
-Mary	__HIVE_DEFAULT_PARTITION__
-Mary	abc
-Mary	abc
-Snow	__HIVE_DEFAULT_PARTITION__
-Snow	abc
-Tom	__HIVE_DEFAULT_PARTITION__
-Tom	__HIVE_DEFAULT_PARTITION__
-Tom	__HIVE_DEFAULT_PARTITION__
-Tom	abc
-Tom	abc
-Tom	abc
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+Beck	abc	123
+Beck	abc	123
+Beck	abc	123
+Cluck	abc	123
+Mary	abc	123
+Mary	abc	123
+Snow	abc	123
+Tom	abc	123
+Tom	abc	123
+Tom	abc	123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+Beck	__HIVE_DEFAULT_PARTITION__	123
+Beck	__HIVE_DEFAULT_PARTITION__	123
+Beck	__HIVE_DEFAULT_PARTITION__	123
+Cluck	__HIVE_DEFAULT_PARTITION__	123
+Mary	__HIVE_DEFAULT_PARTITION__	123
+Mary	__HIVE_DEFAULT_PARTITION__	123
+Snow	__HIVE_DEFAULT_PARTITION__	123
+Tom	__HIVE_DEFAULT_PARTITION__	123
+Tom	__HIVE_DEFAULT_PARTITION__	123
+Tom	__HIVE_DEFAULT_PARTITION__	123
 PREHOOK: query: -- Try add columns
 alter table alter_partition_change_col1 add columns (c2 decimal(14,4))
 PREHOOK: type: ALTERTABLE_ADDCOLS
@@ -471,108 +541,216 @@ POSTHOOK: Input: default@alter_partition
 c1                  	string              	                    
 c2                  	decimal(14,4)       	                    
 p1                  	string              	                    
+p2                  	string              	                    
 	 	 
 # Partition Information	 	 
 # col_name            	data_type           	comment             
 	 	 
 p1                  	string              	                    
-PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc')
+p2                  	string              	                    
+PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc')
+POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@alter_partition_change_col1
 c1                  	string              	                    
 p1                  	string              	                    
+p2                  	string              	                    
 	 	 
 # Partition Information	 	 
 # col_name            	data_type           	comment             
 	 	 
 p1                  	string              	                    
-PREHOOK: query: select * from alter_partition_change_col1
+p2                  	string              	                    
+PREHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+Beck	NULL	abc	123
+Beck	NULL	abc	123
+Beck	NULL	abc	123
+Cluck	NULL	abc	123
+Mary	NULL	abc	123
+Mary	NULL	abc	123
+Snow	NULL	abc	123
+Tom	NULL	abc	123
+Tom	NULL	abc	123
+Tom	NULL	abc	123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: Input: default@alter_partition_change_col1@p1=abc
+PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-POSTHOOK: query: select * from alter_partition_change_col1
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-Beck	0.0	__HIVE_DEFAULT_PARTITION__
-Beck	77.341	__HIVE_DEFAULT_PARTITION__
-Beck	79.9	__HIVE_DEFAULT_PARTITION__
-Beck	NULL	abc
-Beck	NULL	abc
-Beck	NULL	abc
-Cluck	5.96	__HIVE_DEFAULT_PARTITION__
-Cluck	NULL	abc
-Mary	33.33	__HIVE_DEFAULT_PARTITION__
-Mary	4.329	__HIVE_DEFAULT_PARTITION__
-Mary	NULL	abc
-Mary	NULL	abc
-Snow	55.71	__HIVE_DEFAULT_PARTITION__
-Snow	NULL	abc
-Tom	-12.25	__HIVE_DEFAULT_PARTITION__
-Tom	19.00	__HIVE_DEFAULT_PARTITION__
-Tom	234.79	__HIVE_DEFAULT_PARTITION__
-Tom	NULL	abc
-Tom	NULL	abc
-Tom	NULL	abc
-PREHOOK: query: alter table alter_partition_change_col1 partition (p1='abc') add columns (c2 decimal(14,4))
+Beck	0.0	__HIVE_DEFAULT_PARTITION__	123
+Beck	77.341	__HIVE_DEFAULT_PARTITION__	123
+Beck	79.9	__HIVE_DEFAULT_PARTITION__	123
+Cluck	5.96	__HIVE_DEFAULT_PARTITION__	123
+Mary	33.33	__HIVE_DEFAULT_PARTITION__	123
+Mary	4.329	__HIVE_DEFAULT_PARTITION__	123
+Snow	55.71	__HIVE_DEFAULT_PARTITION__	123
+Tom	-12.25	__HIVE_DEFAULT_PARTITION__	123
+Tom	19.00	__HIVE_DEFAULT_PARTITION__	123
+Tom	234.79	__HIVE_DEFAULT_PARTITION__	123
+PREHOOK: query: alter table alter_partition_change_col1 partition (p1='abc', p2='123') add columns (c2 decimal(14,4))
 PREHOOK: type: ALTERTABLE_ADDCOLS
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Output: default@alter_partition_change_col1@p1=abc
-POSTHOOK: query: alter table alter_partition_change_col1 partition (p1='abc') add columns (c2 decimal(14,4))
+PREHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
+POSTHOOK: query: alter table alter_partition_change_col1 partition (p1='abc', p2='123') add columns (c2 decimal(14,4))
 POSTHOOK: type: ALTERTABLE_ADDCOLS
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-POSTHOOK: Output: default@alter_partition_change_col1@p1=abc
-PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc')
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+POSTHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
+PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc')
+POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
 POSTHOOK: type: DESCTABLE
 POSTHOOK: Input: default@alter_partition_change_col1
 c1                  	string              	                    
 c2                  	decimal(14,4)       	                    
 p1                  	string              	                    
+p2                  	string              	                    
 	 	 
 # Partition Information	 	 
 # col_name            	data_type           	comment             
 	 	 
 p1                  	string              	                    
-PREHOOK: query: select * from alter_partition_change_col1
+p2                  	string              	                    
+PREHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+Beck	0.0	abc	123
+Beck	77.341	abc	123
+Beck	79.9	abc	123
+Cluck	5.96	abc	123
+Mary	33.33	abc	123
+Mary	4.329	abc	123
+Snow	55.71	abc	123
+Tom	-12.25	abc	123
+Tom	19.00	abc	123
+Tom	234.79	abc	123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 PREHOOK: type: QUERY
 PREHOOK: Input: default@alter_partition_change_col1
-PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-PREHOOK: Input: default@alter_partition_change_col1@p1=abc
+PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
 #### A masked pattern was here ####
-POSTHOOK: query: select * from alter_partition_change_col1
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
 POSTHOOK: type: QUERY
 POSTHOOK: Input: default@alter_partition_change_col1
-POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__
-POSTHOOK: Input: default@alter_partition_change_col1@p1=abc
-#### A masked pattern was here ####
-Beck	0.0	__HIVE_DEFAULT_PARTITION__
-Beck	0.0	abc
-Beck	77.341	__HIVE_DEFAULT_PARTITION__
-Beck	77.341	abc
-Beck	79.9	__HIVE_DEFAULT_PARTITION__
-Beck	79.9	abc
-Cluck	5.96	__HIVE_DEFAULT_PARTITION__
-Cluck	5.96	abc
-Mary	33.33	__HIVE_DEFAULT_PARTITION__
-Mary	33.33	abc
-Mary	4.329	__HIVE_DEFAULT_PARTITION__
-Mary	4.329	abc
-Snow	55.71	__HIVE_DEFAULT_PARTITION__
-Snow	55.71	abc
-Tom	-12.25	__HIVE_DEFAULT_PARTITION__
-Tom	-12.25	abc
-Tom	19.00	__HIVE_DEFAULT_PARTITION__
-Tom	19.00	abc
-Tom	234.79	__HIVE_DEFAULT_PARTITION__
-Tom	234.79	abc
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+Beck	0.0	__HIVE_DEFAULT_PARTITION__	123
+Beck	77.341	__HIVE_DEFAULT_PARTITION__	123
+Beck	79.9	__HIVE_DEFAULT_PARTITION__	123
+Cluck	5.96	__HIVE_DEFAULT_PARTITION__	123
+Mary	33.33	__HIVE_DEFAULT_PARTITION__	123
+Mary	4.329	__HIVE_DEFAULT_PARTITION__	123
+Snow	55.71	__HIVE_DEFAULT_PARTITION__	123
+Tom	-12.25	__HIVE_DEFAULT_PARTITION__	123
+Tom	19.00	__HIVE_DEFAULT_PARTITION__	123
+Tom	234.79	__HIVE_DEFAULT_PARTITION__	123
+PREHOOK: query: -- Try changing column for all partitions at once
+alter table alter_partition_change_col1 partition (p1, p2='123') change column c2 c2 decimal(10,0)
+PREHOOK: type: ALTERTABLE_RENAMECOL
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+PREHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
+POSTHOOK: query: -- Try changing column for all partitions at once
+alter table alter_partition_change_col1 partition (p1, p2='123') change column c2 c2 decimal(10,0)
+POSTHOOK: type: ALTERTABLE_RENAMECOL
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+POSTHOOK: Output: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+POSTHOOK: Output: default@alter_partition_change_col1@p1=abc/p2=123
+PREHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: query: describe alter_partition_change_col1 partition (p1='abc', p2='123')
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@alter_partition_change_col1
+c1                  	string              	                    
+c2                  	decimal(10,0)       	                    
+p1                  	string              	                    
+p2                  	string              	                    
+	 	 
+# Partition Information	 	 
+# col_name            	data_type           	comment             
+	 	 
+p1                  	string              	                    
+p2                  	string              	                    
+PREHOOK: query: describe alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123')
+PREHOOK: type: DESCTABLE
+PREHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: query: describe alter_partition_change_col1 partition (p1='__HIVE_DEFAULT_PARTITION__', p2='123')
+POSTHOOK: type: DESCTABLE
+POSTHOOK: Input: default@alter_partition_change_col1
+c1                  	string              	                    
+c2                  	decimal(10,0)       	                    
+p1                  	string              	                    
+p2                  	string              	                    
+	 	 
+# Partition Information	 	 
+# col_name            	data_type           	comment             
+	 	 
+p1                  	string              	                    
+p2                  	string              	                    
+PREHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='abc'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=abc/p2=123
+#### A masked pattern was here ####
+Beck	0	abc	123
+Beck	77	abc	123
+Beck	80	abc	123
+Cluck	6	abc	123
+Mary	33	abc	123
+Mary	4	abc	123
+Snow	56	abc	123
+Tom	-12	abc	123
+Tom	19	abc	123
+Tom	235	abc	123
+PREHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
+PREHOOK: type: QUERY
+PREHOOK: Input: default@alter_partition_change_col1
+PREHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+POSTHOOK: query: select * from alter_partition_change_col1 where p1='__HIVE_DEFAULT_PARTITION__'
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@alter_partition_change_col1
+POSTHOOK: Input: default@alter_partition_change_col1@p1=__HIVE_DEFAULT_PARTITION__/p2=123
+#### A masked pattern was here ####
+Beck	0	__HIVE_DEFAULT_PARTITION__	123
+Beck	77	__HIVE_DEFAULT_PARTITION__	123
+Beck	80	__HIVE_DEFAULT_PARTITION__	123
+Cluck	6	__HIVE_DEFAULT_PARTITION__	123
+Mary	33	__HIVE_DEFAULT_PARTITION__	123
+Mary	4	__HIVE_DEFAULT_PARTITION__	123
+Snow	56	__HIVE_DEFAULT_PARTITION__	123
+Tom	-12	__HIVE_DEFAULT_PARTITION__	123
+Tom	19	__HIVE_DEFAULT_PARTITION__	123
+Tom	235	__HIVE_DEFAULT_PARTITION__	123