You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by am...@apache.org on 2013/04/17 09:29:46 UTC

svn commit: r1468783 [3/16] - in /hive/branches/HIVE-4115: ./ beeline/src/java/org/apache/hive/beeline/ beeline/src/test/org/ beeline/src/test/org/apache/ beeline/src/test/org/apache/hive/ beeline/src/test/org/apache/hive/beeline/ beeline/src/test/org/...

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.cpp Wed Apr 17 07:29:38 2013
@@ -1404,10 +1404,10 @@ void swap(Order &a, Order &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* SkewedInfo::ascii_fingerprint = "4BF2ED84BC3C3EB297A2AE2FA8427EB1";
-const uint8_t SkewedInfo::binary_fingerprint[16] = {0x4B,0xF2,0xED,0x84,0xBC,0x3C,0x3E,0xB2,0x97,0xA2,0xAE,0x2F,0xA8,0x42,0x7E,0xB1};
+const char* SkewedValueList::ascii_fingerprint = "ACE4F644F0FDD289DDC4EE5B83BC13C0";
+const uint8_t SkewedValueList::binary_fingerprint[16] = {0xAC,0xE4,0xF6,0x44,0xF0,0xFD,0xD2,0x89,0xDD,0xC4,0xEE,0x5B,0x83,0xBC,0x13,0xC0};
 
-uint32_t SkewedInfo::read(::apache::thrift::protocol::TProtocol* iprot) {
+uint32_t SkewedValueList::read(::apache::thrift::protocol::TProtocol* iprot) {
 
   uint32_t xfer = 0;
   std::string fname;
@@ -1430,15 +1430,97 @@ uint32_t SkewedInfo::read(::apache::thri
       case 1:
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
-            this->skewedColNames.clear();
+            this->skewedValueList.clear();
             uint32_t _size79;
             ::apache::thrift::protocol::TType _etype82;
             xfer += iprot->readListBegin(_etype82, _size79);
-            this->skewedColNames.resize(_size79);
+            this->skewedValueList.resize(_size79);
             uint32_t _i83;
             for (_i83 = 0; _i83 < _size79; ++_i83)
             {
-              xfer += iprot->readString(this->skewedColNames[_i83]);
+              xfer += iprot->readString(this->skewedValueList[_i83]);
+            }
+            xfer += iprot->readListEnd();
+          }
+          this->__isset.skewedValueList = true;
+        } else {
+          xfer += iprot->skip(ftype);
+        }
+        break;
+      default:
+        xfer += iprot->skip(ftype);
+        break;
+    }
+    xfer += iprot->readFieldEnd();
+  }
+
+  xfer += iprot->readStructEnd();
+
+  return xfer;
+}
+
+uint32_t SkewedValueList::write(::apache::thrift::protocol::TProtocol* oprot) const {
+  uint32_t xfer = 0;
+  xfer += oprot->writeStructBegin("SkewedValueList");
+
+  xfer += oprot->writeFieldBegin("skewedValueList", ::apache::thrift::protocol::T_LIST, 1);
+  {
+    xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->skewedValueList.size()));
+    std::vector<std::string> ::const_iterator _iter84;
+    for (_iter84 = this->skewedValueList.begin(); _iter84 != this->skewedValueList.end(); ++_iter84)
+    {
+      xfer += oprot->writeString((*_iter84));
+    }
+    xfer += oprot->writeListEnd();
+  }
+  xfer += oprot->writeFieldEnd();
+
+  xfer += oprot->writeFieldStop();
+  xfer += oprot->writeStructEnd();
+  return xfer;
+}
+
+void swap(SkewedValueList &a, SkewedValueList &b) {
+  using ::std::swap;
+  swap(a.skewedValueList, b.skewedValueList);
+  swap(a.__isset, b.__isset);
+}
+
+const char* SkewedInfo::ascii_fingerprint = "F4A067072461B8071E4F5A6BE5276FC0";
+const uint8_t SkewedInfo::binary_fingerprint[16] = {0xF4,0xA0,0x67,0x07,0x24,0x61,0xB8,0x07,0x1E,0x4F,0x5A,0x6B,0xE5,0x27,0x6F,0xC0};
+
+uint32_t SkewedInfo::read(::apache::thrift::protocol::TProtocol* iprot) {
+
+  uint32_t xfer = 0;
+  std::string fname;
+  ::apache::thrift::protocol::TType ftype;
+  int16_t fid;
+
+  xfer += iprot->readStructBegin(fname);
+
+  using ::apache::thrift::protocol::TProtocolException;
+
+
+  while (true)
+  {
+    xfer += iprot->readFieldBegin(fname, ftype, fid);
+    if (ftype == ::apache::thrift::protocol::T_STOP) {
+      break;
+    }
+    switch (fid)
+    {
+      case 1:
+        if (ftype == ::apache::thrift::protocol::T_LIST) {
+          {
+            this->skewedColNames.clear();
+            uint32_t _size85;
+            ::apache::thrift::protocol::TType _etype88;
+            xfer += iprot->readListBegin(_etype88, _size85);
+            this->skewedColNames.resize(_size85);
+            uint32_t _i89;
+            for (_i89 = 0; _i89 < _size85; ++_i89)
+            {
+              xfer += iprot->readString(this->skewedColNames[_i89]);
             }
             xfer += iprot->readListEnd();
           }
@@ -1451,23 +1533,23 @@ uint32_t SkewedInfo::read(::apache::thri
         if (ftype == ::apache::thrift::protocol::T_LIST) {
           {
             this->skewedColValues.clear();
-            uint32_t _size84;
-            ::apache::thrift::protocol::TType _etype87;
-            xfer += iprot->readListBegin(_etype87, _size84);
-            this->skewedColValues.resize(_size84);
-            uint32_t _i88;
-            for (_i88 = 0; _i88 < _size84; ++_i88)
+            uint32_t _size90;
+            ::apache::thrift::protocol::TType _etype93;
+            xfer += iprot->readListBegin(_etype93, _size90);
+            this->skewedColValues.resize(_size90);
+            uint32_t _i94;
+            for (_i94 = 0; _i94 < _size90; ++_i94)
             {
               {
-                this->skewedColValues[_i88].clear();
-                uint32_t _size89;
-                ::apache::thrift::protocol::TType _etype92;
-                xfer += iprot->readListBegin(_etype92, _size89);
-                this->skewedColValues[_i88].resize(_size89);
-                uint32_t _i93;
-                for (_i93 = 0; _i93 < _size89; ++_i93)
+                this->skewedColValues[_i94].clear();
+                uint32_t _size95;
+                ::apache::thrift::protocol::TType _etype98;
+                xfer += iprot->readListBegin(_etype98, _size95);
+                this->skewedColValues[_i94].resize(_size95);
+                uint32_t _i99;
+                for (_i99 = 0; _i99 < _size95; ++_i99)
                 {
-                  xfer += iprot->readString(this->skewedColValues[_i88][_i93]);
+                  xfer += iprot->readString(this->skewedColValues[_i94][_i99]);
                 }
                 xfer += iprot->readListEnd();
               }
@@ -1483,29 +1565,17 @@ uint32_t SkewedInfo::read(::apache::thri
         if (ftype == ::apache::thrift::protocol::T_MAP) {
           {
             this->skewedColValueLocationMaps.clear();
-            uint32_t _size94;
-            ::apache::thrift::protocol::TType _ktype95;
-            ::apache::thrift::protocol::TType _vtype96;
-            xfer += iprot->readMapBegin(_ktype95, _vtype96, _size94);
-            uint32_t _i98;
-            for (_i98 = 0; _i98 < _size94; ++_i98)
+            uint32_t _size100;
+            ::apache::thrift::protocol::TType _ktype101;
+            ::apache::thrift::protocol::TType _vtype102;
+            xfer += iprot->readMapBegin(_ktype101, _vtype102, _size100);
+            uint32_t _i104;
+            for (_i104 = 0; _i104 < _size100; ++_i104)
             {
-              std::vector<std::string>  _key99;
-              {
-                _key99.clear();
-                uint32_t _size101;
-                ::apache::thrift::protocol::TType _etype104;
-                xfer += iprot->readListBegin(_etype104, _size101);
-                _key99.resize(_size101);
-                uint32_t _i105;
-                for (_i105 = 0; _i105 < _size101; ++_i105)
-                {
-                  xfer += iprot->readString(_key99[_i105]);
-                }
-                xfer += iprot->readListEnd();
-              }
-              std::string& _val100 = this->skewedColValueLocationMaps[_key99];
-              xfer += iprot->readString(_val100);
+              SkewedValueList _key105;
+              xfer += _key105.read(iprot);
+              std::string& _val106 = this->skewedColValueLocationMaps[_key105];
+              xfer += iprot->readString(_val106);
             }
             xfer += iprot->readMapEnd();
           }
@@ -1533,10 +1603,10 @@ uint32_t SkewedInfo::write(::apache::thr
   xfer += oprot->writeFieldBegin("skewedColNames", ::apache::thrift::protocol::T_LIST, 1);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->skewedColNames.size()));
-    std::vector<std::string> ::const_iterator _iter106;
-    for (_iter106 = this->skewedColNames.begin(); _iter106 != this->skewedColNames.end(); ++_iter106)
+    std::vector<std::string> ::const_iterator _iter107;
+    for (_iter107 = this->skewedColNames.begin(); _iter107 != this->skewedColNames.end(); ++_iter107)
     {
-      xfer += oprot->writeString((*_iter106));
+      xfer += oprot->writeString((*_iter107));
     }
     xfer += oprot->writeListEnd();
   }
@@ -1545,15 +1615,15 @@ uint32_t SkewedInfo::write(::apache::thr
   xfer += oprot->writeFieldBegin("skewedColValues", ::apache::thrift::protocol::T_LIST, 2);
   {
     xfer += oprot->writeListBegin(::apache::thrift::protocol::T_LIST, static_cast<uint32_t>(this->skewedColValues.size()));
-    std::vector<std::vector<std::string> > ::const_iterator _iter107;
-    for (_iter107 = this->skewedColValues.begin(); _iter107 != this->skewedColValues.end(); ++_iter107)
+    std::vector<std::vector<std::string> > ::const_iterator _iter108;
+    for (_iter108 = this->skewedColValues.begin(); _iter108 != this->skewedColValues.end(); ++_iter108)
     {
       {
-        xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*_iter107).size()));
-        std::vector<std::string> ::const_iterator _iter108;
-        for (_iter108 = (*_iter107).begin(); _iter108 != (*_iter107).end(); ++_iter108)
+        xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>((*_iter108).size()));
+        std::vector<std::string> ::const_iterator _iter109;
+        for (_iter109 = (*_iter108).begin(); _iter109 != (*_iter108).end(); ++_iter109)
         {
-          xfer += oprot->writeString((*_iter108));
+          xfer += oprot->writeString((*_iter109));
         }
         xfer += oprot->writeListEnd();
       }
@@ -1564,20 +1634,12 @@ uint32_t SkewedInfo::write(::apache::thr
 
   xfer += oprot->writeFieldBegin("skewedColValueLocationMaps", ::apache::thrift::protocol::T_MAP, 3);
   {
-    xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_LIST, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->skewedColValueLocationMaps.size()));
-    std::map<std::vector<std::string> , std::string> ::const_iterator _iter109;
-    for (_iter109 = this->skewedColValueLocationMaps.begin(); _iter109 != this->skewedColValueLocationMaps.end(); ++_iter109)
+    xfer += oprot->writeMapBegin(::apache::thrift::protocol::T_STRUCT, ::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(this->skewedColValueLocationMaps.size()));
+    std::map<SkewedValueList, std::string> ::const_iterator _iter110;
+    for (_iter110 = this->skewedColValueLocationMaps.begin(); _iter110 != this->skewedColValueLocationMaps.end(); ++_iter110)
     {
-      {
-        xfer += oprot->writeListBegin(::apache::thrift::protocol::T_STRING, static_cast<uint32_t>(_iter109->first.size()));
-        std::vector<std::string> ::const_iterator _iter110;
-        for (_iter110 = _iter109->first.begin(); _iter110 != _iter109->first.end(); ++_iter110)
-        {
-          xfer += oprot->writeString((*_iter110));
-        }
-        xfer += oprot->writeListEnd();
-      }
-      xfer += oprot->writeString(_iter109->second);
+      xfer += _iter110->first.write(oprot);
+      xfer += oprot->writeString(_iter110->second);
     }
     xfer += oprot->writeMapEnd();
   }
@@ -1596,8 +1658,8 @@ void swap(SkewedInfo &a, SkewedInfo &b) 
   swap(a.__isset, b.__isset);
 }
 
-const char* StorageDescriptor::ascii_fingerprint = "CA8C9AA5FE4C32643757D8639CEF0CD7";
-const uint8_t StorageDescriptor::binary_fingerprint[16] = {0xCA,0x8C,0x9A,0xA5,0xFE,0x4C,0x32,0x64,0x37,0x57,0xD8,0x63,0x9C,0xEF,0x0C,0xD7};
+const char* StorageDescriptor::ascii_fingerprint = "283664579DDA891300CFDE15F5771323";
+const uint8_t StorageDescriptor::binary_fingerprint[16] = {0x28,0x36,0x64,0x57,0x9D,0xDA,0x89,0x13,0x00,0xCF,0xDE,0x15,0xF5,0x77,0x13,0x23};
 
 uint32_t StorageDescriptor::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -1887,8 +1949,8 @@ void swap(StorageDescriptor &a, StorageD
   swap(a.__isset, b.__isset);
 }
 
-const char* Table::ascii_fingerprint = "68640B4B66B355CF317429AF70D2C260";
-const uint8_t Table::binary_fingerprint[16] = {0x68,0x64,0x0B,0x4B,0x66,0xB3,0x55,0xCF,0x31,0x74,0x29,0xAF,0x70,0xD2,0xC2,0x60};
+const char* Table::ascii_fingerprint = "AEBB39149C622C62B239988E19489807";
+const uint8_t Table::binary_fingerprint[16] = {0xAE,0xBB,0x39,0x14,0x9C,0x62,0x2C,0x62,0xB2,0x39,0x98,0x8E,0x19,0x48,0x98,0x07};
 
 uint32_t Table::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2150,8 +2212,8 @@ void swap(Table &a, Table &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* Partition::ascii_fingerprint = "31A52241B88A426C34087FE38343FF51";
-const uint8_t Partition::binary_fingerprint[16] = {0x31,0xA5,0x22,0x41,0xB8,0x8A,0x42,0x6C,0x34,0x08,0x7F,0xE3,0x83,0x43,0xFF,0x51};
+const char* Partition::ascii_fingerprint = "81AD5F7E827DDC1A37C18BF73ECA603F";
+const uint8_t Partition::binary_fingerprint[16] = {0x81,0xAD,0x5F,0x7E,0x82,0x7D,0xDC,0x1A,0x37,0xC1,0x8B,0xF7,0x3E,0xCA,0x60,0x3F};
 
 uint32_t Partition::read(::apache::thrift::protocol::TProtocol* iprot) {
 
@@ -2348,8 +2410,8 @@ void swap(Partition &a, Partition &b) {
   swap(a.__isset, b.__isset);
 }
 
-const char* Index::ascii_fingerprint = "09EEF655216AC81802850988D6C470A6";
-const uint8_t Index::binary_fingerprint[16] = {0x09,0xEE,0xF6,0x55,0x21,0x6A,0xC8,0x18,0x02,0x85,0x09,0x88,0xD6,0xC4,0x70,0xA6};
+const char* Index::ascii_fingerprint = "A2822E71566DF57594774A6CF56D11B5";
+const uint8_t Index::binary_fingerprint[16] = {0xA2,0x82,0x2E,0x71,0x56,0x6D,0xF5,0x75,0x94,0x77,0x4A,0x6C,0xF5,0x6D,0x11,0xB5};
 
 uint32_t Index::read(::apache::thrift::protocol::TProtocol* iprot) {
 

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-cpp/hive_metastore_types.h Wed Apr 17 07:29:38 2013
@@ -799,6 +799,49 @@ class Order {
 
 void swap(Order &a, Order &b);
 
+typedef struct _SkewedValueList__isset {
+  _SkewedValueList__isset() : skewedValueList(false) {}
+  bool skewedValueList;
+} _SkewedValueList__isset;
+
+class SkewedValueList {
+ public:
+
+  static const char* ascii_fingerprint; // = "ACE4F644F0FDD289DDC4EE5B83BC13C0";
+  static const uint8_t binary_fingerprint[16]; // = {0xAC,0xE4,0xF6,0x44,0xF0,0xFD,0xD2,0x89,0xDD,0xC4,0xEE,0x5B,0x83,0xBC,0x13,0xC0};
+
+  SkewedValueList() {
+  }
+
+  virtual ~SkewedValueList() throw() {}
+
+  std::vector<std::string>  skewedValueList;
+
+  _SkewedValueList__isset __isset;
+
+  void __set_skewedValueList(const std::vector<std::string> & val) {
+    skewedValueList = val;
+  }
+
+  bool operator == (const SkewedValueList & rhs) const
+  {
+    if (!(skewedValueList == rhs.skewedValueList))
+      return false;
+    return true;
+  }
+  bool operator != (const SkewedValueList &rhs) const {
+    return !(*this == rhs);
+  }
+
+  bool operator < (const SkewedValueList & ) const;
+
+  uint32_t read(::apache::thrift::protocol::TProtocol* iprot);
+  uint32_t write(::apache::thrift::protocol::TProtocol* oprot) const;
+
+};
+
+void swap(SkewedValueList &a, SkewedValueList &b);
+
 typedef struct _SkewedInfo__isset {
   _SkewedInfo__isset() : skewedColNames(false), skewedColValues(false), skewedColValueLocationMaps(false) {}
   bool skewedColNames;
@@ -809,8 +852,8 @@ typedef struct _SkewedInfo__isset {
 class SkewedInfo {
  public:
 
-  static const char* ascii_fingerprint; // = "4BF2ED84BC3C3EB297A2AE2FA8427EB1";
-  static const uint8_t binary_fingerprint[16]; // = {0x4B,0xF2,0xED,0x84,0xBC,0x3C,0x3E,0xB2,0x97,0xA2,0xAE,0x2F,0xA8,0x42,0x7E,0xB1};
+  static const char* ascii_fingerprint; // = "F4A067072461B8071E4F5A6BE5276FC0";
+  static const uint8_t binary_fingerprint[16]; // = {0xF4,0xA0,0x67,0x07,0x24,0x61,0xB8,0x07,0x1E,0x4F,0x5A,0x6B,0xE5,0x27,0x6F,0xC0};
 
   SkewedInfo() {
   }
@@ -819,7 +862,7 @@ class SkewedInfo {
 
   std::vector<std::string>  skewedColNames;
   std::vector<std::vector<std::string> >  skewedColValues;
-  std::map<std::vector<std::string> , std::string>  skewedColValueLocationMaps;
+  std::map<SkewedValueList, std::string>  skewedColValueLocationMaps;
 
   _SkewedInfo__isset __isset;
 
@@ -831,7 +874,7 @@ class SkewedInfo {
     skewedColValues = val;
   }
 
-  void __set_skewedColValueLocationMaps(const std::map<std::vector<std::string> , std::string> & val) {
+  void __set_skewedColValueLocationMaps(const std::map<SkewedValueList, std::string> & val) {
     skewedColValueLocationMaps = val;
   }
 
@@ -877,8 +920,8 @@ typedef struct _StorageDescriptor__isset
 class StorageDescriptor {
  public:
 
-  static const char* ascii_fingerprint; // = "CA8C9AA5FE4C32643757D8639CEF0CD7";
-  static const uint8_t binary_fingerprint[16]; // = {0xCA,0x8C,0x9A,0xA5,0xFE,0x4C,0x32,0x64,0x37,0x57,0xD8,0x63,0x9C,0xEF,0x0C,0xD7};
+  static const char* ascii_fingerprint; // = "283664579DDA891300CFDE15F5771323";
+  static const uint8_t binary_fingerprint[16]; // = {0x28,0x36,0x64,0x57,0x9D,0xDA,0x89,0x13,0x00,0xCF,0xDE,0x15,0xF5,0x77,0x13,0x23};
 
   StorageDescriptor() : location(), inputFormat(), outputFormat(), compressed(0), numBuckets(0), storedAsSubDirectories(0) {
   }
@@ -1015,8 +1058,8 @@ typedef struct _Table__isset {
 class Table {
  public:
 
-  static const char* ascii_fingerprint; // = "68640B4B66B355CF317429AF70D2C260";
-  static const uint8_t binary_fingerprint[16]; // = {0x68,0x64,0x0B,0x4B,0x66,0xB3,0x55,0xCF,0x31,0x74,0x29,0xAF,0x70,0xD2,0xC2,0x60};
+  static const char* ascii_fingerprint; // = "AEBB39149C622C62B239988E19489807";
+  static const uint8_t binary_fingerprint[16]; // = {0xAE,0xBB,0x39,0x14,0x9C,0x62,0x2C,0x62,0xB2,0x39,0x98,0x8E,0x19,0x48,0x98,0x07};
 
   Table() : tableName(), dbName(), owner(), createTime(0), lastAccessTime(0), retention(0), viewOriginalText(), viewExpandedText(), tableType() {
   }
@@ -1152,8 +1195,8 @@ typedef struct _Partition__isset {
 class Partition {
  public:
 
-  static const char* ascii_fingerprint; // = "31A52241B88A426C34087FE38343FF51";
-  static const uint8_t binary_fingerprint[16]; // = {0x31,0xA5,0x22,0x41,0xB8,0x8A,0x42,0x6C,0x34,0x08,0x7F,0xE3,0x83,0x43,0xFF,0x51};
+  static const char* ascii_fingerprint; // = "81AD5F7E827DDC1A37C18BF73ECA603F";
+  static const uint8_t binary_fingerprint[16]; // = {0x81,0xAD,0x5F,0x7E,0x82,0x7D,0xDC,0x1A,0x37,0xC1,0x8B,0xF7,0x3E,0xCA,0x60,0x3F};
 
   Partition() : dbName(), tableName(), createTime(0), lastAccessTime(0) {
   }
@@ -1256,8 +1299,8 @@ typedef struct _Index__isset {
 class Index {
  public:
 
-  static const char* ascii_fingerprint; // = "09EEF655216AC81802850988D6C470A6";
-  static const uint8_t binary_fingerprint[16]; // = {0x09,0xEE,0xF6,0x55,0x21,0x6A,0xC8,0x18,0x02,0x85,0x09,0x88,0xD6,0xC4,0x70,0xA6};
+  static const char* ascii_fingerprint; // = "A2822E71566DF57594774A6CF56D11B5";
+  static const uint8_t binary_fingerprint[16]; // = {0xA2,0x82,0x2E,0x71,0x56,0x6D,0xF5,0x75,0x94,0x77,0x4A,0x6C,0xF5,0x6D,0x11,0xB5};
 
   Index() : indexName(), indexHandlerClass(), dbName(), origTableName(), createTime(0), lastAccessTime(0), indexTableName(), deferredRebuild(0) {
   }

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Database.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Database.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Database.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Database.java Wed Apr 17 07:29:38 2013
@@ -708,7 +708,7 @@ public class Database implements org.apa
                 for (int _i79 = 0; _i79 < _map78.size; ++_i79)
                 {
                   String _key80; // required
-                  String _val81; // optional
+                  String _val81; // required
                   _key80 = iprot.readString();
                   _val81 = iprot.readString();
                   struct.parameters.put(_key80, _val81);
@@ -858,7 +858,7 @@ public class Database implements org.apa
           for (int _i85 = 0; _i85 < _map84.size; ++_i85)
           {
             String _key86; // required
-            String _val87; // optional
+            String _val87; // required
             _key86 = iprot.readString();
             _val87 = iprot.readString();
             struct.parameters.put(_key86, _val87);

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/EnvironmentContext.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/EnvironmentContext.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/EnvironmentContext.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/EnvironmentContext.java Wed Apr 17 07:29:38 2013
@@ -356,7 +356,7 @@ public class EnvironmentContext implemen
                 for (int _i247 = 0; _i247 < _map246.size; ++_i247)
                 {
                   String _key248; // required
-                  String _val249; // optional
+                  String _val249; // required
                   _key248 = iprot.readString();
                   _val249 = iprot.readString();
                   struct.properties.put(_key248, _val249);
@@ -439,7 +439,7 @@ public class EnvironmentContext implemen
           for (int _i253 = 0; _i253 < _map252.size; ++_i253)
           {
             String _key254; // required
-            String _val255; // optional
+            String _val255; // required
             _key254 = iprot.readString();
             _val255 = iprot.readString();
             struct.properties.put(_key254, _val255);

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Index.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Index.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Index.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Index.java Wed Apr 17 07:29:38 2013
@@ -1145,7 +1145,7 @@ public class Index implements org.apache
                 for (int _i211 = 0; _i211 < _map210.size; ++_i211)
                 {
                   String _key212; // required
-                  String _val213; // optional
+                  String _val213; // required
                   _key212 = iprot.readString();
                   _val213 = iprot.readString();
                   struct.parameters.put(_key212, _val213);
@@ -1362,7 +1362,7 @@ public class Index implements org.apache
           for (int _i217 = 0; _i217 < _map216.size; ++_i217)
           {
             String _key218; // required
-            String _val219; // optional
+            String _val219; // required
             _key218 = iprot.readString();
             _val219 = iprot.readString();
             struct.parameters.put(_key218, _val219);

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Partition.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Partition.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Partition.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Partition.java Wed Apr 17 07:29:38 2013
@@ -1005,7 +1005,7 @@ public class Partition implements org.ap
                 for (int _i196 = 0; _i196 < _map195.size; ++_i196)
                 {
                   String _key197; // required
-                  String _val198; // optional
+                  String _val198; // required
                   _key197 = iprot.readString();
                   _val198 = iprot.readString();
                   struct.parameters.put(_key197, _val198);
@@ -1219,7 +1219,7 @@ public class Partition implements org.ap
           for (int _i207 = 0; _i207 < _map206.size; ++_i207)
           {
             String _key208; // required
-            String _val209; // optional
+            String _val209; // required
             _key208 = iprot.readString();
             _val209 = iprot.readString();
             struct.parameters.put(_key208, _val209);

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PrincipalPrivilegeSet.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PrincipalPrivilegeSet.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PrincipalPrivilegeSet.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PrincipalPrivilegeSet.java Wed Apr 17 07:29:38 2013
@@ -580,7 +580,7 @@ public class PrincipalPrivilegeSet imple
                 for (int _i25 = 0; _i25 < _map24.size; ++_i25)
                 {
                   String _key26; // required
-                  List<PrivilegeGrantInfo> _val27; // optional
+                  List<PrivilegeGrantInfo> _val27; // required
                   _key26 = iprot.readString();
                   {
                     org.apache.thrift.protocol.TList _list28 = iprot.readListBegin();
@@ -611,7 +611,7 @@ public class PrincipalPrivilegeSet imple
                 for (int _i32 = 0; _i32 < _map31.size; ++_i32)
                 {
                   String _key33; // required
-                  List<PrivilegeGrantInfo> _val34; // optional
+                  List<PrivilegeGrantInfo> _val34; // required
                   _key33 = iprot.readString();
                   {
                     org.apache.thrift.protocol.TList _list35 = iprot.readListBegin();
@@ -642,7 +642,7 @@ public class PrincipalPrivilegeSet imple
                 for (int _i39 = 0; _i39 < _map38.size; ++_i39)
                 {
                   String _key40; // required
-                  List<PrivilegeGrantInfo> _val41; // optional
+                  List<PrivilegeGrantInfo> _val41; // required
                   _key40 = iprot.readString();
                   {
                     org.apache.thrift.protocol.TList _list42 = iprot.readListBegin();
@@ -827,7 +827,7 @@ public class PrincipalPrivilegeSet imple
           for (int _i58 = 0; _i58 < _map57.size; ++_i58)
           {
             String _key59; // required
-            List<PrivilegeGrantInfo> _val60; // optional
+            List<PrivilegeGrantInfo> _val60; // required
             _key59 = iprot.readString();
             {
               org.apache.thrift.protocol.TList _list61 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
@@ -852,7 +852,7 @@ public class PrincipalPrivilegeSet imple
           for (int _i65 = 0; _i65 < _map64.size; ++_i65)
           {
             String _key66; // required
-            List<PrivilegeGrantInfo> _val67; // optional
+            List<PrivilegeGrantInfo> _val67; // required
             _key66 = iprot.readString();
             {
               org.apache.thrift.protocol.TList _list68 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
@@ -877,7 +877,7 @@ public class PrincipalPrivilegeSet imple
           for (int _i72 = 0; _i72 < _map71.size; ++_i72)
           {
             String _key73; // required
-            List<PrivilegeGrantInfo> _val74; // optional
+            List<PrivilegeGrantInfo> _val74; // required
             _key73 = iprot.readString();
             {
               org.apache.thrift.protocol.TList _list75 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Schema.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Schema.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Schema.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Schema.java Wed Apr 17 07:29:38 2013
@@ -476,7 +476,7 @@ public class Schema implements org.apach
                 for (int _i232 = 0; _i232 < _map231.size; ++_i232)
                 {
                   String _key233; // required
-                  String _val234; // optional
+                  String _val234; // required
                   _key233 = iprot.readString();
                   _val234 = iprot.readString();
                   struct.properties.put(_key233, _val234);
@@ -597,7 +597,7 @@ public class Schema implements org.apach
           for (int _i243 = 0; _i243 < _map242.size; ++_i243)
           {
             String _key244; // required
-            String _val245; // optional
+            String _val245; // required
             _key244 = iprot.readString();
             _val245 = iprot.readString();
             struct.properties.put(_key244, _val245);

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SerDeInfo.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SerDeInfo.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SerDeInfo.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SerDeInfo.java Wed Apr 17 07:29:38 2013
@@ -534,7 +534,7 @@ public class SerDeInfo implements org.ap
                 for (int _i89 = 0; _i89 < _map88.size; ++_i89)
                 {
                   String _key90; // required
-                  String _val91; // optional
+                  String _val91; // required
                   _key90 = iprot.readString();
                   _val91 = iprot.readString();
                   struct.parameters.put(_key90, _val91);
@@ -647,7 +647,7 @@ public class SerDeInfo implements org.ap
           for (int _i95 = 0; _i95 < _map94.size; ++_i95)
           {
             String _key96; // required
-            String _val97; // optional
+            String _val97; // required
             _key96 = iprot.readString();
             _val97 = iprot.readString();
             struct.parameters.put(_key96, _val97);

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedInfo.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedInfo.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedInfo.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SkewedInfo.java Wed Apr 17 07:29:38 2013
@@ -46,7 +46,7 @@ public class SkewedInfo implements org.a
 
   private List<String> skewedColNames; // required
   private List<List<String>> skewedColValues; // required
-  private Map<List<String>,String> skewedColValueLocationMaps; // required
+  private Map<SkewedValueList,String> skewedColValueLocationMaps; // required
 
   /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
   public enum _Fields implements org.apache.thrift.TFieldIdEnum {
@@ -125,8 +125,7 @@ public class SkewedInfo implements org.a
                 new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)))));
     tmpMap.put(_Fields.SKEWED_COL_VALUE_LOCATION_MAPS, new org.apache.thrift.meta_data.FieldMetaData("skewedColValueLocationMaps", org.apache.thrift.TFieldRequirementType.DEFAULT, 
         new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
-            new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, 
-                new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)), 
+            new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, SkewedValueList.class),
             new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
     metaDataMap = Collections.unmodifiableMap(tmpMap);
     org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SkewedInfo.class, metaDataMap);
@@ -138,7 +137,7 @@ public class SkewedInfo implements org.a
   public SkewedInfo(
     List<String> skewedColNames,
     List<List<String>> skewedColValues,
-    Map<List<String>,String> skewedColValueLocationMaps)
+    Map<SkewedValueList,String> skewedColValueLocationMaps)
   {
     this();
     this.skewedColNames = skewedColNames;
@@ -169,16 +168,13 @@ public class SkewedInfo implements org.a
       this.skewedColValues = __this__skewedColValues;
     }
     if (other.isSetSkewedColValueLocationMaps()) {
-      Map<List<String>,String> __this__skewedColValueLocationMaps = new HashMap<List<String>,String>();
-      for (Map.Entry<List<String>, String> other_element : other.skewedColValueLocationMaps.entrySet()) {
+      Map<SkewedValueList,String> __this__skewedColValueLocationMaps = new HashMap<SkewedValueList,String>();
+      for (Map.Entry<SkewedValueList, String> other_element : other.skewedColValueLocationMaps.entrySet()) {
 
-        List<String> other_element_key = other_element.getKey();
+        SkewedValueList other_element_key = other_element.getKey();
         String other_element_value = other_element.getValue();
 
-        List<String> __this__skewedColValueLocationMaps_copy_key = new ArrayList<String>();
-        for (String other_element_key_element : other_element_key) {
-          __this__skewedColValueLocationMaps_copy_key.add(other_element_key_element);
-        }
+        SkewedValueList __this__skewedColValueLocationMaps_copy_key = new SkewedValueList(other_element_key);
 
         String __this__skewedColValueLocationMaps_copy_value = other_element_value;
 
@@ -279,18 +275,18 @@ public class SkewedInfo implements org.a
     return (this.skewedColValueLocationMaps == null) ? 0 : this.skewedColValueLocationMaps.size();
   }
 
-  public void putToSkewedColValueLocationMaps(List<String> key, String val) {
+  public void putToSkewedColValueLocationMaps(SkewedValueList key, String val) {
     if (this.skewedColValueLocationMaps == null) {
-      this.skewedColValueLocationMaps = new HashMap<List<String>,String>();
+      this.skewedColValueLocationMaps = new HashMap<SkewedValueList,String>();
     }
     this.skewedColValueLocationMaps.put(key, val);
   }
 
-  public Map<List<String>,String> getSkewedColValueLocationMaps() {
+  public Map<SkewedValueList,String> getSkewedColValueLocationMaps() {
     return this.skewedColValueLocationMaps;
   }
 
-  public void setSkewedColValueLocationMaps(Map<List<String>,String> skewedColValueLocationMaps) {
+  public void setSkewedColValueLocationMaps(Map<SkewedValueList,String> skewedColValueLocationMaps) {
     this.skewedColValueLocationMaps = skewedColValueLocationMaps;
   }
 
@@ -331,7 +327,7 @@ public class SkewedInfo implements org.a
       if (value == null) {
         unsetSkewedColValueLocationMaps();
       } else {
-        setSkewedColValueLocationMaps((Map<List<String>,String>)value);
+        setSkewedColValueLocationMaps((Map<SkewedValueList,String>)value);
       }
       break;
 
@@ -562,13 +558,13 @@ public class SkewedInfo implements org.a
           case 1: // SKEWED_COL_NAMES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list98 = iprot.readListBegin();
-                struct.skewedColNames = new ArrayList<String>(_list98.size);
-                for (int _i99 = 0; _i99 < _list98.size; ++_i99)
+                org.apache.thrift.protocol.TList _list106 = iprot.readListBegin();
+                struct.skewedColNames = new ArrayList<String>(_list106.size);
+                for (int _i107 = 0; _i107 < _list106.size; ++_i107)
                 {
-                  String _elem100; // required
-                  _elem100 = iprot.readString();
-                  struct.skewedColNames.add(_elem100);
+                  String _elem108; // required
+                  _elem108 = iprot.readString();
+                  struct.skewedColNames.add(_elem108);
                 }
                 iprot.readListEnd();
               }
@@ -580,23 +576,23 @@ public class SkewedInfo implements org.a
           case 2: // SKEWED_COL_VALUES
             if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
               {
-                org.apache.thrift.protocol.TList _list101 = iprot.readListBegin();
-                struct.skewedColValues = new ArrayList<List<String>>(_list101.size);
-                for (int _i102 = 0; _i102 < _list101.size; ++_i102)
+                org.apache.thrift.protocol.TList _list109 = iprot.readListBegin();
+                struct.skewedColValues = new ArrayList<List<String>>(_list109.size);
+                for (int _i110 = 0; _i110 < _list109.size; ++_i110)
                 {
-                  List<String> _elem103; // required
+                  List<String> _elem111; // required
                   {
-                    org.apache.thrift.protocol.TList _list104 = iprot.readListBegin();
-                    _elem103 = new ArrayList<String>(_list104.size);
-                    for (int _i105 = 0; _i105 < _list104.size; ++_i105)
+                    org.apache.thrift.protocol.TList _list112 = iprot.readListBegin();
+                    _elem111 = new ArrayList<String>(_list112.size);
+                    for (int _i113 = 0; _i113 < _list112.size; ++_i113)
                     {
-                      String _elem106; // required
-                      _elem106 = iprot.readString();
-                      _elem103.add(_elem106);
+                      String _elem114; // required
+                      _elem114 = iprot.readString();
+                      _elem111.add(_elem114);
                     }
                     iprot.readListEnd();
                   }
-                  struct.skewedColValues.add(_elem103);
+                  struct.skewedColValues.add(_elem111);
                 }
                 iprot.readListEnd();
               }
@@ -608,25 +604,16 @@ public class SkewedInfo implements org.a
           case 3: // SKEWED_COL_VALUE_LOCATION_MAPS
             if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
               {
-                org.apache.thrift.protocol.TMap _map107 = iprot.readMapBegin();
-                struct.skewedColValueLocationMaps = new HashMap<List<String>,String>(2*_map107.size);
-                for (int _i108 = 0; _i108 < _map107.size; ++_i108)
+                org.apache.thrift.protocol.TMap _map115 = iprot.readMapBegin();
+                struct.skewedColValueLocationMaps = new HashMap<SkewedValueList,String>(2*_map115.size);
+                for (int _i116 = 0; _i116 < _map115.size; ++_i116)
                 {
-                  List<String> _key109; // required
-                  String _val110; // optional
-                  {
-                    org.apache.thrift.protocol.TList _list111 = iprot.readListBegin();
-                    _key109 = new ArrayList<String>(_list111.size);
-                    for (int _i112 = 0; _i112 < _list111.size; ++_i112)
-                    {
-                      String _elem113; // required
-                      _elem113 = iprot.readString();
-                      _key109.add(_elem113);
-                    }
-                    iprot.readListEnd();
-                  }
-                  _val110 = iprot.readString();
-                  struct.skewedColValueLocationMaps.put(_key109, _val110);
+                  SkewedValueList _key117; // required
+                  String _val118; // required
+                  _key117 = new SkewedValueList();
+                  _key117.read(iprot);
+                  _val118 = iprot.readString();
+                  struct.skewedColValueLocationMaps.put(_key117, _val118);
                 }
                 iprot.readMapEnd();
               }
@@ -652,9 +639,9 @@ public class SkewedInfo implements org.a
         oprot.writeFieldBegin(SKEWED_COL_NAMES_FIELD_DESC);
         {
           oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, struct.skewedColNames.size()));
-          for (String _iter114 : struct.skewedColNames)
+          for (String _iter119 : struct.skewedColNames)
           {
-            oprot.writeString(_iter114);
+            oprot.writeString(_iter119);
           }
           oprot.writeListEnd();
         }
@@ -664,13 +651,13 @@ public class SkewedInfo implements org.a
         oprot.writeFieldBegin(SKEWED_COL_VALUES_FIELD_DESC);
         {
           oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.LIST, struct.skewedColValues.size()));
-          for (List<String> _iter115 : struct.skewedColValues)
+          for (List<String> _iter120 : struct.skewedColValues)
           {
             {
-              oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter115.size()));
-              for (String _iter116 : _iter115)
+              oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter120.size()));
+              for (String _iter121 : _iter120)
               {
-                oprot.writeString(_iter116);
+                oprot.writeString(_iter121);
               }
               oprot.writeListEnd();
             }
@@ -682,18 +669,11 @@ public class SkewedInfo implements org.a
       if (struct.skewedColValueLocationMaps != null) {
         oprot.writeFieldBegin(SKEWED_COL_VALUE_LOCATION_MAPS_FIELD_DESC);
         {
-          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRING, struct.skewedColValueLocationMaps.size()));
-          for (Map.Entry<List<String>, String> _iter117 : struct.skewedColValueLocationMaps.entrySet())
+          oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.STRING, struct.skewedColValueLocationMaps.size()));
+          for (Map.Entry<SkewedValueList, String> _iter122 : struct.skewedColValueLocationMaps.entrySet())
           {
-            {
-              oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, _iter117.getKey().size()));
-              for (String _iter118 : _iter117.getKey())
-              {
-                oprot.writeString(_iter118);
-              }
-              oprot.writeListEnd();
-            }
-            oprot.writeString(_iter117.getValue());
+            _iter122.getKey().write(oprot);
+            oprot.writeString(_iter122.getValue());
           }
           oprot.writeMapEnd();
         }
@@ -730,22 +710,22 @@ public class SkewedInfo implements org.a
       if (struct.isSetSkewedColNames()) {
         {
           oprot.writeI32(struct.skewedColNames.size());
-          for (String _iter119 : struct.skewedColNames)
+          for (String _iter123 : struct.skewedColNames)
           {
-            oprot.writeString(_iter119);
+            oprot.writeString(_iter123);
           }
         }
       }
       if (struct.isSetSkewedColValues()) {
         {
           oprot.writeI32(struct.skewedColValues.size());
-          for (List<String> _iter120 : struct.skewedColValues)
+          for (List<String> _iter124 : struct.skewedColValues)
           {
             {
-              oprot.writeI32(_iter120.size());
-              for (String _iter121 : _iter120)
+              oprot.writeI32(_iter124.size());
+              for (String _iter125 : _iter124)
               {
-                oprot.writeString(_iter121);
+                oprot.writeString(_iter125);
               }
             }
           }
@@ -754,16 +734,10 @@ public class SkewedInfo implements org.a
       if (struct.isSetSkewedColValueLocationMaps()) {
         {
           oprot.writeI32(struct.skewedColValueLocationMaps.size());
-          for (Map.Entry<List<String>, String> _iter122 : struct.skewedColValueLocationMaps.entrySet())
+          for (Map.Entry<SkewedValueList, String> _iter126 : struct.skewedColValueLocationMaps.entrySet())
           {
-            {
-              oprot.writeI32(_iter122.getKey().size());
-              for (String _iter123 : _iter122.getKey())
-              {
-                oprot.writeString(_iter123);
-              }
-            }
-            oprot.writeString(_iter122.getValue());
+            _iter126.getKey().write(oprot);
+            oprot.writeString(_iter126.getValue());
           }
         }
       }
@@ -775,59 +749,51 @@ public class SkewedInfo implements org.a
       BitSet incoming = iprot.readBitSet(3);
       if (incoming.get(0)) {
         {
-          org.apache.thrift.protocol.TList _list124 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.skewedColNames = new ArrayList<String>(_list124.size);
-          for (int _i125 = 0; _i125 < _list124.size; ++_i125)
+          org.apache.thrift.protocol.TList _list127 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.skewedColNames = new ArrayList<String>(_list127.size);
+          for (int _i128 = 0; _i128 < _list127.size; ++_i128)
           {
-            String _elem126; // required
-            _elem126 = iprot.readString();
-            struct.skewedColNames.add(_elem126);
+            String _elem129; // required
+            _elem129 = iprot.readString();
+            struct.skewedColNames.add(_elem129);
           }
         }
         struct.setSkewedColNamesIsSet(true);
       }
       if (incoming.get(1)) {
         {
-          org.apache.thrift.protocol.TList _list127 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.LIST, iprot.readI32());
-          struct.skewedColValues = new ArrayList<List<String>>(_list127.size);
-          for (int _i128 = 0; _i128 < _list127.size; ++_i128)
+          org.apache.thrift.protocol.TList _list130 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.LIST, iprot.readI32());
+          struct.skewedColValues = new ArrayList<List<String>>(_list130.size);
+          for (int _i131 = 0; _i131 < _list130.size; ++_i131)
           {
-            List<String> _elem129; // required
+            List<String> _elem132; // required
             {
-              org.apache.thrift.protocol.TList _list130 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-              _elem129 = new ArrayList<String>(_list130.size);
-              for (int _i131 = 0; _i131 < _list130.size; ++_i131)
+              org.apache.thrift.protocol.TList _list133 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+              _elem132 = new ArrayList<String>(_list133.size);
+              for (int _i134 = 0; _i134 < _list133.size; ++_i134)
               {
-                String _elem132; // required
-                _elem132 = iprot.readString();
-                _elem129.add(_elem132);
+                String _elem135; // required
+                _elem135 = iprot.readString();
+                _elem132.add(_elem135);
               }
             }
-            struct.skewedColValues.add(_elem129);
+            struct.skewedColValues.add(_elem132);
           }
         }
         struct.setSkewedColValuesIsSet(true);
       }
       if (incoming.get(2)) {
         {
-          org.apache.thrift.protocol.TMap _map133 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.LIST, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-          struct.skewedColValueLocationMaps = new HashMap<List<String>,String>(2*_map133.size);
-          for (int _i134 = 0; _i134 < _map133.size; ++_i134)
+          org.apache.thrift.protocol.TMap _map136 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRUCT, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+          struct.skewedColValueLocationMaps = new HashMap<SkewedValueList,String>(2*_map136.size);
+          for (int _i137 = 0; _i137 < _map136.size; ++_i137)
           {
-            List<String> _key135; // required
-            String _val136; // optional
-            {
-              org.apache.thrift.protocol.TList _list137 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-              _key135 = new ArrayList<String>(_list137.size);
-              for (int _i138 = 0; _i138 < _list137.size; ++_i138)
-              {
-                String _elem139; // required
-                _elem139 = iprot.readString();
-                _key135.add(_elem139);
-              }
-            }
-            _val136 = iprot.readString();
-            struct.skewedColValueLocationMaps.put(_key135, _val136);
+            SkewedValueList _key138; // required
+            String _val139; // required
+            _key138 = new SkewedValueList();
+            _key138.read(iprot);
+            _val139 = iprot.readString();
+            struct.skewedColValueLocationMaps.put(_key138, _val139);
           }
         }
         struct.setSkewedColValueLocationMapsIsSet(true);

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/StorageDescriptor.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/StorageDescriptor.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/StorageDescriptor.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/StorageDescriptor.java Wed Apr 17 07:29:38 2013
@@ -1410,7 +1410,7 @@ public class StorageDescriptor implement
                 for (int _i150 = 0; _i150 < _map149.size; ++_i150)
                 {
                   String _key151; // required
-                  String _val152; // optional
+                  String _val152; // required
                   _key151 = iprot.readString();
                   _val152 = iprot.readString();
                   struct.parameters.put(_key151, _val152);
@@ -1734,7 +1734,7 @@ public class StorageDescriptor implement
           for (int _i171 = 0; _i171 < _map170.size; ++_i171)
           {
             String _key172; // required
-            String _val173; // optional
+            String _val173; // required
             _key172 = iprot.readString();
             _val173 = iprot.readString();
             struct.parameters.put(_key172, _val173);

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Table.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Table.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Table.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/Table.java Wed Apr 17 07:29:38 2013
@@ -1423,7 +1423,7 @@ public class Table implements org.apache
                 for (int _i178 = 0; _i178 < _map177.size; ++_i178)
                 {
                   String _key179; // required
-                  String _val180; // optional
+                  String _val180; // required
                   _key179 = iprot.readString();
                   _val180 = iprot.readString();
                   struct.parameters.put(_key179, _val180);
@@ -1723,7 +1723,7 @@ public class Table implements org.apache
           for (int _i189 = 0; _i189 < _map188.size; ++_i189)
           {
             String _key190; // required
-            String _val191; // optional
+            String _val191; // required
             _key190 = iprot.readString();
             _val191 = iprot.readString();
             struct.parameters.put(_key190, _val191);

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ThriftHiveMetastore.java Wed Apr 17 07:29:38 2013
@@ -17350,7 +17350,7 @@ public class ThriftHiveMetastore {
                   for (int _i273 = 0; _i273 < _map272.size; ++_i273)
                   {
                     String _key274; // required
-                    Type _val275; // optional
+                    Type _val275; // required
                     _key274 = iprot.readString();
                     _val275 = new Type();
                     _val275.read(iprot);
@@ -17454,7 +17454,7 @@ public class ThriftHiveMetastore {
             for (int _i279 = 0; _i279 < _map278.size; ++_i279)
             {
               String _key280; // required
-              Type _val281; // optional
+              Type _val281; // required
               _key280 = iprot.readString();
               _val281 = new Type();
               _val281.read(iprot);
@@ -68039,7 +68039,7 @@ public class ThriftHiveMetastore {
                   for (int _i547 = 0; _i547 < _map546.size; ++_i547)
                   {
                     String _key548; // required
-                    String _val549; // optional
+                    String _val549; // required
                     _key548 = iprot.readString();
                     _val549 = iprot.readString();
                     struct.success.put(_key548, _val549);
@@ -68142,7 +68142,7 @@ public class ThriftHiveMetastore {
             for (int _i553 = 0; _i553 < _map552.size; ++_i553)
             {
               String _key554; // required
-              String _val555; // optional
+              String _val555; // required
               _key554 = iprot.readString();
               _val555 = iprot.readString();
               struct.success.put(_key554, _val555);
@@ -68756,7 +68756,7 @@ public class ThriftHiveMetastore {
                   for (int _i557 = 0; _i557 < _map556.size; ++_i557)
                   {
                     String _key558; // required
-                    String _val559; // optional
+                    String _val559; // required
                     _key558 = iprot.readString();
                     _val559 = iprot.readString();
                     struct.part_vals.put(_key558, _val559);
@@ -68888,7 +68888,7 @@ public class ThriftHiveMetastore {
             for (int _i563 = 0; _i563 < _map562.size; ++_i563)
             {
               String _key564; // required
-              String _val565; // optional
+              String _val565; // required
               _key564 = iprot.readString();
               _val565 = iprot.readString();
               struct.part_vals.put(_key564, _val565);
@@ -70391,7 +70391,7 @@ public class ThriftHiveMetastore {
                   for (int _i567 = 0; _i567 < _map566.size; ++_i567)
                   {
                     String _key568; // required
-                    String _val569; // optional
+                    String _val569; // required
                     _key568 = iprot.readString();
                     _val569 = iprot.readString();
                     struct.part_vals.put(_key568, _val569);
@@ -70523,7 +70523,7 @@ public class ThriftHiveMetastore {
             for (int _i573 = 0; _i573 < _map572.size; ++_i573)
             {
               String _key574; // required
-              String _val575; // optional
+              String _val575; // required
               _key574 = iprot.readString();
               _val575 = iprot.readString();
               struct.part_vals.put(_key574, _val575);

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-php/metastore/Types.php
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-php/metastore/Types.php?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-php/metastore/Types.php (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-php/metastore/Types.php Wed Apr 17 07:29:38 2013
@@ -1815,6 +1815,104 @@ class Order {
 
 }
 
+class SkewedValueList {
+  static $_TSPEC;
+
+  public $skewedValueList = null;
+
+  public function __construct($vals=null) {
+    if (!isset(self::$_TSPEC)) {
+      self::$_TSPEC = array(
+        1 => array(
+          'var' => 'skewedValueList',
+          'type' => TType::LST,
+          'etype' => TType::STRING,
+          'elem' => array(
+            'type' => TType::STRING,
+            ),
+          ),
+        );
+    }
+    if (is_array($vals)) {
+      if (isset($vals['skewedValueList'])) {
+        $this->skewedValueList = $vals['skewedValueList'];
+      }
+    }
+  }
+
+  public function getName() {
+    return 'SkewedValueList';
+  }
+
+  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->skewedValueList = array();
+            $_size87 = 0;
+            $_etype90 = 0;
+            $xfer += $input->readListBegin($_etype90, $_size87);
+            for ($_i91 = 0; $_i91 < $_size87; ++$_i91)
+            {
+              $elem92 = null;
+              $xfer += $input->readString($elem92);
+              $this->skewedValueList []= $elem92;
+            }
+            $xfer += $input->readListEnd();
+          } 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('SkewedValueList');
+    if ($this->skewedValueList !== null) {
+      if (!is_array($this->skewedValueList)) {
+        throw new TProtocolException('Bad type in structure.', TProtocolException::INVALID_DATA);
+      }
+      $xfer += $output->writeFieldBegin('skewedValueList', TType::LST, 1);
+      {
+        $output->writeListBegin(TType::STRING, count($this->skewedValueList));
+        {
+          foreach ($this->skewedValueList as $iter93)
+          {
+            $xfer += $output->writeString($iter93);
+          }
+        }
+        $output->writeListEnd();
+      }
+      $xfer += $output->writeFieldEnd();
+    }
+    $xfer += $output->writeFieldStop();
+    $xfer += $output->writeStructEnd();
+    return $xfer;
+  }
+
+}
+
 class SkewedInfo {
   static $_TSPEC;
 
@@ -1848,14 +1946,11 @@ class SkewedInfo {
         3 => array(
           'var' => 'skewedColValueLocationMaps',
           'type' => TType::MAP,
-          'ktype' => TType::LST,
+          'ktype' => TType::STRUCT,
           'vtype' => TType::STRING,
           'key' => array(
-            'type' => TType::LST,
-            'etype' => TType::STRING,
-            'elem' => array(
-              'type' => TType::STRING,
-              ),
+            'type' => TType::STRUCT,
+            'class' => '\metastore\SkewedValueList',
           ),
           'val' => array(
             'type' => TType::STRING,
@@ -1898,14 +1993,14 @@ class SkewedInfo {
         case 1:
           if ($ftype == TType::LST) {
             $this->skewedColNames = array();
-            $_size87 = 0;
-            $_etype90 = 0;
-            $xfer += $input->readListBegin($_etype90, $_size87);
-            for ($_i91 = 0; $_i91 < $_size87; ++$_i91)
+            $_size94 = 0;
+            $_etype97 = 0;
+            $xfer += $input->readListBegin($_etype97, $_size94);
+            for ($_i98 = 0; $_i98 < $_size94; ++$_i98)
             {
-              $elem92 = null;
-              $xfer += $input->readString($elem92);
-              $this->skewedColNames []= $elem92;
+              $elem99 = null;
+              $xfer += $input->readString($elem99);
+              $this->skewedColNames []= $elem99;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1915,24 +2010,24 @@ class SkewedInfo {
         case 2:
           if ($ftype == TType::LST) {
             $this->skewedColValues = array();
-            $_size93 = 0;
-            $_etype96 = 0;
-            $xfer += $input->readListBegin($_etype96, $_size93);
-            for ($_i97 = 0; $_i97 < $_size93; ++$_i97)
+            $_size100 = 0;
+            $_etype103 = 0;
+            $xfer += $input->readListBegin($_etype103, $_size100);
+            for ($_i104 = 0; $_i104 < $_size100; ++$_i104)
             {
-              $elem98 = null;
-              $elem98 = array();
-              $_size99 = 0;
-              $_etype102 = 0;
-              $xfer += $input->readListBegin($_etype102, $_size99);
-              for ($_i103 = 0; $_i103 < $_size99; ++$_i103)
+              $elem105 = null;
+              $elem105 = array();
+              $_size106 = 0;
+              $_etype109 = 0;
+              $xfer += $input->readListBegin($_etype109, $_size106);
+              for ($_i110 = 0; $_i110 < $_size106; ++$_i110)
               {
-                $elem104 = null;
-                $xfer += $input->readString($elem104);
-                $elem98 []= $elem104;
+                $elem111 = null;
+                $xfer += $input->readString($elem111);
+                $elem105 []= $elem111;
               }
               $xfer += $input->readListEnd();
-              $this->skewedColValues []= $elem98;
+              $this->skewedColValues []= $elem105;
             }
             $xfer += $input->readListEnd();
           } else {
@@ -1942,27 +2037,18 @@ class SkewedInfo {
         case 3:
           if ($ftype == TType::MAP) {
             $this->skewedColValueLocationMaps = array();
-            $_size105 = 0;
-            $_ktype106 = 0;
-            $_vtype107 = 0;
-            $xfer += $input->readMapBegin($_ktype106, $_vtype107, $_size105);
-            for ($_i109 = 0; $_i109 < $_size105; ++$_i109)
+            $_size112 = 0;
+            $_ktype113 = 0;
+            $_vtype114 = 0;
+            $xfer += $input->readMapBegin($_ktype113, $_vtype114, $_size112);
+            for ($_i116 = 0; $_i116 < $_size112; ++$_i116)
             {
-              $key110 = array();
-              $val111 = '';
-              $key110 = array();
-              $_size112 = 0;
-              $_etype115 = 0;
-              $xfer += $input->readListBegin($_etype115, $_size112);
-              for ($_i116 = 0; $_i116 < $_size112; ++$_i116)
-              {
-                $elem117 = null;
-                $xfer += $input->readString($elem117);
-                $key110 []= $elem117;
-              }
-              $xfer += $input->readListEnd();
-              $xfer += $input->readString($val111);
-              $this->skewedColValueLocationMaps[$key110] = $val111;
+              $key117 = new \metastore\SkewedValueList();
+              $val118 = '';
+              $key117 = new \metastore\SkewedValueList();
+              $xfer += $key117->read($input);
+              $xfer += $input->readString($val118);
+              $this->skewedColValueLocationMaps[$key117] = $val118;
             }
             $xfer += $input->readMapEnd();
           } else {
@@ -1990,9 +2076,9 @@ class SkewedInfo {
       {
         $output->writeListBegin(TType::STRING, count($this->skewedColNames));
         {
-          foreach ($this->skewedColNames as $iter118)
+          foreach ($this->skewedColNames as $iter119)
           {
-            $xfer += $output->writeString($iter118);
+            $xfer += $output->writeString($iter119);
           }
         }
         $output->writeListEnd();
@@ -2007,14 +2093,14 @@ class SkewedInfo {
       {
         $output->writeListBegin(TType::LST, count($this->skewedColValues));
         {
-          foreach ($this->skewedColValues as $iter119)
+          foreach ($this->skewedColValues as $iter120)
           {
             {
-              $output->writeListBegin(TType::STRING, count($iter119));
+              $output->writeListBegin(TType::STRING, count($iter120));
               {
-                foreach ($iter119 as $iter120)
+                foreach ($iter120 as $iter121)
                 {
-                  $xfer += $output->writeString($iter120);
+                  $xfer += $output->writeString($iter121);
                 }
               }
               $output->writeListEnd();
@@ -2031,21 +2117,12 @@ class SkewedInfo {
       }
       $xfer += $output->writeFieldBegin('skewedColValueLocationMaps', TType::MAP, 3);
       {
-        $output->writeMapBegin(TType::LST, TType::STRING, count($this->skewedColValueLocationMaps));
+        $output->writeMapBegin(TType::STRUCT, TType::STRING, count($this->skewedColValueLocationMaps));
         {
-          foreach ($this->skewedColValueLocationMaps as $kiter121 => $viter122)
+          foreach ($this->skewedColValueLocationMaps as $kiter122 => $viter123)
           {
-            {
-              $output->writeListBegin(TType::STRING, count($kiter121));
-              {
-                foreach ($kiter121 as $iter123)
-                {
-                  $xfer += $output->writeString($iter123);
-                }
-              }
-              $output->writeListEnd();
-            }
-            $xfer += $output->writeString($viter122);
+            $xfer += $kiter122->write($output);
+            $xfer += $output->writeString($viter123);
           }
         }
         $output->writeMapEnd();

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py Wed Apr 17 07:29:38 2013
@@ -1232,6 +1232,74 @@ class Order:
   def __ne__(self, other):
     return not (self == other)
 
+class SkewedValueList:
+  """
+  Attributes:
+   - skewedValueList
+  """
+
+  thrift_spec = (
+    None, # 0
+    (1, TType.LIST, 'skewedValueList', (TType.STRING,None), None, ), # 1
+  )
+
+  def __init__(self, skewedValueList=None,):
+    self.skewedValueList = skewedValueList
+
+  def read(self, iprot):
+    if iprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and isinstance(iprot.trans, TTransport.CReadableTransport) and self.thrift_spec is not None and fastbinary is not None:
+      fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
+      return
+    iprot.readStructBegin()
+    while True:
+      (fname, ftype, fid) = iprot.readFieldBegin()
+      if ftype == TType.STOP:
+        break
+      if fid == 1:
+        if ftype == TType.LIST:
+          self.skewedValueList = []
+          (_etype90, _size87) = iprot.readListBegin()
+          for _i91 in xrange(_size87):
+            _elem92 = iprot.readString();
+            self.skewedValueList.append(_elem92)
+          iprot.readListEnd()
+        else:
+          iprot.skip(ftype)
+      else:
+        iprot.skip(ftype)
+      iprot.readFieldEnd()
+    iprot.readStructEnd()
+
+  def write(self, oprot):
+    if oprot.__class__ == TBinaryProtocol.TBinaryProtocolAccelerated and self.thrift_spec is not None and fastbinary is not None:
+      oprot.trans.write(fastbinary.encode_binary(self, (self.__class__, self.thrift_spec)))
+      return
+    oprot.writeStructBegin('SkewedValueList')
+    if self.skewedValueList is not None:
+      oprot.writeFieldBegin('skewedValueList', TType.LIST, 1)
+      oprot.writeListBegin(TType.STRING, len(self.skewedValueList))
+      for iter93 in self.skewedValueList:
+        oprot.writeString(iter93)
+      oprot.writeListEnd()
+      oprot.writeFieldEnd()
+    oprot.writeFieldStop()
+    oprot.writeStructEnd()
+
+  def validate(self):
+    return
+
+
+  def __repr__(self):
+    L = ['%s=%r' % (key, value)
+      for key, value in self.__dict__.iteritems()]
+    return '%s(%s)' % (self.__class__.__name__, ', '.join(L))
+
+  def __eq__(self, other):
+    return isinstance(other, self.__class__) and self.__dict__ == other.__dict__
+
+  def __ne__(self, other):
+    return not (self == other)
+
 class SkewedInfo:
   """
   Attributes:
@@ -1244,7 +1312,7 @@ class SkewedInfo:
     None, # 0
     (1, TType.LIST, 'skewedColNames', (TType.STRING,None), None, ), # 1
     (2, TType.LIST, 'skewedColValues', (TType.LIST,(TType.STRING,None)), None, ), # 2
-    (3, TType.MAP, 'skewedColValueLocationMaps', (TType.LIST,(TType.STRING,None),TType.STRING,None), None, ), # 3
+    (3, TType.MAP, 'skewedColValueLocationMaps', (TType.STRUCT,(SkewedValueList, SkewedValueList.thrift_spec),TType.STRING,None), None, ), # 3
   )
 
   def __init__(self, skewedColNames=None, skewedColValues=None, skewedColValueLocationMaps=None,):
@@ -1264,41 +1332,37 @@ class SkewedInfo:
       if fid == 1:
         if ftype == TType.LIST:
           self.skewedColNames = []
-          (_etype90, _size87) = iprot.readListBegin()
-          for _i91 in xrange(_size87):
-            _elem92 = iprot.readString();
-            self.skewedColNames.append(_elem92)
+          (_etype97, _size94) = iprot.readListBegin()
+          for _i98 in xrange(_size94):
+            _elem99 = iprot.readString();
+            self.skewedColNames.append(_elem99)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 2:
         if ftype == TType.LIST:
           self.skewedColValues = []
-          (_etype96, _size93) = iprot.readListBegin()
-          for _i97 in xrange(_size93):
-            _elem98 = []
-            (_etype102, _size99) = iprot.readListBegin()
-            for _i103 in xrange(_size99):
-              _elem104 = iprot.readString();
-              _elem98.append(_elem104)
+          (_etype103, _size100) = iprot.readListBegin()
+          for _i104 in xrange(_size100):
+            _elem105 = []
+            (_etype109, _size106) = iprot.readListBegin()
+            for _i110 in xrange(_size106):
+              _elem111 = iprot.readString();
+              _elem105.append(_elem111)
             iprot.readListEnd()
-            self.skewedColValues.append(_elem98)
+            self.skewedColValues.append(_elem105)
           iprot.readListEnd()
         else:
           iprot.skip(ftype)
       elif fid == 3:
         if ftype == TType.MAP:
           self.skewedColValueLocationMaps = {}
-          (_ktype106, _vtype107, _size105 ) = iprot.readMapBegin() 
-          for _i109 in xrange(_size105):
-            _key110 = []
-            (_etype115, _size112) = iprot.readListBegin()
-            for _i116 in xrange(_size112):
-              _elem117 = iprot.readString();
-              _key110.append(_elem117)
-            iprot.readListEnd()
-            _val111 = iprot.readString();
-            self.skewedColValueLocationMaps[_key110] = _val111
+          (_ktype113, _vtype114, _size112 ) = iprot.readMapBegin() 
+          for _i116 in xrange(_size112):
+            _key117 = SkewedValueList()
+            _key117.read(iprot)
+            _val118 = iprot.readString();
+            self.skewedColValueLocationMaps[_key117] = _val118
           iprot.readMapEnd()
         else:
           iprot.skip(ftype)
@@ -1315,29 +1379,26 @@ class SkewedInfo:
     if self.skewedColNames is not None:
       oprot.writeFieldBegin('skewedColNames', TType.LIST, 1)
       oprot.writeListBegin(TType.STRING, len(self.skewedColNames))
-      for iter118 in self.skewedColNames:
-        oprot.writeString(iter118)
+      for iter119 in self.skewedColNames:
+        oprot.writeString(iter119)
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.skewedColValues is not None:
       oprot.writeFieldBegin('skewedColValues', TType.LIST, 2)
       oprot.writeListBegin(TType.LIST, len(self.skewedColValues))
-      for iter119 in self.skewedColValues:
-        oprot.writeListBegin(TType.STRING, len(iter119))
-        for iter120 in iter119:
-          oprot.writeString(iter120)
+      for iter120 in self.skewedColValues:
+        oprot.writeListBegin(TType.STRING, len(iter120))
+        for iter121 in iter120:
+          oprot.writeString(iter121)
         oprot.writeListEnd()
       oprot.writeListEnd()
       oprot.writeFieldEnd()
     if self.skewedColValueLocationMaps is not None:
       oprot.writeFieldBegin('skewedColValueLocationMaps', TType.MAP, 3)
-      oprot.writeMapBegin(TType.LIST, TType.STRING, len(self.skewedColValueLocationMaps))
-      for kiter121,viter122 in self.skewedColValueLocationMaps.items():
-        oprot.writeListBegin(TType.STRING, len(kiter121))
-        for iter123 in kiter121:
-          oprot.writeString(iter123)
-        oprot.writeListEnd()
-        oprot.writeString(viter122)
+      oprot.writeMapBegin(TType.STRUCT, TType.STRING, len(self.skewedColValueLocationMaps))
+      for kiter122,viter123 in self.skewedColValueLocationMaps.items():
+        kiter122.write(oprot)
+        oprot.writeString(viter123)
       oprot.writeMapEnd()
       oprot.writeFieldEnd()
     oprot.writeFieldStop()

Modified: hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb (original)
+++ hive/branches/HIVE-4115/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb Wed Apr 17 07:29:38 2013
@@ -289,6 +289,22 @@ class Order
   ::Thrift::Struct.generate_accessors self
 end
 
+class SkewedValueList
+  include ::Thrift::Struct, ::Thrift::Struct_Union
+  SKEWEDVALUELIST = 1
+
+  FIELDS = {
+    SKEWEDVALUELIST => {:type => ::Thrift::Types::LIST, :name => 'skewedValueList', :element => {:type => ::Thrift::Types::STRING}}
+  }
+
+  def struct_fields; FIELDS; end
+
+  def validate
+  end
+
+  ::Thrift::Struct.generate_accessors self
+end
+
 class SkewedInfo
   include ::Thrift::Struct, ::Thrift::Struct_Union
   SKEWEDCOLNAMES = 1
@@ -298,7 +314,7 @@ class SkewedInfo
   FIELDS = {
     SKEWEDCOLNAMES => {:type => ::Thrift::Types::LIST, :name => 'skewedColNames', :element => {:type => ::Thrift::Types::STRING}},
     SKEWEDCOLVALUES => {:type => ::Thrift::Types::LIST, :name => 'skewedColValues', :element => {:type => ::Thrift::Types::LIST, :element => {:type => ::Thrift::Types::STRING}}},
-    SKEWEDCOLVALUELOCATIONMAPS => {:type => ::Thrift::Types::MAP, :name => 'skewedColValueLocationMaps', :key => {:type => ::Thrift::Types::LIST, :element => {:type => ::Thrift::Types::STRING}}, :value => {:type => ::Thrift::Types::STRING}}
+    SKEWEDCOLVALUELOCATIONMAPS => {:type => ::Thrift::Types::MAP, :name => 'skewedColValueLocationMaps', :key => {:type => ::Thrift::Types::STRUCT, :class => ::SkewedValueList}, :value => {:type => ::Thrift::Types::STRING}}
   }
 
   def struct_fields; FIELDS; end

Modified: hive/branches/HIVE-4115/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (original)
+++ hive/branches/HIVE-4115/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java Wed Apr 17 07:29:38 2013
@@ -85,6 +85,7 @@ import org.apache.hadoop.hive.metastore.
 import org.apache.hadoop.hive.metastore.api.Role;
 import org.apache.hadoop.hive.metastore.api.SerDeInfo;
 import org.apache.hadoop.hive.metastore.api.SkewedInfo;
+import org.apache.hadoop.hive.metastore.api.SkewedValueList;
 import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
 import org.apache.hadoop.hive.metastore.api.StringColumnStatsData;
 import org.apache.hadoop.hive.metastore.api.Table;
@@ -1054,13 +1055,13 @@ public class ObjectStore implements RawS
    * @param mMap
    * @return
    */
-  private Map<List<String>, String> covertToSkewedMap(Map<MStringList, String> mMap) {
-    Map<List<String>, String> map = null;
+  private Map<SkewedValueList, String> covertToSkewedMap(Map<MStringList, String> mMap) {
+    Map<SkewedValueList, String> map = null;
     if (mMap != null) {
-      map = new HashMap<List<String>, String>(mMap.size());
+      map = new HashMap<SkewedValueList, String>(mMap.size());
       Set<MStringList> keys = mMap.keySet();
       for (MStringList key : keys) {
-        map.put(new ArrayList<String>(key.getInternalList()), mMap.get(key));
+        map.put(new SkewedValueList(new ArrayList<String>(key.getInternalList())), mMap.get(key));
       }
     }
     return map;
@@ -1071,13 +1072,12 @@ public class ObjectStore implements RawS
    * @param mMap
    * @return
    */
-  private Map<MStringList, String> covertToMapMStringList(Map<List<String>, String> mMap) {
+  private Map<MStringList, String> convertToMapMStringList(Map<SkewedValueList, String> mMap) {
     Map<MStringList, String> map = null;
     if (mMap != null) {
       map = new HashMap<MStringList, String>(mMap.size());
-      Set<List<String>> keys = mMap.keySet();
-      for (List<String> key : keys) {
-        map.put(new MStringList(key), mMap.get(key));
+      for (Map.Entry<SkewedValueList, String> entry : mMap.entrySet()) {
+        map.put(new MStringList(entry.getKey().getSkewedValueList()), entry.getValue());
       }
     }
     return map;
@@ -1124,7 +1124,7 @@ public class ObjectStore implements RawS
             : sd.getSkewedInfo().getSkewedColNames(),
         convertToMStringLists((null == sd.getSkewedInfo()) ? null : sd.getSkewedInfo()
             .getSkewedColValues()),
-        covertToMapMStringList((null == sd.getSkewedInfo()) ? null : sd.getSkewedInfo()
+        convertToMapMStringList((null == sd.getSkewedInfo()) ? null : sd.getSkewedInfo()
             .getSkewedColValueLocationMaps()), sd.isStoredAsSubDirectories());
   }
 

Modified: hive/branches/HIVE-4115/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java?rev=1468783&r1=1468782&r2=1468783&view=diff
==============================================================================
--- hive/branches/HIVE-4115/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java (original)
+++ hive/branches/HIVE-4115/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java Wed Apr 17 07:29:38 2013
@@ -53,6 +53,7 @@ import org.apache.hadoop.hive.metastore.
 import org.apache.hadoop.hive.metastore.api.Partition;
 import org.apache.hadoop.hive.metastore.api.SerDeInfo;
 import org.apache.hadoop.hive.metastore.api.SkewedInfo;
+import org.apache.hadoop.hive.metastore.api.SkewedValueList;
 import org.apache.hadoop.hive.metastore.api.StorageDescriptor;
 import org.apache.hadoop.hive.metastore.api.StringColumnStatsData;
 import org.apache.hadoop.hive.metastore.api.Table;
@@ -185,8 +186,8 @@ public abstract class TestHiveMetaStore 
       skewInfor.setSkewedColNames(Arrays.asList("name"));
       List<String> skv = Arrays.asList("1");
       skewInfor.setSkewedColValues(Arrays.asList(skv));
-      Map<List<String>, String> scvlm = new HashMap<List<String>, String>();
-      scvlm.put(skv, "location1");
+      Map<SkewedValueList, String> scvlm = new HashMap<SkewedValueList, String>();
+      scvlm.put(new SkewedValueList(skv), "location1");
       skewInfor.setSkewedColValueLocationMaps(scvlm);
       sd.setSkewedInfo(skewInfor);