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 2016/04/20 22:05:34 UTC

[17/30] hive git commit: HIVE-13349: Metastore Changes : API calls for retrieving primary keys and foreign keys information (Hari Subramaniyan, reviewed by Ashutosh Chauhan)

http://git-wip-us.apache.org/repos/asf/hive/blob/55375ec1/metastore/src/gen/thrift/gen-php/metastore/Types.php
----------------------------------------------------------------------
diff --git a/metastore/src/gen/thrift/gen-php/metastore/Types.php b/metastore/src/gen/thrift/gen-php/metastore/Types.php
index 488a920..e2fa963 100644
--- a/metastore/src/gen/thrift/gen-php/metastore/Types.php
+++ b/metastore/src/gen/thrift/gen-php/metastore/Types.php
@@ -369,70 +369,109 @@ class FieldSchema {
 
 }
 
-class Type {
+class SQLPrimaryKey {
   static $_TSPEC;
 
   /**
    * @var string
    */
-  public $name = null;
+  public $table_db = null;
   /**
    * @var string
    */
-  public $type1 = null;
+  public $table_name = null;
   /**
    * @var string
    */
-  public $type2 = null;
+  public $column_name = null;
   /**
-   * @var \metastore\FieldSchema[]
+   * @var int
    */
-  public $fields = null;
+  public $key_seq = null;
+  /**
+   * @var string
+   */
+  public $pk_name = null;
+  /**
+   * @var bool
+   */
+  public $enable_cstr = null;
+  /**
+   * @var bool
+   */
+  public $validate_cstr = null;
+  /**
+   * @var bool
+   */
+  public $rely_cstr = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'name',
+          'var' => 'table_db',
           'type' => TType::STRING,
           ),
         2 => array(
-          'var' => 'type1',
+          'var' => 'table_name',
           'type' => TType::STRING,
           ),
         3 => array(
-          'var' => 'type2',
+          'var' => 'column_name',
           'type' => TType::STRING,
           ),
         4 => array(
-          'var' => 'fields',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\metastore\FieldSchema',
-            ),
+          'var' => 'key_seq',
+          'type' => TType::I32,
+          ),
+        5 => array(
+          'var' => 'pk_name',
+          'type' => TType::STRING,
+          ),
+        6 => array(
+          'var' => 'enable_cstr',
+          'type' => TType::BOOL,
+          ),
+        7 => array(
+          'var' => 'validate_cstr',
+          'type' => TType::BOOL,
+          ),
+        8 => array(
+          'var' => 'rely_cstr',
+          'type' => TType::BOOL,
           ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['name'])) {
-        $this->name = $vals['name'];
+      if (isset($vals['table_db'])) {
+        $this->table_db = $vals['table_db'];
       }
-      if (isset($vals['type1'])) {
-        $this->type1 = $vals['type1'];
+      if (isset($vals['table_name'])) {
+        $this->table_name = $vals['table_name'];
       }
-      if (isset($vals['type2'])) {
-        $this->type2 = $vals['type2'];
+      if (isset($vals['column_name'])) {
+        $this->column_name = $vals['column_name'];
       }
-      if (isset($vals['fields'])) {
-        $this->fields = $vals['fields'];
+      if (isset($vals['key_seq'])) {
+        $this->key_seq = $vals['key_seq'];
+      }
+      if (isset($vals['pk_name'])) {
+        $this->pk_name = $vals['pk_name'];
+      }
+      if (isset($vals['enable_cstr'])) {
+        $this->enable_cstr = $vals['enable_cstr'];
+      }
+      if (isset($vals['validate_cstr'])) {
+        $this->validate_cstr = $vals['validate_cstr'];
+      }
+      if (isset($vals['rely_cstr'])) {
+        $this->rely_cstr = $vals['rely_cstr'];
       }
     }
   }
 
   public function getName() {
-    return 'Type';
+    return 'SQLPrimaryKey';
   }
 
   public function read($input)
@@ -452,39 +491,56 @@ class Type {
       {
         case 1:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->name);
+            $xfer += $input->readString($this->table_db);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 2:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->type1);
+            $xfer += $input->readString($this->table_name);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 3:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->type2);
+            $xfer += $input->readString($this->column_name);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 4:
-          if ($ftype == TType::LST) {
-            $this->fields = array();
-            $_size0 = 0;
-            $_etype3 = 0;
-            $xfer += $input->readListBegin($_etype3, $_size0);
-            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
-            {
-              $elem5 = null;
-              $elem5 = new \metastore\FieldSchema();
-              $xfer += $elem5->read($input);
-              $this->fields []= $elem5;
-            }
-            $xfer += $input->readListEnd();
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->key_seq);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->pk_name);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 6:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->enable_cstr);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 7:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->validate_cstr);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->rely_cstr);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -501,37 +557,45 @@ class Type {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Type');
-    if ($this->name !== null) {
-      $xfer += $output->writeFieldBegin('name', TType::STRING, 1);
-      $xfer += $output->writeString($this->name);
+    $xfer += $output->writeStructBegin('SQLPrimaryKey');
+    if ($this->table_db !== null) {
+      $xfer += $output->writeFieldBegin('table_db', TType::STRING, 1);
+      $xfer += $output->writeString($this->table_db);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->type1 !== null) {
-      $xfer += $output->writeFieldBegin('type1', TType::STRING, 2);
-      $xfer += $output->writeString($this->type1);
+    if ($this->table_name !== null) {
+      $xfer += $output->writeFieldBegin('table_name', TType::STRING, 2);
+      $xfer += $output->writeString($this->table_name);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->type2 !== null) {
-      $xfer += $output->writeFieldBegin('type2', TType::STRING, 3);
-      $xfer += $output->writeString($this->type2);
+    if ($this->column_name !== null) {
+      $xfer += $output->writeFieldBegin('column_name', TType::STRING, 3);
+      $xfer += $output->writeString($this->column_name);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->fields !== null) {
-      if (!is_array($this->fields)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('fields', TType::LST, 4);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->fields));
-        {
-          foreach ($this->fields as $iter6)
-          {
-            $xfer += $iter6->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
+    if ($this->key_seq !== null) {
+      $xfer += $output->writeFieldBegin('key_seq', TType::I32, 4);
+      $xfer += $output->writeI32($this->key_seq);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->pk_name !== null) {
+      $xfer += $output->writeFieldBegin('pk_name', TType::STRING, 5);
+      $xfer += $output->writeString($this->pk_name);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->enable_cstr !== null) {
+      $xfer += $output->writeFieldBegin('enable_cstr', TType::BOOL, 6);
+      $xfer += $output->writeBool($this->enable_cstr);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->validate_cstr !== null) {
+      $xfer += $output->writeFieldBegin('validate_cstr', TType::BOOL, 7);
+      $xfer += $output->writeBool($this->validate_cstr);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->rely_cstr !== null) {
+      $xfer += $output->writeFieldBegin('rely_cstr', TType::BOOL, 8);
+      $xfer += $output->writeBool($this->rely_cstr);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -541,80 +605,175 @@ class Type {
 
 }
 
-class HiveObjectRef {
+class SQLForeignKey {
   static $_TSPEC;
 
   /**
-   * @var int
+   * @var string
    */
-  public $objectType = null;
+  public $pktable_db = null;
   /**
    * @var string
    */
-  public $dbName = null;
+  public $pktable_name = null;
   /**
    * @var string
    */
-  public $objectName = null;
+  public $pkcolumn_name = null;
   /**
-   * @var string[]
+   * @var string
    */
-  public $partValues = null;
+  public $fktable_db = null;
   /**
    * @var string
    */
-  public $columnName = null;
+  public $fktable_name = null;
+  /**
+   * @var string
+   */
+  public $fkcolumn_name = null;
+  /**
+   * @var int
+   */
+  public $key_seq = null;
+  /**
+   * @var int
+   */
+  public $update_rule = null;
+  /**
+   * @var int
+   */
+  public $delete_rule = null;
+  /**
+   * @var string
+   */
+  public $fk_name = null;
+  /**
+   * @var string
+   */
+  public $pk_name = null;
+  /**
+   * @var bool
+   */
+  public $enable_cstr = null;
+  /**
+   * @var bool
+   */
+  public $validate_cstr = null;
+  /**
+   * @var bool
+   */
+  public $rely_cstr = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'objectType',
-          'type' => TType::I32,
+          'var' => 'pktable_db',
+          'type' => TType::STRING,
           ),
         2 => array(
-          'var' => 'dbName',
+          'var' => 'pktable_name',
           'type' => TType::STRING,
           ),
         3 => array(
-          'var' => 'objectName',
+          'var' => 'pkcolumn_name',
           'type' => TType::STRING,
           ),
         4 => array(
-          'var' => 'partValues',
-          'type' => TType::LST,
-          'etype' => TType::STRING,
-          'elem' => array(
-            'type' => TType::STRING,
-            ),
+          'var' => 'fktable_db',
+          'type' => TType::STRING,
           ),
         5 => array(
-          'var' => 'columnName',
+          'var' => 'fktable_name',
+          'type' => TType::STRING,
+          ),
+        6 => array(
+          'var' => 'fkcolumn_name',
+          'type' => TType::STRING,
+          ),
+        7 => array(
+          'var' => 'key_seq',
+          'type' => TType::I32,
+          ),
+        8 => array(
+          'var' => 'update_rule',
+          'type' => TType::I32,
+          ),
+        9 => array(
+          'var' => 'delete_rule',
+          'type' => TType::I32,
+          ),
+        10 => array(
+          'var' => 'fk_name',
+          'type' => TType::STRING,
+          ),
+        11 => array(
+          'var' => 'pk_name',
           'type' => TType::STRING,
           ),
+        12 => array(
+          'var' => 'enable_cstr',
+          'type' => TType::BOOL,
+          ),
+        13 => array(
+          'var' => 'validate_cstr',
+          'type' => TType::BOOL,
+          ),
+        14 => array(
+          'var' => 'rely_cstr',
+          'type' => TType::BOOL,
+          ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['objectType'])) {
-        $this->objectType = $vals['objectType'];
+      if (isset($vals['pktable_db'])) {
+        $this->pktable_db = $vals['pktable_db'];
       }
-      if (isset($vals['dbName'])) {
-        $this->dbName = $vals['dbName'];
+      if (isset($vals['pktable_name'])) {
+        $this->pktable_name = $vals['pktable_name'];
       }
-      if (isset($vals['objectName'])) {
-        $this->objectName = $vals['objectName'];
+      if (isset($vals['pkcolumn_name'])) {
+        $this->pkcolumn_name = $vals['pkcolumn_name'];
       }
-      if (isset($vals['partValues'])) {
-        $this->partValues = $vals['partValues'];
+      if (isset($vals['fktable_db'])) {
+        $this->fktable_db = $vals['fktable_db'];
       }
-      if (isset($vals['columnName'])) {
-        $this->columnName = $vals['columnName'];
+      if (isset($vals['fktable_name'])) {
+        $this->fktable_name = $vals['fktable_name'];
+      }
+      if (isset($vals['fkcolumn_name'])) {
+        $this->fkcolumn_name = $vals['fkcolumn_name'];
+      }
+      if (isset($vals['key_seq'])) {
+        $this->key_seq = $vals['key_seq'];
+      }
+      if (isset($vals['update_rule'])) {
+        $this->update_rule = $vals['update_rule'];
+      }
+      if (isset($vals['delete_rule'])) {
+        $this->delete_rule = $vals['delete_rule'];
+      }
+      if (isset($vals['fk_name'])) {
+        $this->fk_name = $vals['fk_name'];
+      }
+      if (isset($vals['pk_name'])) {
+        $this->pk_name = $vals['pk_name'];
+      }
+      if (isset($vals['enable_cstr'])) {
+        $this->enable_cstr = $vals['enable_cstr'];
+      }
+      if (isset($vals['validate_cstr'])) {
+        $this->validate_cstr = $vals['validate_cstr'];
+      }
+      if (isset($vals['rely_cstr'])) {
+        $this->rely_cstr = $vals['rely_cstr'];
       }
     }
   }
 
   public function getName() {
-    return 'HiveObjectRef';
+    return 'SQLForeignKey';
   }
 
   public function read($input)
@@ -633,98 +792,184 @@ class HiveObjectRef {
       switch ($fid)
       {
         case 1:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->objectType);
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->pktable_db);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 2:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->dbName);
+            $xfer += $input->readString($this->pktable_name);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 3:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->objectName);
+            $xfer += $input->readString($this->pkcolumn_name);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 4:
-          if ($ftype == TType::LST) {
-            $this->partValues = array();
-            $_size7 = 0;
-            $_etype10 = 0;
-            $xfer += $input->readListBegin($_etype10, $_size7);
-            for ($_i11 = 0; $_i11 < $_size7; ++$_i11)
-            {
-              $elem12 = null;
-              $xfer += $input->readString($elem12);
-              $this->partValues []= $elem12;
-            }
-            $xfer += $input->readListEnd();
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->fktable_db);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 5:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->columnName);
+            $xfer += $input->readString($this->fktable_name);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        default:
-          $xfer += $input->skip($ftype);
+        case 6:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->fkcolumn_name);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
           break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
+        case 7:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->key_seq);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 8:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->update_rule);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 9:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->delete_rule);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 10:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->fk_name);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 11:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->pk_name);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 12:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->enable_cstr);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 13:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->validate_cstr);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 14:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->rely_cstr);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
     return $xfer;
   }
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('HiveObjectRef');
-    if ($this->objectType !== null) {
-      $xfer += $output->writeFieldBegin('objectType', TType::I32, 1);
-      $xfer += $output->writeI32($this->objectType);
+    $xfer += $output->writeStructBegin('SQLForeignKey');
+    if ($this->pktable_db !== null) {
+      $xfer += $output->writeFieldBegin('pktable_db', TType::STRING, 1);
+      $xfer += $output->writeString($this->pktable_db);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->dbName !== null) {
-      $xfer += $output->writeFieldBegin('dbName', TType::STRING, 2);
-      $xfer += $output->writeString($this->dbName);
+    if ($this->pktable_name !== null) {
+      $xfer += $output->writeFieldBegin('pktable_name', TType::STRING, 2);
+      $xfer += $output->writeString($this->pktable_name);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->objectName !== null) {
-      $xfer += $output->writeFieldBegin('objectName', TType::STRING, 3);
-      $xfer += $output->writeString($this->objectName);
+    if ($this->pkcolumn_name !== null) {
+      $xfer += $output->writeFieldBegin('pkcolumn_name', TType::STRING, 3);
+      $xfer += $output->writeString($this->pkcolumn_name);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->partValues !== null) {
-      if (!is_array($this->partValues)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('partValues', TType::LST, 4);
-      {
-        $output->writeListBegin(TType::STRING, count($this->partValues));
-        {
-          foreach ($this->partValues as $iter13)
-          {
-            $xfer += $output->writeString($iter13);
-          }
-        }
-        $output->writeListEnd();
-      }
+    if ($this->fktable_db !== null) {
+      $xfer += $output->writeFieldBegin('fktable_db', TType::STRING, 4);
+      $xfer += $output->writeString($this->fktable_db);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->columnName !== null) {
-      $xfer += $output->writeFieldBegin('columnName', TType::STRING, 5);
-      $xfer += $output->writeString($this->columnName);
+    if ($this->fktable_name !== null) {
+      $xfer += $output->writeFieldBegin('fktable_name', TType::STRING, 5);
+      $xfer += $output->writeString($this->fktable_name);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fkcolumn_name !== null) {
+      $xfer += $output->writeFieldBegin('fkcolumn_name', TType::STRING, 6);
+      $xfer += $output->writeString($this->fkcolumn_name);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->key_seq !== null) {
+      $xfer += $output->writeFieldBegin('key_seq', TType::I32, 7);
+      $xfer += $output->writeI32($this->key_seq);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->update_rule !== null) {
+      $xfer += $output->writeFieldBegin('update_rule', TType::I32, 8);
+      $xfer += $output->writeI32($this->update_rule);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->delete_rule !== null) {
+      $xfer += $output->writeFieldBegin('delete_rule', TType::I32, 9);
+      $xfer += $output->writeI32($this->delete_rule);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->fk_name !== null) {
+      $xfer += $output->writeFieldBegin('fk_name', TType::STRING, 10);
+      $xfer += $output->writeString($this->fk_name);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->pk_name !== null) {
+      $xfer += $output->writeFieldBegin('pk_name', TType::STRING, 11);
+      $xfer += $output->writeString($this->pk_name);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->enable_cstr !== null) {
+      $xfer += $output->writeFieldBegin('enable_cstr', TType::BOOL, 12);
+      $xfer += $output->writeBool($this->enable_cstr);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->validate_cstr !== null) {
+      $xfer += $output->writeFieldBegin('validate_cstr', TType::BOOL, 13);
+      $xfer += $output->writeBool($this->validate_cstr);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->rely_cstr !== null) {
+      $xfer += $output->writeFieldBegin('rely_cstr', TType::BOOL, 14);
+      $xfer += $output->writeBool($this->rely_cstr);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -734,76 +979,70 @@ class HiveObjectRef {
 
 }
 
-class PrivilegeGrantInfo {
+class Type {
   static $_TSPEC;
 
   /**
    * @var string
    */
-  public $privilege = null;
-  /**
-   * @var int
-   */
-  public $createTime = null;
+  public $name = null;
   /**
    * @var string
    */
-  public $grantor = null;
+  public $type1 = null;
   /**
-   * @var int
+   * @var string
    */
-  public $grantorType = null;
+  public $type2 = null;
   /**
-   * @var bool
+   * @var \metastore\FieldSchema[]
    */
-  public $grantOption = null;
+  public $fields = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'privilege',
+          'var' => 'name',
           'type' => TType::STRING,
           ),
         2 => array(
-          'var' => 'createTime',
-          'type' => TType::I32,
+          'var' => 'type1',
+          'type' => TType::STRING,
           ),
         3 => array(
-          'var' => 'grantor',
+          'var' => 'type2',
           'type' => TType::STRING,
           ),
         4 => array(
-          'var' => 'grantorType',
-          'type' => TType::I32,
-          ),
-        5 => array(
-          'var' => 'grantOption',
-          'type' => TType::BOOL,
+          'var' => 'fields',
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\metastore\FieldSchema',
+            ),
           ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['privilege'])) {
-        $this->privilege = $vals['privilege'];
-      }
-      if (isset($vals['createTime'])) {
-        $this->createTime = $vals['createTime'];
+      if (isset($vals['name'])) {
+        $this->name = $vals['name'];
       }
-      if (isset($vals['grantor'])) {
-        $this->grantor = $vals['grantor'];
+      if (isset($vals['type1'])) {
+        $this->type1 = $vals['type1'];
       }
-      if (isset($vals['grantorType'])) {
-        $this->grantorType = $vals['grantorType'];
+      if (isset($vals['type2'])) {
+        $this->type2 = $vals['type2'];
       }
-      if (isset($vals['grantOption'])) {
-        $this->grantOption = $vals['grantOption'];
+      if (isset($vals['fields'])) {
+        $this->fields = $vals['fields'];
       }
     }
   }
 
   public function getName() {
-    return 'PrivilegeGrantInfo';
+    return 'Type';
   }
 
   public function read($input)
@@ -823,35 +1062,39 @@ class PrivilegeGrantInfo {
       {
         case 1:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->privilege);
+            $xfer += $input->readString($this->name);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 2:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->createTime);
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->type1);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 3:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->grantor);
+            $xfer += $input->readString($this->type2);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 4:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->grantorType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 5:
-          if ($ftype == TType::BOOL) {
-            $xfer += $input->readBool($this->grantOption);
+          if ($ftype == TType::LST) {
+            $this->fields = array();
+            $_size0 = 0;
+            $_etype3 = 0;
+            $xfer += $input->readListBegin($_etype3, $_size0);
+            for ($_i4 = 0; $_i4 < $_size0; ++$_i4)
+            {
+              $elem5 = null;
+              $elem5 = new \metastore\FieldSchema();
+              $xfer += $elem5->read($input);
+              $this->fields []= $elem5;
+            }
+            $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -868,30 +1111,37 @@ class PrivilegeGrantInfo {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('PrivilegeGrantInfo');
-    if ($this->privilege !== null) {
-      $xfer += $output->writeFieldBegin('privilege', TType::STRING, 1);
-      $xfer += $output->writeString($this->privilege);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->createTime !== null) {
-      $xfer += $output->writeFieldBegin('createTime', TType::I32, 2);
-      $xfer += $output->writeI32($this->createTime);
+    $xfer += $output->writeStructBegin('Type');
+    if ($this->name !== null) {
+      $xfer += $output->writeFieldBegin('name', TType::STRING, 1);
+      $xfer += $output->writeString($this->name);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->grantor !== null) {
-      $xfer += $output->writeFieldBegin('grantor', TType::STRING, 3);
-      $xfer += $output->writeString($this->grantor);
+    if ($this->type1 !== null) {
+      $xfer += $output->writeFieldBegin('type1', TType::STRING, 2);
+      $xfer += $output->writeString($this->type1);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->grantorType !== null) {
-      $xfer += $output->writeFieldBegin('grantorType', TType::I32, 4);
-      $xfer += $output->writeI32($this->grantorType);
+    if ($this->type2 !== null) {
+      $xfer += $output->writeFieldBegin('type2', TType::STRING, 3);
+      $xfer += $output->writeString($this->type2);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->grantOption !== null) {
-      $xfer += $output->writeFieldBegin('grantOption', TType::BOOL, 5);
-      $xfer += $output->writeBool($this->grantOption);
+    if ($this->fields !== null) {
+      if (!is_array($this->fields)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('fields', TType::LST, 4);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->fields));
+        {
+          foreach ($this->fields as $iter6)
+          {
+            $xfer += $iter6->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -901,67 +1151,80 @@ class PrivilegeGrantInfo {
 
 }
 
-class HiveObjectPrivilege {
+class HiveObjectRef {
   static $_TSPEC;
 
   /**
-   * @var \metastore\HiveObjectRef
+   * @var int
    */
-  public $hiveObject = null;
+  public $objectType = null;
   /**
    * @var string
    */
-  public $principalName = null;
+  public $dbName = null;
   /**
-   * @var int
+   * @var string
    */
-  public $principalType = null;
+  public $objectName = null;
   /**
-   * @var \metastore\PrivilegeGrantInfo
+   * @var string[]
    */
-  public $grantInfo = null;
+  public $partValues = null;
+  /**
+   * @var string
+   */
+  public $columnName = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'hiveObject',
-          'type' => TType::STRUCT,
-          'class' => '\metastore\HiveObjectRef',
+          'var' => 'objectType',
+          'type' => TType::I32,
           ),
         2 => array(
-          'var' => 'principalName',
+          'var' => 'dbName',
           'type' => TType::STRING,
           ),
         3 => array(
-          'var' => 'principalType',
-          'type' => TType::I32,
+          'var' => 'objectName',
+          'type' => TType::STRING,
           ),
         4 => array(
-          'var' => 'grantInfo',
-          'type' => TType::STRUCT,
-          'class' => '\metastore\PrivilegeGrantInfo',
+          'var' => 'partValues',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        5 => array(
+          'var' => 'columnName',
+          'type' => TType::STRING,
           ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['hiveObject'])) {
-        $this->hiveObject = $vals['hiveObject'];
+      if (isset($vals['objectType'])) {
+        $this->objectType = $vals['objectType'];
       }
-      if (isset($vals['principalName'])) {
-        $this->principalName = $vals['principalName'];
+      if (isset($vals['dbName'])) {
+        $this->dbName = $vals['dbName'];
       }
-      if (isset($vals['principalType'])) {
-        $this->principalType = $vals['principalType'];
+      if (isset($vals['objectName'])) {
+        $this->objectName = $vals['objectName'];
       }
-      if (isset($vals['grantInfo'])) {
-        $this->grantInfo = $vals['grantInfo'];
+      if (isset($vals['partValues'])) {
+        $this->partValues = $vals['partValues'];
+      }
+      if (isset($vals['columnName'])) {
+        $this->columnName = $vals['columnName'];
       }
     }
   }
 
   public function getName() {
-    return 'HiveObjectPrivilege';
+    return 'HiveObjectRef';
   }
 
   public function read($input)
@@ -980,31 +1243,46 @@ class HiveObjectPrivilege {
       switch ($fid)
       {
         case 1:
-          if ($ftype == TType::STRUCT) {
-            $this->hiveObject = new \metastore\HiveObjectRef();
-            $xfer += $this->hiveObject->read($input);
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->objectType);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 2:
           if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->principalName);
+            $xfer += $input->readString($this->dbName);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 3:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->principalType);
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->objectName);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 4:
-          if ($ftype == TType::STRUCT) {
-            $this->grantInfo = new \metastore\PrivilegeGrantInfo();
-            $xfer += $this->grantInfo->read($input);
+          if ($ftype == TType::LST) {
+            $this->partValues = array();
+            $_size7 = 0;
+            $_etype10 = 0;
+            $xfer += $input->readListBegin($_etype10, $_size7);
+            for ($_i11 = 0; $_i11 < $_size7; ++$_i11)
+            {
+              $elem12 = null;
+              $xfer += $input->readString($elem12);
+              $this->partValues []= $elem12;
+            }
+            $xfer += $input->readListEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->columnName);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -1021,31 +1299,42 @@ class HiveObjectPrivilege {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('HiveObjectPrivilege');
-    if ($this->hiveObject !== null) {
-      if (!is_object($this->hiveObject)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('hiveObject', TType::STRUCT, 1);
-      $xfer += $this->hiveObject->write($output);
+    $xfer += $output->writeStructBegin('HiveObjectRef');
+    if ($this->objectType !== null) {
+      $xfer += $output->writeFieldBegin('objectType', TType::I32, 1);
+      $xfer += $output->writeI32($this->objectType);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->principalName !== null) {
-      $xfer += $output->writeFieldBegin('principalName', TType::STRING, 2);
-      $xfer += $output->writeString($this->principalName);
+    if ($this->dbName !== null) {
+      $xfer += $output->writeFieldBegin('dbName', TType::STRING, 2);
+      $xfer += $output->writeString($this->dbName);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->principalType !== null) {
-      $xfer += $output->writeFieldBegin('principalType', TType::I32, 3);
-      $xfer += $output->writeI32($this->principalType);
+    if ($this->objectName !== null) {
+      $xfer += $output->writeFieldBegin('objectName', TType::STRING, 3);
+      $xfer += $output->writeString($this->objectName);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->grantInfo !== null) {
-      if (!is_object($this->grantInfo)) {
+    if ($this->partValues !== null) {
+      if (!is_array($this->partValues)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('grantInfo', TType::STRUCT, 4);
-      $xfer += $this->grantInfo->write($output);
+      $xfer += $output->writeFieldBegin('partValues', TType::LST, 4);
+      {
+        $output->writeListBegin(TType::STRING, count($this->partValues));
+        {
+          foreach ($this->partValues as $iter13)
+          {
+            $xfer += $output->writeString($iter13);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->columnName !== null) {
+      $xfer += $output->writeFieldBegin('columnName', TType::STRING, 5);
+      $xfer += $output->writeString($this->columnName);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -1055,37 +1344,76 @@ class HiveObjectPrivilege {
 
 }
 
-class PrivilegeBag {
+class PrivilegeGrantInfo {
   static $_TSPEC;
 
   /**
-   * @var \metastore\HiveObjectPrivilege[]
+   * @var string
    */
-  public $privileges = null;
+  public $privilege = null;
+  /**
+   * @var int
+   */
+  public $createTime = null;
+  /**
+   * @var string
+   */
+  public $grantor = null;
+  /**
+   * @var int
+   */
+  public $grantorType = null;
+  /**
+   * @var bool
+   */
+  public $grantOption = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'privileges',
-          'type' => TType::LST,
-          'etype' => TType::STRUCT,
-          'elem' => array(
-            'type' => TType::STRUCT,
-            'class' => '\metastore\HiveObjectPrivilege',
-            ),
+          'var' => 'privilege',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'createTime',
+          'type' => TType::I32,
+          ),
+        3 => array(
+          'var' => 'grantor',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'grantorType',
+          'type' => TType::I32,
+          ),
+        5 => array(
+          'var' => 'grantOption',
+          'type' => TType::BOOL,
           ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['privileges'])) {
-        $this->privileges = $vals['privileges'];
+      if (isset($vals['privilege'])) {
+        $this->privilege = $vals['privilege'];
+      }
+      if (isset($vals['createTime'])) {
+        $this->createTime = $vals['createTime'];
+      }
+      if (isset($vals['grantor'])) {
+        $this->grantor = $vals['grantor'];
+      }
+      if (isset($vals['grantorType'])) {
+        $this->grantorType = $vals['grantorType'];
+      }
+      if (isset($vals['grantOption'])) {
+        $this->grantOption = $vals['grantOption'];
       }
     }
   }
 
   public function getName() {
-    return 'PrivilegeBag';
+    return 'PrivilegeGrantInfo';
   }
 
   public function read($input)
@@ -1104,19 +1432,36 @@ class PrivilegeBag {
       switch ($fid)
       {
         case 1:
-          if ($ftype == TType::LST) {
-            $this->privileges = array();
-            $_size14 = 0;
-            $_etype17 = 0;
-            $xfer += $input->readListBegin($_etype17, $_size14);
-            for ($_i18 = 0; $_i18 < $_size14; ++$_i18)
-            {
-              $elem19 = null;
-              $elem19 = new \metastore\HiveObjectPrivilege();
-              $xfer += $elem19->read($input);
-              $this->privileges []= $elem19;
-            }
-            $xfer += $input->readListEnd();
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->privilege);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->createTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->grantor);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->grantorType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->grantOption);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -1133,118 +1478,100 @@ class PrivilegeBag {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('PrivilegeBag');
-    if ($this->privileges !== null) {
-      if (!is_array($this->privileges)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('privileges', TType::LST, 1);
-      {
-        $output->writeListBegin(TType::STRUCT, count($this->privileges));
-        {
-          foreach ($this->privileges as $iter20)
-          {
-            $xfer += $iter20->write($output);
-          }
-        }
-        $output->writeListEnd();
-      }
+    $xfer += $output->writeStructBegin('PrivilegeGrantInfo');
+    if ($this->privilege !== null) {
+      $xfer += $output->writeFieldBegin('privilege', TType::STRING, 1);
+      $xfer += $output->writeString($this->privilege);
       $xfer += $output->writeFieldEnd();
     }
-    $xfer += $output->writeFieldStop();
-    $xfer += $output->writeStructEnd();
-    return $xfer;
-  }
-
-}
-
-class PrincipalPrivilegeSet {
+    if ($this->createTime !== null) {
+      $xfer += $output->writeFieldBegin('createTime', TType::I32, 2);
+      $xfer += $output->writeI32($this->createTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->grantor !== null) {
+      $xfer += $output->writeFieldBegin('grantor', TType::STRING, 3);
+      $xfer += $output->writeString($this->grantor);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->grantorType !== null) {
+      $xfer += $output->writeFieldBegin('grantorType', TType::I32, 4);
+      $xfer += $output->writeI32($this->grantorType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->grantOption !== null) {
+      $xfer += $output->writeFieldBegin('grantOption', TType::BOOL, 5);
+      $xfer += $output->writeBool($this->grantOption);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class HiveObjectPrivilege {
   static $_TSPEC;
 
   /**
-   * @var array
+   * @var \metastore\HiveObjectRef
    */
-  public $userPrivileges = null;
+  public $hiveObject = null;
   /**
-   * @var array
+   * @var string
    */
-  public $groupPrivileges = null;
+  public $principalName = null;
   /**
-   * @var array
+   * @var int
    */
-  public $rolePrivileges = null;
+  public $principalType = null;
+  /**
+   * @var \metastore\PrivilegeGrantInfo
+   */
+  public $grantInfo = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'userPrivileges',
-          'type' => TType::MAP,
-          'ktype' => TType::STRING,
-          'vtype' => TType::LST,
-          'key' => array(
-            'type' => TType::STRING,
-          ),
-          'val' => array(
-            'type' => TType::LST,
-            'etype' => TType::STRUCT,
-            'elem' => array(
-              'type' => TType::STRUCT,
-              'class' => '\metastore\PrivilegeGrantInfo',
-              ),
-            ),
+          'var' => 'hiveObject',
+          'type' => TType::STRUCT,
+          'class' => '\metastore\HiveObjectRef',
           ),
         2 => array(
-          'var' => 'groupPrivileges',
-          'type' => TType::MAP,
-          'ktype' => TType::STRING,
-          'vtype' => TType::LST,
-          'key' => array(
-            'type' => TType::STRING,
-          ),
-          'val' => array(
-            'type' => TType::LST,
-            'etype' => TType::STRUCT,
-            'elem' => array(
-              'type' => TType::STRUCT,
-              'class' => '\metastore\PrivilegeGrantInfo',
-              ),
-            ),
+          'var' => 'principalName',
+          'type' => TType::STRING,
           ),
         3 => array(
-          'var' => 'rolePrivileges',
-          'type' => TType::MAP,
-          'ktype' => TType::STRING,
-          'vtype' => TType::LST,
-          'key' => array(
-            'type' => TType::STRING,
+          'var' => 'principalType',
+          'type' => TType::I32,
           ),
-          'val' => array(
-            'type' => TType::LST,
-            'etype' => TType::STRUCT,
-            'elem' => array(
-              'type' => TType::STRUCT,
-              'class' => '\metastore\PrivilegeGrantInfo',
-              ),
-            ),
+        4 => array(
+          'var' => 'grantInfo',
+          'type' => TType::STRUCT,
+          'class' => '\metastore\PrivilegeGrantInfo',
           ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['userPrivileges'])) {
-        $this->userPrivileges = $vals['userPrivileges'];
+      if (isset($vals['hiveObject'])) {
+        $this->hiveObject = $vals['hiveObject'];
       }
-      if (isset($vals['groupPrivileges'])) {
-        $this->groupPrivileges = $vals['groupPrivileges'];
+      if (isset($vals['principalName'])) {
+        $this->principalName = $vals['principalName'];
       }
-      if (isset($vals['rolePrivileges'])) {
-        $this->rolePrivileges = $vals['rolePrivileges'];
+      if (isset($vals['principalType'])) {
+        $this->principalType = $vals['principalType'];
+      }
+      if (isset($vals['grantInfo'])) {
+        $this->grantInfo = $vals['grantInfo'];
       }
     }
   }
 
   public function getName() {
-    return 'PrincipalPrivilegeSet';
+    return 'HiveObjectPrivilege';
   }
 
   public function read($input)
@@ -1263,94 +1590,31 @@ class PrincipalPrivilegeSet {
       switch ($fid)
       {
         case 1:
-          if ($ftype == TType::MAP) {
-            $this->userPrivileges = array();
-            $_size21 = 0;
-            $_ktype22 = 0;
-            $_vtype23 = 0;
-            $xfer += $input->readMapBegin($_ktype22, $_vtype23, $_size21);
-            for ($_i25 = 0; $_i25 < $_size21; ++$_i25)
-            {
-              $key26 = '';
-              $val27 = array();
-              $xfer += $input->readString($key26);
-              $val27 = array();
-              $_size28 = 0;
-              $_etype31 = 0;
-              $xfer += $input->readListBegin($_etype31, $_size28);
-              for ($_i32 = 0; $_i32 < $_size28; ++$_i32)
-              {
-                $elem33 = null;
-                $elem33 = new \metastore\PrivilegeGrantInfo();
-                $xfer += $elem33->read($input);
-                $val27 []= $elem33;
-              }
-              $xfer += $input->readListEnd();
-              $this->userPrivileges[$key26] = $val27;
-            }
-            $xfer += $input->readMapEnd();
+          if ($ftype == TType::STRUCT) {
+            $this->hiveObject = new \metastore\HiveObjectRef();
+            $xfer += $this->hiveObject->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 2:
-          if ($ftype == TType::MAP) {
-            $this->groupPrivileges = array();
-            $_size34 = 0;
-            $_ktype35 = 0;
-            $_vtype36 = 0;
-            $xfer += $input->readMapBegin($_ktype35, $_vtype36, $_size34);
-            for ($_i38 = 0; $_i38 < $_size34; ++$_i38)
-            {
-              $key39 = '';
-              $val40 = array();
-              $xfer += $input->readString($key39);
-              $val40 = array();
-              $_size41 = 0;
-              $_etype44 = 0;
-              $xfer += $input->readListBegin($_etype44, $_size41);
-              for ($_i45 = 0; $_i45 < $_size41; ++$_i45)
-              {
-                $elem46 = null;
-                $elem46 = new \metastore\PrivilegeGrantInfo();
-                $xfer += $elem46->read($input);
-                $val40 []= $elem46;
-              }
-              $xfer += $input->readListEnd();
-              $this->groupPrivileges[$key39] = $val40;
-            }
-            $xfer += $input->readMapEnd();
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->principalName);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 3:
-          if ($ftype == TType::MAP) {
-            $this->rolePrivileges = array();
-            $_size47 = 0;
-            $_ktype48 = 0;
-            $_vtype49 = 0;
-            $xfer += $input->readMapBegin($_ktype48, $_vtype49, $_size47);
-            for ($_i51 = 0; $_i51 < $_size47; ++$_i51)
-            {
-              $key52 = '';
-              $val53 = array();
-              $xfer += $input->readString($key52);
-              $val53 = array();
-              $_size54 = 0;
-              $_etype57 = 0;
-              $xfer += $input->readListBegin($_etype57, $_size54);
-              for ($_i58 = 0; $_i58 < $_size54; ++$_i58)
-              {
-                $elem59 = null;
-                $elem59 = new \metastore\PrivilegeGrantInfo();
-                $xfer += $elem59->read($input);
-                $val53 []= $elem59;
-              }
-              $xfer += $input->readListEnd();
-              $this->rolePrivileges[$key52] = $val53;
-            }
-            $xfer += $input->readMapEnd();
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->principalType);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->grantInfo = new \metastore\PrivilegeGrantInfo();
+            $xfer += $this->grantInfo->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -1367,86 +1631,31 @@ class PrincipalPrivilegeSet {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('PrincipalPrivilegeSet');
-    if ($this->userPrivileges !== null) {
-      if (!is_array($this->userPrivileges)) {
+    $xfer += $output->writeStructBegin('HiveObjectPrivilege');
+    if ($this->hiveObject !== null) {
+      if (!is_object($this->hiveObject)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('userPrivileges', TType::MAP, 1);
-      {
-        $output->writeMapBegin(TType::STRING, TType::LST, count($this->userPrivileges));
-        {
-          foreach ($this->userPrivileges as $kiter60 => $viter61)
-          {
-            $xfer += $output->writeString($kiter60);
-            {
-              $output->writeListBegin(TType::STRUCT, count($viter61));
-              {
-                foreach ($viter61 as $iter62)
-                {
-                  $xfer += $iter62->write($output);
-                }
-              }
-              $output->writeListEnd();
-            }
-          }
-        }
-        $output->writeMapEnd();
-      }
+      $xfer += $output->writeFieldBegin('hiveObject', TType::STRUCT, 1);
+      $xfer += $this->hiveObject->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->groupPrivileges !== null) {
-      if (!is_array($this->groupPrivileges)) {
+    if ($this->principalName !== null) {
+      $xfer += $output->writeFieldBegin('principalName', TType::STRING, 2);
+      $xfer += $output->writeString($this->principalName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->principalType !== null) {
+      $xfer += $output->writeFieldBegin('principalType', TType::I32, 3);
+      $xfer += $output->writeI32($this->principalType);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->grantInfo !== null) {
+      if (!is_object($this->grantInfo)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('groupPrivileges', TType::MAP, 2);
-      {
-        $output->writeMapBegin(TType::STRING, TType::LST, count($this->groupPrivileges));
-        {
-          foreach ($this->groupPrivileges as $kiter63 => $viter64)
-          {
-            $xfer += $output->writeString($kiter63);
-            {
-              $output->writeListBegin(TType::STRUCT, count($viter64));
-              {
-                foreach ($viter64 as $iter65)
-                {
-                  $xfer += $iter65->write($output);
-                }
-              }
-              $output->writeListEnd();
-            }
-          }
-        }
-        $output->writeMapEnd();
-      }
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->rolePrivileges !== null) {
-      if (!is_array($this->rolePrivileges)) {
-        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
-      }
-      $xfer += $output->writeFieldBegin('rolePrivileges', TType::MAP, 3);
-      {
-        $output->writeMapBegin(TType::STRING, TType::LST, count($this->rolePrivileges));
-        {
-          foreach ($this->rolePrivileges as $kiter66 => $viter67)
-          {
-            $xfer += $output->writeString($kiter66);
-            {
-              $output->writeListBegin(TType::STRUCT, count($viter67));
-              {
-                foreach ($viter67 as $iter68)
-                {
-                  $xfer += $iter68->write($output);
-                }
-              }
-              $output->writeListEnd();
-            }
-          }
-        }
-        $output->writeMapEnd();
-      }
+      $xfer += $output->writeFieldBegin('grantInfo', TType::STRUCT, 4);
+      $xfer += $this->grantInfo->write($output);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -1456,55 +1665,37 @@ class PrincipalPrivilegeSet {
 
 }
 
-class GrantRevokePrivilegeRequest {
+class PrivilegeBag {
   static $_TSPEC;
 
   /**
-   * @var int
-   */
-  public $requestType = null;
-  /**
-   * @var \metastore\PrivilegeBag
+   * @var \metastore\HiveObjectPrivilege[]
    */
   public $privileges = null;
-  /**
-   * @var bool
-   */
-  public $revokeGrantOption = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'requestType',
-          'type' => TType::I32,
-          ),
-        2 => array(
           'var' => 'privileges',
-          'type' => TType::STRUCT,
-          'class' => '\metastore\PrivilegeBag',
-          ),
-        3 => array(
-          'var' => 'revokeGrantOption',
-          'type' => TType::BOOL,
+          'type' => TType::LST,
+          'etype' => TType::STRUCT,
+          'elem' => array(
+            'type' => TType::STRUCT,
+            'class' => '\metastore\HiveObjectPrivilege',
+            ),
           ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['requestType'])) {
-        $this->requestType = $vals['requestType'];
-      }
       if (isset($vals['privileges'])) {
         $this->privileges = $vals['privileges'];
       }
-      if (isset($vals['revokeGrantOption'])) {
-        $this->revokeGrantOption = $vals['revokeGrantOption'];
-      }
     }
   }
 
   public function getName() {
-    return 'GrantRevokePrivilegeRequest';
+    return 'PrivilegeBag';
   }
 
   public function read($input)
@@ -1523,23 +1714,19 @@ class GrantRevokePrivilegeRequest {
       switch ($fid)
       {
         case 1:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->requestType);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 2:
-          if ($ftype == TType::STRUCT) {
-            $this->privileges = new \metastore\PrivilegeBag();
-            $xfer += $this->privileges->read($input);
-          } else {
-            $xfer += $input->skip($ftype);
-          }
-          break;
-        case 3:
-          if ($ftype == TType::BOOL) {
-            $xfer += $input->readBool($this->revokeGrantOption);
+          if ($ftype == TType::LST) {
+            $this->privileges = array();
+            $_size14 = 0;
+            $_etype17 = 0;
+            $xfer += $input->readListBegin($_etype17, $_size14);
+            for ($_i18 = 0; $_i18 < $_size14; ++$_i18)
+            {
+              $elem19 = null;
+              $elem19 = new \metastore\HiveObjectPrivilege();
+              $xfer += $elem19->read($input);
+              $this->privileges []= $elem19;
+            }
+            $xfer += $input->readListEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -1556,23 +1743,22 @@ class GrantRevokePrivilegeRequest {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('GrantRevokePrivilegeRequest');
-    if ($this->requestType !== null) {
-      $xfer += $output->writeFieldBegin('requestType', TType::I32, 1);
-      $xfer += $output->writeI32($this->requestType);
-      $xfer += $output->writeFieldEnd();
-    }
+    $xfer += $output->writeStructBegin('PrivilegeBag');
     if ($this->privileges !== null) {
-      if (!is_object($this->privileges)) {
+      if (!is_array($this->privileges)) {
         throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
       }
-      $xfer += $output->writeFieldBegin('privileges', TType::STRUCT, 2);
-      $xfer += $this->privileges->write($output);
-      $xfer += $output->writeFieldEnd();
-    }
-    if ($this->revokeGrantOption !== null) {
-      $xfer += $output->writeFieldBegin('revokeGrantOption', TType::BOOL, 3);
-      $xfer += $output->writeBool($this->revokeGrantOption);
+      $xfer += $output->writeFieldBegin('privileges', TType::LST, 1);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->privileges));
+        {
+          foreach ($this->privileges as $iter20)
+          {
+            $xfer += $iter20->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -1582,32 +1768,93 @@ class GrantRevokePrivilegeRequest {
 
 }
 
-class GrantRevokePrivilegeResponse {
+class PrincipalPrivilegeSet {
   static $_TSPEC;
 
   /**
-   * @var bool
+   * @var array
    */
-  public $success = null;
+  public $userPrivileges = null;
+  /**
+   * @var array
+   */
+  public $groupPrivileges = null;
+  /**
+   * @var array
+   */
+  public $rolePrivileges = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'success',
-          'type' => TType::BOOL,
+          'var' => 'userPrivileges',
+          'type' => TType::MAP,
+          'ktype' => TType::STRING,
+          'vtype' => TType::LST,
+          'key' => array(
+            'type' => TType::STRING,
+          ),
+          'val' => array(
+            'type' => TType::LST,
+            'etype' => TType::STRUCT,
+            'elem' => array(
+              'type' => TType::STRUCT,
+              'class' => '\metastore\PrivilegeGrantInfo',
+              ),
+            ),
+          ),
+        2 => array(
+          'var' => 'groupPrivileges',
+          'type' => TType::MAP,
+          'ktype' => TType::STRING,
+          'vtype' => TType::LST,
+          'key' => array(
+            'type' => TType::STRING,
+          ),
+          'val' => array(
+            'type' => TType::LST,
+            'etype' => TType::STRUCT,
+            'elem' => array(
+              'type' => TType::STRUCT,
+              'class' => '\metastore\PrivilegeGrantInfo',
+              ),
+            ),
+          ),
+        3 => array(
+          'var' => 'rolePrivileges',
+          'type' => TType::MAP,
+          'ktype' => TType::STRING,
+          'vtype' => TType::LST,
+          'key' => array(
+            'type' => TType::STRING,
+          ),
+          'val' => array(
+            'type' => TType::LST,
+            'etype' => TType::STRUCT,
+            'elem' => array(
+              'type' => TType::STRUCT,
+              'class' => '\metastore\PrivilegeGrantInfo',
+              ),
+            ),
           ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['success'])) {
-        $this->success = $vals['success'];
+      if (isset($vals['userPrivileges'])) {
+        $this->userPrivileges = $vals['userPrivileges'];
+      }
+      if (isset($vals['groupPrivileges'])) {
+        $this->groupPrivileges = $vals['groupPrivileges'];
+      }
+      if (isset($vals['rolePrivileges'])) {
+        $this->rolePrivileges = $vals['rolePrivileges'];
       }
     }
   }
 
   public function getName() {
-    return 'GrantRevokePrivilegeResponse';
+    return 'PrincipalPrivilegeSet';
   }
 
   public function read($input)
@@ -1626,28 +1873,190 @@ class GrantRevokePrivilegeResponse {
       switch ($fid)
       {
         case 1:
-          if ($ftype == TType::BOOL) {
-            $xfer += $input->readBool($this->success);
+          if ($ftype == TType::MAP) {
+            $this->userPrivileges = array();
+            $_size21 = 0;
+            $_ktype22 = 0;
+            $_vtype23 = 0;
+            $xfer += $input->readMapBegin($_ktype22, $_vtype23, $_size21);
+            for ($_i25 = 0; $_i25 < $_size21; ++$_i25)
+            {
+              $key26 = '';
+              $val27 = array();
+              $xfer += $input->readString($key26);
+              $val27 = array();
+              $_size28 = 0;
+              $_etype31 = 0;
+              $xfer += $input->readListBegin($_etype31, $_size28);
+              for ($_i32 = 0; $_i32 < $_size28; ++$_i32)
+              {
+                $elem33 = null;
+                $elem33 = new \metastore\PrivilegeGrantInfo();
+                $xfer += $elem33->read($input);
+                $val27 []= $elem33;
+              }
+              $xfer += $input->readListEnd();
+              $this->userPrivileges[$key26] = $val27;
+            }
+            $xfer += $input->readMapEnd();
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
-        default:
-          $xfer += $input->skip($ftype);
-          break;
-      }
-      $xfer += $input->readFieldEnd();
-    }
-    $xfer += $input->readStructEnd();
-    return $xfer;
-  }
-
-  public function write($output) {
+        case 2:
+          if ($ftype == TType::MAP) {
+            $this->groupPrivileges = array();
+            $_size34 = 0;
+            $_ktype35 = 0;
+            $_vtype36 = 0;
+            $xfer += $input->readMapBegin($_ktype35, $_vtype36, $_size34);
+            for ($_i38 = 0; $_i38 < $_size34; ++$_i38)
+            {
+              $key39 = '';
+              $val40 = array();
+              $xfer += $input->readString($key39);
+              $val40 = array();
+              $_size41 = 0;
+              $_etype44 = 0;
+              $xfer += $input->readListBegin($_etype44, $_size41);
+              for ($_i45 = 0; $_i45 < $_size41; ++$_i45)
+              {
+                $elem46 = null;
+                $elem46 = new \metastore\PrivilegeGrantInfo();
+                $xfer += $elem46->read($input);
+                $val40 []= $elem46;
+              }
+              $xfer += $input->readListEnd();
+              $this->groupPrivileges[$key39] = $val40;
+            }
+            $xfer += $input->readMapEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::MAP) {
+            $this->rolePrivileges = array();
+            $_size47 = 0;
+            $_ktype48 = 0;
+            $_vtype49 = 0;
+            $xfer += $input->readMapBegin($_ktype48, $_vtype49, $_size47);
+            for ($_i51 = 0; $_i51 < $_size47; ++$_i51)
+            {
+              $key52 = '';
+              $val53 = array();
+              $xfer += $input->readString($key52);
+              $val53 = array();
+              $_size54 = 0;
+              $_etype57 = 0;
+              $xfer += $input->readListBegin($_etype57, $_size54);
+              for ($_i58 = 0; $_i58 < $_size54; ++$_i58)
+              {
+                $elem59 = null;
+                $elem59 = new \metastore\PrivilegeGrantInfo();
+                $xfer += $elem59->read($input);
+                $val53 []= $elem59;
+              }
+              $xfer += $input->readListEnd();
+              $this->rolePrivileges[$key52] = $val53;
+            }
+            $xfer += $input->readMapEnd();
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('GrantRevokePrivilegeResponse');
-    if ($this->success !== null) {
-      $xfer += $output->writeFieldBegin('success', TType::BOOL, 1);
-      $xfer += $output->writeBool($this->success);
+    $xfer += $output->writeStructBegin('PrincipalPrivilegeSet');
+    if ($this->userPrivileges !== null) {
+      if (!is_array($this->userPrivileges)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('userPrivileges', TType::MAP, 1);
+      {
+        $output->writeMapBegin(TType::STRING, TType::LST, count($this->userPrivileges));
+        {
+          foreach ($this->userPrivileges as $kiter60 => $viter61)
+          {
+            $xfer += $output->writeString($kiter60);
+            {
+              $output->writeListBegin(TType::STRUCT, count($viter61));
+              {
+                foreach ($viter61 as $iter62)
+                {
+                  $xfer += $iter62->write($output);
+                }
+              }
+              $output->writeListEnd();
+            }
+          }
+        }
+        $output->writeMapEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->groupPrivileges !== null) {
+      if (!is_array($this->groupPrivileges)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('groupPrivileges', TType::MAP, 2);
+      {
+        $output->writeMapBegin(TType::STRING, TType::LST, count($this->groupPrivileges));
+        {
+          foreach ($this->groupPrivileges as $kiter63 => $viter64)
+          {
+            $xfer += $output->writeString($kiter63);
+            {
+              $output->writeListBegin(TType::STRUCT, count($viter64));
+              {
+                foreach ($viter64 as $iter65)
+                {
+                  $xfer += $iter65->write($output);
+                }
+              }
+              $output->writeListEnd();
+            }
+          }
+        }
+        $output->writeMapEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->rolePrivileges !== null) {
+      if (!is_array($this->rolePrivileges)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('rolePrivileges', TType::MAP, 3);
+      {
+        $output->writeMapBegin(TType::STRING, TType::LST, count($this->rolePrivileges));
+        {
+          foreach ($this->rolePrivileges as $kiter66 => $viter67)
+          {
+            $xfer += $output->writeString($kiter66);
+            {
+              $output->writeListBegin(TType::STRUCT, count($viter67));
+              {
+                foreach ($viter67 as $iter68)
+                {
+                  $xfer += $iter68->write($output);
+                }
+              }
+              $output->writeListEnd();
+            }
+          }
+        }
+        $output->writeMapEnd();
+      }
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -1657,54 +2066,55 @@ class GrantRevokePrivilegeResponse {
 
 }
 
-class Role {
+class GrantRevokePrivilegeRequest {
   static $_TSPEC;
 
   /**
-   * @var string
+   * @var int
    */
-  public $roleName = null;
+  public $requestType = null;
   /**
-   * @var int
+   * @var \metastore\PrivilegeBag
    */
-  public $createTime = null;
+  public $privileges = null;
   /**
-   * @var string
+   * @var bool
    */
-  public $ownerName = null;
+  public $revokeGrantOption = null;
 
   public function __construct($vals=null) {
     if (!isset(self::$_TSPEC)) {
       self::$_TSPEC = array(
         1 => array(
-          'var' => 'roleName',
-          'type' => TType::STRING,
+          'var' => 'requestType',
+          'type' => TType::I32,
           ),
         2 => array(
-          'var' => 'createTime',
-          'type' => TType::I32,
+          'var' => 'privileges',
+          'type' => TType::STRUCT,
+          'class' => '\metastore\PrivilegeBag',
           ),
         3 => array(
-          'var' => 'ownerName',
-          'type' => TType::STRING,
+          'var' => 'revokeGrantOption',
+          'type' => TType::BOOL,
           ),
         );
     }
     if (is_array($vals)) {
-      if (isset($vals['roleName'])) {
-        $this->roleName = $vals['roleName'];
+      if (isset($vals['requestType'])) {
+        $this->requestType = $vals['requestType'];
       }
-      if (isset($vals['createTime'])) {
-        $this->createTime = $vals['createTime'];
+      if (isset($vals['privileges'])) {
+        $this->privileges = $vals['privileges'];
       }
-      if (isset($vals['ownerName'])) {
-        $this->ownerName = $vals['ownerName'];
+      if (isset($vals['revokeGrantOption'])) {
+        $this->revokeGrantOption = $vals['revokeGrantOption'];
       }
     }
   }
 
   public function getName() {
-    return 'Role';
+    return 'GrantRevokePrivilegeRequest';
   }
 
   public function read($input)
@@ -1723,22 +2133,23 @@ class Role {
       switch ($fid)
       {
         case 1:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->roleName);
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->requestType);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 2:
-          if ($ftype == TType::I32) {
-            $xfer += $input->readI32($this->createTime);
+          if ($ftype == TType::STRUCT) {
+            $this->privileges = new \metastore\PrivilegeBag();
+            $xfer += $this->privileges->read($input);
           } else {
             $xfer += $input->skip($ftype);
           }
           break;
         case 3:
-          if ($ftype == TType::STRING) {
-            $xfer += $input->readString($this->ownerName);
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->revokeGrantOption);
           } else {
             $xfer += $input->skip($ftype);
           }
@@ -1755,20 +2166,23 @@ class Role {
 
   public function write($output) {
     $xfer = 0;
-    $xfer += $output->writeStructBegin('Role');
-    if ($this->roleName !== null) {
-      $xfer += $output->writeFieldBegin('roleName', TType::STRING, 1);
-      $xfer += $output->writeString($this->roleName);
+    $xfer += $output->writeStructBegin('GrantRevokePrivilegeRequest');
+    if ($this->requestType !== null) {
+      $xfer += $output->writeFieldBegin('requestType', TType::I32, 1);
+      $xfer += $output->writeI32($this->requestType);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->createTime !== null) {
-      $xfer += $output->writeFieldBegin('createTime', TType::I32, 2);
-      $xfer += $output->writeI32($this->createTime);
+    if ($this->privileges !== null) {
+      if (!is_object($this->privileges)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('privileges', TType::STRUCT, 2);
+      $xfer += $this->privileges->write($output);
       $xfer += $output->writeFieldEnd();
     }
-    if ($this->ownerName !== null) {
-      $xfer += $output->writeFieldBegin('ownerName', TType::STRING, 3);
-      $xfer += $output->writeString($this->ownerName);
+    if ($this->revokeGrantOption !== null) {
+      $xfer += $output->writeFieldBegin('revokeGrantOption', TType::BOOL, 3);
+      $xfer += $output->writeBool($this->revokeGrantOption);
       $xfer += $output->writeFieldEnd();
     }
     $xfer += $output->writeFieldStop();
@@ -1778,32 +2192,228 @@ class Role {
 
 }
 
-class RolePrincipalGrant {
+class GrantRevokePrivilegeResponse {
   static $_TSPEC;
 
   /**
-   * @var string
-   */
-  public $roleName = null;
-  /**
-   * @var string
-   */
-  public $principalName = null;
-  /**
-   * @var int
-   */
-  public $principalType = null;
-  /**
    * @var bool
    */
-  public $grantOption = null;
-  /**
-   * @var int
-   */
-  public $grantTime = null;
-  /**
-   * @var string
-   */
+  public $success = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'success',
+          'type' => TType::BOOL,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['success'])) {
+        $this->success = $vals['success'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'GrantRevokePrivilegeResponse';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::BOOL) {
+            $xfer += $input->readBool($this->success);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('GrantRevokePrivilegeResponse');
+    if ($this->success !== null) {
+      $xfer += $output->writeFieldBegin('success', TType::BOOL, 1);
+      $xfer += $output->writeBool($this->success);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Role {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $roleName = null;
+  /**
+   * @var int
+   */
+  public $createTime = null;
+  /**
+   * @var string
+   */
+  public $ownerName = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'roleName',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'createTime',
+          'type' => TType::I32,
+          ),
+        3 => array(
+          'var' => 'ownerName',
+          'type' => TType::STRING,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['roleName'])) {
+        $this->roleName = $vals['roleName'];
+      }
+      if (isset($vals['createTime'])) {
+        $this->createTime = $vals['createTime'];
+      }
+      if (isset($vals['ownerName'])) {
+        $this->ownerName = $vals['ownerName'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Role';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->roleName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::I32) {
+            $xfer += $input->readI32($this->createTime);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->ownerName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('Role');
+    if ($this->roleName !== null) {
+      $xfer += $output->writeFieldBegin('roleName', TType::STRING, 1);
+      $xfer += $output->writeString($this->roleName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->createTime !== null) {
+      $xfer += $output->writeFieldBegin('createTime', TType::I32, 2);
+      $xfer += $output->writeI32($this->createTime);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->ownerName !== null) {
+      $xfer += $output->writeFieldBegin('ownerName', TType::STRING, 3);
+      $xfer += $output->writeString($this->ownerName);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class RolePrincipalGrant {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $roleName = null;
+  /**
+   * @var string
+   */
+  public $principalName = null;
+  /**
+   * @var int
+   */
+  public $principalType = null;
+  /**
+   * @var bool
+   */
+  public $grantOption = null;
+  /**
+   * @var int
+   */
+  public $grantTime = null;
+  /**
+   * @var string
+   */
   public $grantorName = null;
   /**
    * @var int
@@ -5078,32 +5688,530 @@ class PartitionListComposingSpec {
           $xfer += $input->skip($ftype);
           break;
       }
-      $xfer += $input->readFieldEnd();
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('PartitionListComposingSpec');
+    if ($this->partitions !== null) {
+      if (!is_array($this->partitions)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('partitions', TType::LST, 1);
+      {
+        $output->writeListBegin(TType::STRUCT, count($this->partitions));
+        {
+          foreach ($this->partitions as $iter229)
+          {
+            $xfer += $iter229->write($output);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class PartitionSpec {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $dbName = null;
+  /**
+   * @var string
+   */
+  public $tableName = null;
+  /**
+   * @var string
+   */
+  public $rootPath = null;
+  /**
+   * @var \metastore\PartitionSpecWithSharedSD
+   */
+  public $sharedSDPartitionSpec = null;
+  /**
+   * @var \metastore\PartitionListComposingSpec
+   */
+  public $partitionList = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'dbName',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'tableName',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'rootPath',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'sharedSDPartitionSpec',
+          'type' => TType::STRUCT,
+          'class' => '\metastore\PartitionSpecWithSharedSD',
+          ),
+        5 => array(
+          'var' => 'partitionList',
+          'type' => TType::STRUCT,
+          'class' => '\metastore\PartitionListComposingSpec',
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['dbName'])) {
+        $this->dbName = $vals['dbName'];
+      }
+      if (isset($vals['tableName'])) {
+        $this->tableName = $vals['tableName'];
+      }
+      if (isset($vals['rootPath'])) {
+        $this->rootPath = $vals['rootPath'];
+      }
+      if (isset($vals['sharedSDPartitionSpec'])) {
+        $this->sharedSDPartitionSpec = $vals['sharedSDPartitionSpec'];
+      }
+      if (isset($vals['partitionList'])) {
+        $this->partitionList = $vals['partitionList'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'PartitionSpec';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->dbName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->tableName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->rootPath);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 4:
+          if ($ftype == TType::STRUCT) {
+            $this->sharedSDPartitionSpec = new \metastore\PartitionSpecWithSharedSD();
+            $xfer += $this->sharedSDPartitionSpec->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 5:
+          if ($ftype == TType::STRUCT) {
+            $this->partitionList = new \metastore\PartitionListComposingSpec();
+            $xfer += $this->partitionList->read($input);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        default:
+          $xfer += $input->skip($ftype);
+          break;
+      }
+      $xfer += $input->readFieldEnd();
+    }
+    $xfer += $input->readStructEnd();
+    return $xfer;
+  }
+
+  public function write($output) {
+    $xfer = 0;
+    $xfer += $output->writeStructBegin('PartitionSpec');
+    if ($this->dbName !== null) {
+      $xfer += $output->writeFieldBegin('dbName', TType::STRING, 1);
+      $xfer += $output->writeString($this->dbName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->tableName !== null) {
+      $xfer += $output->writeFieldBegin('tableName', TType::STRING, 2);
+      $xfer += $output->writeString($this->tableName);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->rootPath !== null) {
+      $xfer += $output->writeFieldBegin('rootPath', TType::STRING, 3);
+      $xfer += $output->writeString($this->rootPath);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->sharedSDPartitionSpec !== null) {
+      if (!is_object($this->sharedSDPartitionSpec)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('sharedSDPartitionSpec', TType::STRUCT, 4);
+      $xfer += $this->sharedSDPartitionSpec->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    if ($this->partitionList !== null) {
+      if (!is_object($this->partitionList)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('partitionList', TType::STRUCT, 5);
+      $xfer += $this->partitionList->write($output);
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
+class Index {
+  static $_TSPEC;
+
+  /**
+   * @var string
+   */
+  public $indexName = null;
+  /**
+   * @var string
+   */
+  public $indexHandlerClass = null;
+  /**
+   * @var string
+   */
+  public $dbName = null;
+  /**
+   * @var string
+   */
+  public $origTableName = null;
+  /**
+   * @var int
+   */
+  public $createTime = null;
+  /**
+   * @var int
+   */
+  public $lastAccessTime = null;
+  /**
+   * @var string
+   */
+  public $indexTableName = null;
+  /**
+   * @var \metastore\StorageDescriptor
+   */
+  public $sd = null;
+  /**
+   * @var array
+   */
+  public $parameters = null;
+  /**
+   * @var bool
+   */
+  public $deferredRebuild = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'indexName',
+          'type' => TType::STRING,
+          ),
+        2 => array(
+          'var' => 'indexHandlerClass',
+          'type' => TType::STRING,
+          ),
+        3 => array(
+          'var' => 'dbName',
+          'type' => TType::STRING,
+          ),
+        4 => array(
+          'var' => 'origTableName',
+          'type' => TType::STRING,
+          ),
+        5 => array(
+          'var' => 'createTime',
+          'type' => TType::I32,
+          ),
+        6 => array(
+          'var' => 'lastAccessTime',
+          'type' => TType::I32,
+          ),
+        7 => array(
+          'var' => 'indexTableName',
+          'type' => TType::STRING,
+          ),
+        8 => array(
+          'var' => 'sd',
+          'type' => TType::STRUCT,
+          'class' => '\metastore\StorageDescriptor',
+          ),
+        9 => array(
+          'var' => 'parameters',
+          'type' => TType::MAP,
+          'ktype' => TType::STRING,
+          'vtype' => TType::STRING,
+          'key' => array(
+            'type' => TType::STRING,
+          ),
+          'val' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        10 => array(
+          'var' => 'deferredRebuild',
+          'type' => TType::BOOL,
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['indexName'])) {
+        $this->indexName = $vals['indexName'];
+      }
+      if (isset($vals['indexHandlerClass'])) {
+        $this->indexHandlerClass = $vals['indexHandlerClass'];
+      }
+      if (isset($vals['dbName'])) {
+        $this->dbName = $vals['dbName'];
+      }
+      if (isset($vals['origTableName'])) {
+        $this->origTableName = $vals['origTableName'];
+      }
+      if (isset($vals['createTime'])) {
+        $this->createTime = $vals['createTime'];
+      }
+      if (isset($vals['lastAccessTime'])) {
+        $this->lastAccessTime = $vals['lastAccessTime'];
+      }
+      if (isset($vals['indexTableName'])) {
+        $this->indexTableName = $vals['indexTableName'];
+      }
+      if (isset($vals['sd'])) {
+        $this->sd = $vals['sd'];
+      }
+      if (isset($vals['parameters'])) {
+        $this->parameters = $vals['parameters'];
+      }
+      if (isset($vals['deferredRebuild'])) {
+        $this->deferredRebuild = $vals['deferredRebuild'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'Index';
+  }
+
+  public function read($input)
+  {
+    $xfer = 0;
+    $fname = null;
+    $ftype = 0;
+    $fid = 0;
+    $xfer += $input->readStructBegin($fname);
+    while (true)
+    {
+      $xfer += $input->readFieldBegin($fname, $ftype, $fid);
+      if ($ftype == TType::STOP) {
+        break;
+      }
+      switch ($fid)
+      {
+        case 1:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->indexName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 2:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->indexHandlerClass);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case 3:
+          if ($ftype == TType::STRING) {
+            $xfer += $input->readString($this->dbName);
+          } else {
+            $xfer += $input->skip($ftype);
+          }
+          break;
+        case

<TRUNCATED>