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::LST) {
                     $this->cols = array();
                     $_size16 = 0;
                     $_etype19 = 0;
                     $xfer += $input->readListBegin($_etype19, $_size16);
                     for ($_i20 = 0; $_i20 < $_size16; ++$_i20) {
                         $elem21 = null;
                         $elem21 = new metastore_FieldSchema();
                         $xfer += $elem21->read($input);
                         $this->cols[] = $elem21;
                     }
                     $xfer += $input->readListEnd();
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 2:
                 if ($ftype == TType::STRING) {
                     $xfer += $input->readString($this->location);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 3:
                 if ($ftype == TType::STRING) {
                     $xfer += $input->readString($this->inputFormat);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 4:
                 if ($ftype == TType::STRING) {
                     $xfer += $input->readString($this->outputFormat);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 5:
                 if ($ftype == TType::BOOL) {
                     $xfer += $input->readBool($this->compressed);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 6:
                 if ($ftype == TType::I32) {
                     $xfer += $input->readI32($this->numBuckets);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 7:
                 if ($ftype == TType::STRUCT) {
                     $this->serdeInfo = new metastore_SerDeInfo();
                     $xfer += $this->serdeInfo->read($input);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 8:
                 if ($ftype == TType::LST) {
                     $this->bucketCols = array();
                     $_size22 = 0;
                     $_etype25 = 0;
                     $xfer += $input->readListBegin($_etype25, $_size22);
                     for ($_i26 = 0; $_i26 < $_size22; ++$_i26) {
                         $elem27 = null;
                         $xfer += $input->readString($elem27);
                         $this->bucketCols[] = $elem27;
                     }
                     $xfer += $input->readListEnd();
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 9:
                 if ($ftype == TType::LST) {
                     $this->sortCols = array();
                     $_size28 = 0;
                     $_etype31 = 0;
                     $xfer += $input->readListBegin($_etype31, $_size28);
                     for ($_i32 = 0; $_i32 < $_size28; ++$_i32) {
                         $elem33 = null;
                         $elem33 = new metastore_Order();
                         $xfer += $elem33->read($input);
                         $this->sortCols[] = $elem33;
                     }
                     $xfer += $input->readListEnd();
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 10:
                 if ($ftype == TType::MAP) {
                     $this->parameters = array();
                     $_size34 = 0;
                     $_ktype35 = 0;
                     $_vtype36 = 0;
                     $xfer += $input->readMapBegin($_ktype35, $_vtype36, $_size34);
                     for ($_i38 = 0; $_i38 < $_size34; ++$_i38) {
                         $key39 = '';
                         $val40 = '';
                         $xfer += $input->readString($key39);
                         $xfer += $input->readString($val40);
                         $this->parameters[$key39] = $val40;
                     }
                     $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 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::LST) {
                     $this->cols = array();
                     $_size87 = 0;
                     $_etype90 = 0;
                     $xfer += $input->readListBegin($_etype90, $_size87);
                     for ($_i91 = 0; $_i91 < $_size87; ++$_i91) {
                         $elem92 = null;
                         $elem92 = new metastore_FieldSchema();
                         $xfer += $elem92->read($input);
                         $this->cols[] = $elem92;
                     }
                     $xfer += $input->readListEnd();
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 2:
                 if ($ftype == TType::STRING) {
                     $xfer += $input->readString($this->location);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 3:
                 if ($ftype == TType::STRING) {
                     $xfer += $input->readString($this->inputFormat);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 4:
                 if ($ftype == TType::STRING) {
                     $xfer += $input->readString($this->outputFormat);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 5:
                 if ($ftype == TType::BOOL) {
                     $xfer += $input->readBool($this->compressed);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 6:
                 if ($ftype == TType::I32) {
                     $xfer += $input->readI32($this->numBuckets);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 7:
                 if ($ftype == TType::STRUCT) {
                     $this->serdeInfo = new metastore_SerDeInfo();
                     $xfer += $this->serdeInfo->read($input);
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 8:
                 if ($ftype == TType::LST) {
                     $this->bucketCols = array();
                     $_size93 = 0;
                     $_etype96 = 0;
                     $xfer += $input->readListBegin($_etype96, $_size93);
                     for ($_i97 = 0; $_i97 < $_size93; ++$_i97) {
                         $elem98 = null;
                         $xfer += $input->readString($elem98);
                         $this->bucketCols[] = $elem98;
                     }
                     $xfer += $input->readListEnd();
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 9:
                 if ($ftype == TType::LST) {
                     $this->sortCols = array();
                     $_size99 = 0;
                     $_etype102 = 0;
                     $xfer += $input->readListBegin($_etype102, $_size99);
                     for ($_i103 = 0; $_i103 < $_size99; ++$_i103) {
                         $elem104 = null;
                         $elem104 = new metastore_Order();
                         $xfer += $elem104->read($input);
                         $this->sortCols[] = $elem104;
                     }
                     $xfer += $input->readListEnd();
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             case 10:
                 if ($ftype == TType::MAP) {
                     $this->parameters = array();
                     $_size105 = 0;
                     $_ktype106 = 0;
                     $_vtype107 = 0;
                     $xfer += $input->readMapBegin($_ktype106, $_vtype107, $_size105);
                     for ($_i109 = 0; $_i109 < $_size105; ++$_i109) {
                         $key110 = '';
                         $val111 = '';
                         $xfer += $input->readString($key110);
                         $xfer += $input->readString($val111);
                         $this->parameters[$key110] = $val111;
                     }
                     $xfer += $input->readMapEnd();
                 } else {
                     $xfer += $input->skip($ftype);
                 }
                 break;
             default:
                 $xfer += $input->skip($ftype);
                 break;
         }
         $xfer += $input->readFieldEnd();
     }
     $xfer += $input->readStructEnd();
     return $xfer;
 }