You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2012/08/25 04:44:25 UTC
svn commit: r1377187 [7/8] - in /hive/trunk:
common/src/java/org/apache/hadoop/hive/conf/ metastore/if/
metastore/scripts/upgrade/derby/ metastore/scripts/upgrade/mysql/
metastore/scripts/upgrade/oracle/ metastore/scripts/upgrade/postgres/
metastore/sr...
Modified: hive/trunk/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py?rev=1377187&r1=1377186&r2=1377187&view=diff
==============================================================================
--- hive/trunk/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py (original)
+++ hive/trunk/metastore/src/gen/thrift/gen-py/hive_metastore/ThriftHiveMetastore.py Sat Aug 25 02:44:22 2012
@@ -4815,10 +4815,10 @@ class get_databases_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype186, _size183) = iprot.readListBegin()
- for _i187 in xrange(_size183):
- _elem188 = iprot.readString();
- self.success.append(_elem188)
+ (_etype223, _size220) = iprot.readListBegin()
+ for _i224 in xrange(_size220):
+ _elem225 = iprot.readString();
+ self.success.append(_elem225)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -4841,8 +4841,8 @@ class get_databases_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter189 in self.success:
- oprot.writeString(iter189)
+ for iter226 in self.success:
+ oprot.writeString(iter226)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -4937,10 +4937,10 @@ class get_all_databases_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype193, _size190) = iprot.readListBegin()
- for _i194 in xrange(_size190):
- _elem195 = iprot.readString();
- self.success.append(_elem195)
+ (_etype230, _size227) = iprot.readListBegin()
+ for _i231 in xrange(_size227):
+ _elem232 = iprot.readString();
+ self.success.append(_elem232)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -4963,8 +4963,8 @@ class get_all_databases_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter196 in self.success:
- oprot.writeString(iter196)
+ for iter233 in self.success:
+ oprot.writeString(iter233)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -5674,12 +5674,12 @@ class get_type_all_result:
if fid == 0:
if ftype == TType.MAP:
self.success = {}
- (_ktype198, _vtype199, _size197 ) = iprot.readMapBegin()
- for _i201 in xrange(_size197):
- _key202 = iprot.readString();
- _val203 = Type()
- _val203.read(iprot)
- self.success[_key202] = _val203
+ (_ktype235, _vtype236, _size234 ) = iprot.readMapBegin()
+ for _i238 in xrange(_size234):
+ _key239 = iprot.readString();
+ _val240 = Type()
+ _val240.read(iprot)
+ self.success[_key239] = _val240
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -5702,9 +5702,9 @@ class get_type_all_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.MAP, 0)
oprot.writeMapBegin(TType.STRING, TType.STRUCT, len(self.success))
- for kiter204,viter205 in self.success.items():
- oprot.writeString(kiter204)
- viter205.write(oprot)
+ for kiter241,viter242 in self.success.items():
+ oprot.writeString(kiter241)
+ viter242.write(oprot)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.o2 is not None:
@@ -5835,11 +5835,11 @@ class get_fields_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype209, _size206) = iprot.readListBegin()
- for _i210 in xrange(_size206):
- _elem211 = FieldSchema()
- _elem211.read(iprot)
- self.success.append(_elem211)
+ (_etype246, _size243) = iprot.readListBegin()
+ for _i247 in xrange(_size243):
+ _elem248 = FieldSchema()
+ _elem248.read(iprot)
+ self.success.append(_elem248)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -5874,8 +5874,8 @@ class get_fields_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter212 in self.success:
- iter212.write(oprot)
+ for iter249 in self.success:
+ iter249.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -6014,11 +6014,11 @@ class get_schema_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype216, _size213) = iprot.readListBegin()
- for _i217 in xrange(_size213):
- _elem218 = FieldSchema()
- _elem218.read(iprot)
- self.success.append(_elem218)
+ (_etype253, _size250) = iprot.readListBegin()
+ for _i254 in xrange(_size250):
+ _elem255 = FieldSchema()
+ _elem255.read(iprot)
+ self.success.append(_elem255)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -6053,8 +6053,8 @@ class get_schema_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter219 in self.success:
- iter219.write(oprot)
+ for iter256 in self.success:
+ iter256.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -6680,10 +6680,10 @@ class get_tables_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype223, _size220) = iprot.readListBegin()
- for _i224 in xrange(_size220):
- _elem225 = iprot.readString();
- self.success.append(_elem225)
+ (_etype260, _size257) = iprot.readListBegin()
+ for _i261 in xrange(_size257):
+ _elem262 = iprot.readString();
+ self.success.append(_elem262)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -6706,8 +6706,8 @@ class get_tables_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter226 in self.success:
- oprot.writeString(iter226)
+ for iter263 in self.success:
+ oprot.writeString(iter263)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -6820,10 +6820,10 @@ class get_all_tables_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype230, _size227) = iprot.readListBegin()
- for _i231 in xrange(_size227):
- _elem232 = iprot.readString();
- self.success.append(_elem232)
+ (_etype267, _size264) = iprot.readListBegin()
+ for _i268 in xrange(_size264):
+ _elem269 = iprot.readString();
+ self.success.append(_elem269)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -6846,8 +6846,8 @@ class get_all_tables_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter233 in self.success:
- oprot.writeString(iter233)
+ for iter270 in self.success:
+ oprot.writeString(iter270)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -7064,10 +7064,10 @@ class get_table_objects_by_name_args:
elif fid == 2:
if ftype == TType.LIST:
self.tbl_names = []
- (_etype237, _size234) = iprot.readListBegin()
- for _i238 in xrange(_size234):
- _elem239 = iprot.readString();
- self.tbl_names.append(_elem239)
+ (_etype274, _size271) = iprot.readListBegin()
+ for _i275 in xrange(_size271):
+ _elem276 = iprot.readString();
+ self.tbl_names.append(_elem276)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -7088,8 +7088,8 @@ class get_table_objects_by_name_args:
if self.tbl_names is not None:
oprot.writeFieldBegin('tbl_names', TType.LIST, 2)
oprot.writeListBegin(TType.STRING, len(self.tbl_names))
- for iter240 in self.tbl_names:
- oprot.writeString(iter240)
+ for iter277 in self.tbl_names:
+ oprot.writeString(iter277)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -7144,11 +7144,11 @@ class get_table_objects_by_name_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype244, _size241) = iprot.readListBegin()
- for _i245 in xrange(_size241):
- _elem246 = Table()
- _elem246.read(iprot)
- self.success.append(_elem246)
+ (_etype281, _size278) = iprot.readListBegin()
+ for _i282 in xrange(_size278):
+ _elem283 = Table()
+ _elem283.read(iprot)
+ self.success.append(_elem283)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -7183,8 +7183,8 @@ class get_table_objects_by_name_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter247 in self.success:
- iter247.write(oprot)
+ for iter284 in self.success:
+ iter284.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -7335,10 +7335,10 @@ class get_table_names_by_filter_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype251, _size248) = iprot.readListBegin()
- for _i252 in xrange(_size248):
- _elem253 = iprot.readString();
- self.success.append(_elem253)
+ (_etype288, _size285) = iprot.readListBegin()
+ for _i289 in xrange(_size285):
+ _elem290 = iprot.readString();
+ self.success.append(_elem290)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -7373,8 +7373,8 @@ class get_table_names_by_filter_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter254 in self.success:
- oprot.writeString(iter254)
+ for iter291 in self.success:
+ oprot.writeString(iter291)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -8097,11 +8097,11 @@ class add_partitions_args:
if fid == 1:
if ftype == TType.LIST:
self.new_parts = []
- (_etype258, _size255) = iprot.readListBegin()
- for _i259 in xrange(_size255):
- _elem260 = Partition()
- _elem260.read(iprot)
- self.new_parts.append(_elem260)
+ (_etype295, _size292) = iprot.readListBegin()
+ for _i296 in xrange(_size292):
+ _elem297 = Partition()
+ _elem297.read(iprot)
+ self.new_parts.append(_elem297)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -8118,8 +8118,8 @@ class add_partitions_args:
if self.new_parts is not None:
oprot.writeFieldBegin('new_parts', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.new_parts))
- for iter261 in self.new_parts:
- iter261.write(oprot)
+ for iter298 in self.new_parts:
+ iter298.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -8280,10 +8280,10 @@ class append_partition_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype265, _size262) = iprot.readListBegin()
- for _i266 in xrange(_size262):
- _elem267 = iprot.readString();
- self.part_vals.append(_elem267)
+ (_etype302, _size299) = iprot.readListBegin()
+ for _i303 in xrange(_size299):
+ _elem304 = iprot.readString();
+ self.part_vals.append(_elem304)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -8308,8 +8308,8 @@ class append_partition_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter268 in self.part_vals:
- oprot.writeString(iter268)
+ for iter305 in self.part_vals:
+ oprot.writeString(iter305)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -8657,10 +8657,10 @@ class drop_partition_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype272, _size269) = iprot.readListBegin()
- for _i273 in xrange(_size269):
- _elem274 = iprot.readString();
- self.part_vals.append(_elem274)
+ (_etype309, _size306) = iprot.readListBegin()
+ for _i310 in xrange(_size306):
+ _elem311 = iprot.readString();
+ self.part_vals.append(_elem311)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -8690,8 +8690,8 @@ class drop_partition_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter275 in self.part_vals:
- oprot.writeString(iter275)
+ for iter312 in self.part_vals:
+ oprot.writeString(iter312)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.deleteData is not None:
@@ -9024,10 +9024,10 @@ class get_partition_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype279, _size276) = iprot.readListBegin()
- for _i280 in xrange(_size276):
- _elem281 = iprot.readString();
- self.part_vals.append(_elem281)
+ (_etype316, _size313) = iprot.readListBegin()
+ for _i317 in xrange(_size313):
+ _elem318 = iprot.readString();
+ self.part_vals.append(_elem318)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -9052,8 +9052,8 @@ class get_partition_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter282 in self.part_vals:
- oprot.writeString(iter282)
+ for iter319 in self.part_vals:
+ oprot.writeString(iter319)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -9208,10 +9208,10 @@ class get_partition_with_auth_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype286, _size283) = iprot.readListBegin()
- for _i287 in xrange(_size283):
- _elem288 = iprot.readString();
- self.part_vals.append(_elem288)
+ (_etype323, _size320) = iprot.readListBegin()
+ for _i324 in xrange(_size320):
+ _elem325 = iprot.readString();
+ self.part_vals.append(_elem325)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -9223,10 +9223,10 @@ class get_partition_with_auth_args:
elif fid == 5:
if ftype == TType.LIST:
self.group_names = []
- (_etype292, _size289) = iprot.readListBegin()
- for _i293 in xrange(_size289):
- _elem294 = iprot.readString();
- self.group_names.append(_elem294)
+ (_etype329, _size326) = iprot.readListBegin()
+ for _i330 in xrange(_size326):
+ _elem331 = iprot.readString();
+ self.group_names.append(_elem331)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -9251,8 +9251,8 @@ class get_partition_with_auth_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter295 in self.part_vals:
- oprot.writeString(iter295)
+ for iter332 in self.part_vals:
+ oprot.writeString(iter332)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.user_name is not None:
@@ -9262,8 +9262,8 @@ class get_partition_with_auth_args:
if self.group_names is not None:
oprot.writeFieldBegin('group_names', TType.LIST, 5)
oprot.writeListBegin(TType.STRING, len(self.group_names))
- for iter296 in self.group_names:
- oprot.writeString(iter296)
+ for iter333 in self.group_names:
+ oprot.writeString(iter333)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -9655,11 +9655,11 @@ class get_partitions_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype300, _size297) = iprot.readListBegin()
- for _i301 in xrange(_size297):
- _elem302 = Partition()
- _elem302.read(iprot)
- self.success.append(_elem302)
+ (_etype337, _size334) = iprot.readListBegin()
+ for _i338 in xrange(_size334):
+ _elem339 = Partition()
+ _elem339.read(iprot)
+ self.success.append(_elem339)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -9688,8 +9688,8 @@ class get_partitions_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter303 in self.success:
- iter303.write(oprot)
+ for iter340 in self.success:
+ iter340.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -9776,10 +9776,10 @@ class get_partitions_with_auth_args:
elif fid == 5:
if ftype == TType.LIST:
self.group_names = []
- (_etype307, _size304) = iprot.readListBegin()
- for _i308 in xrange(_size304):
- _elem309 = iprot.readString();
- self.group_names.append(_elem309)
+ (_etype344, _size341) = iprot.readListBegin()
+ for _i345 in xrange(_size341):
+ _elem346 = iprot.readString();
+ self.group_names.append(_elem346)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -9812,8 +9812,8 @@ class get_partitions_with_auth_args:
if self.group_names is not None:
oprot.writeFieldBegin('group_names', TType.LIST, 5)
oprot.writeListBegin(TType.STRING, len(self.group_names))
- for iter310 in self.group_names:
- oprot.writeString(iter310)
+ for iter347 in self.group_names:
+ oprot.writeString(iter347)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -9865,11 +9865,11 @@ class get_partitions_with_auth_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype314, _size311) = iprot.readListBegin()
- for _i315 in xrange(_size311):
- _elem316 = Partition()
- _elem316.read(iprot)
- self.success.append(_elem316)
+ (_etype351, _size348) = iprot.readListBegin()
+ for _i352 in xrange(_size348):
+ _elem353 = Partition()
+ _elem353.read(iprot)
+ self.success.append(_elem353)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -9898,8 +9898,8 @@ class get_partitions_with_auth_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter317 in self.success:
- iter317.write(oprot)
+ for iter354 in self.success:
+ iter354.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -10040,10 +10040,10 @@ class get_partition_names_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype321, _size318) = iprot.readListBegin()
- for _i322 in xrange(_size318):
- _elem323 = iprot.readString();
- self.success.append(_elem323)
+ (_etype358, _size355) = iprot.readListBegin()
+ for _i359 in xrange(_size355):
+ _elem360 = iprot.readString();
+ self.success.append(_elem360)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -10066,8 +10066,8 @@ class get_partition_names_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter324 in self.success:
- oprot.writeString(iter324)
+ for iter361 in self.success:
+ oprot.writeString(iter361)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o2 is not None:
@@ -10137,10 +10137,10 @@ class get_partitions_ps_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype328, _size325) = iprot.readListBegin()
- for _i329 in xrange(_size325):
- _elem330 = iprot.readString();
- self.part_vals.append(_elem330)
+ (_etype365, _size362) = iprot.readListBegin()
+ for _i366 in xrange(_size362):
+ _elem367 = iprot.readString();
+ self.part_vals.append(_elem367)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -10170,8 +10170,8 @@ class get_partitions_ps_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter331 in self.part_vals:
- oprot.writeString(iter331)
+ for iter368 in self.part_vals:
+ oprot.writeString(iter368)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.max_parts is not None:
@@ -10227,11 +10227,11 @@ class get_partitions_ps_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype335, _size332) = iprot.readListBegin()
- for _i336 in xrange(_size332):
- _elem337 = Partition()
- _elem337.read(iprot)
- self.success.append(_elem337)
+ (_etype372, _size369) = iprot.readListBegin()
+ for _i373 in xrange(_size369):
+ _elem374 = Partition()
+ _elem374.read(iprot)
+ self.success.append(_elem374)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -10260,8 +10260,8 @@ class get_partitions_ps_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter338 in self.success:
- iter338.write(oprot)
+ for iter375 in self.success:
+ iter375.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -10341,10 +10341,10 @@ class get_partitions_ps_with_auth_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype342, _size339) = iprot.readListBegin()
- for _i343 in xrange(_size339):
- _elem344 = iprot.readString();
- self.part_vals.append(_elem344)
+ (_etype379, _size376) = iprot.readListBegin()
+ for _i380 in xrange(_size376):
+ _elem381 = iprot.readString();
+ self.part_vals.append(_elem381)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -10361,10 +10361,10 @@ class get_partitions_ps_with_auth_args:
elif fid == 6:
if ftype == TType.LIST:
self.group_names = []
- (_etype348, _size345) = iprot.readListBegin()
- for _i349 in xrange(_size345):
- _elem350 = iprot.readString();
- self.group_names.append(_elem350)
+ (_etype385, _size382) = iprot.readListBegin()
+ for _i386 in xrange(_size382):
+ _elem387 = iprot.readString();
+ self.group_names.append(_elem387)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -10389,8 +10389,8 @@ class get_partitions_ps_with_auth_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter351 in self.part_vals:
- oprot.writeString(iter351)
+ for iter388 in self.part_vals:
+ oprot.writeString(iter388)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.max_parts is not None:
@@ -10404,8 +10404,8 @@ class get_partitions_ps_with_auth_args:
if self.group_names is not None:
oprot.writeFieldBegin('group_names', TType.LIST, 6)
oprot.writeListBegin(TType.STRING, len(self.group_names))
- for iter352 in self.group_names:
- oprot.writeString(iter352)
+ for iter389 in self.group_names:
+ oprot.writeString(iter389)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -10457,11 +10457,11 @@ class get_partitions_ps_with_auth_result
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype356, _size353) = iprot.readListBegin()
- for _i357 in xrange(_size353):
- _elem358 = Partition()
- _elem358.read(iprot)
- self.success.append(_elem358)
+ (_etype393, _size390) = iprot.readListBegin()
+ for _i394 in xrange(_size390):
+ _elem395 = Partition()
+ _elem395.read(iprot)
+ self.success.append(_elem395)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -10490,8 +10490,8 @@ class get_partitions_ps_with_auth_result
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter359 in self.success:
- iter359.write(oprot)
+ for iter396 in self.success:
+ iter396.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -10565,10 +10565,10 @@ class get_partition_names_ps_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype363, _size360) = iprot.readListBegin()
- for _i364 in xrange(_size360):
- _elem365 = iprot.readString();
- self.part_vals.append(_elem365)
+ (_etype400, _size397) = iprot.readListBegin()
+ for _i401 in xrange(_size397):
+ _elem402 = iprot.readString();
+ self.part_vals.append(_elem402)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -10598,8 +10598,8 @@ class get_partition_names_ps_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter366 in self.part_vals:
- oprot.writeString(iter366)
+ for iter403 in self.part_vals:
+ oprot.writeString(iter403)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.max_parts is not None:
@@ -10655,10 +10655,10 @@ class get_partition_names_ps_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype370, _size367) = iprot.readListBegin()
- for _i371 in xrange(_size367):
- _elem372 = iprot.readString();
- self.success.append(_elem372)
+ (_etype407, _size404) = iprot.readListBegin()
+ for _i408 in xrange(_size404):
+ _elem409 = iprot.readString();
+ self.success.append(_elem409)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -10687,8 +10687,8 @@ class get_partition_names_ps_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter373 in self.success:
- oprot.writeString(iter373)
+ for iter410 in self.success:
+ oprot.writeString(iter410)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -10844,11 +10844,11 @@ class get_partitions_by_filter_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype377, _size374) = iprot.readListBegin()
- for _i378 in xrange(_size374):
- _elem379 = Partition()
- _elem379.read(iprot)
- self.success.append(_elem379)
+ (_etype414, _size411) = iprot.readListBegin()
+ for _i415 in xrange(_size411):
+ _elem416 = Partition()
+ _elem416.read(iprot)
+ self.success.append(_elem416)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -10877,8 +10877,8 @@ class get_partitions_by_filter_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter380 in self.success:
- iter380.write(oprot)
+ for iter417 in self.success:
+ iter417.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -10949,10 +10949,10 @@ class get_partitions_by_names_args:
elif fid == 3:
if ftype == TType.LIST:
self.names = []
- (_etype384, _size381) = iprot.readListBegin()
- for _i385 in xrange(_size381):
- _elem386 = iprot.readString();
- self.names.append(_elem386)
+ (_etype421, _size418) = iprot.readListBegin()
+ for _i422 in xrange(_size418):
+ _elem423 = iprot.readString();
+ self.names.append(_elem423)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -10977,8 +10977,8 @@ class get_partitions_by_names_args:
if self.names is not None:
oprot.writeFieldBegin('names', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.names))
- for iter387 in self.names:
- oprot.writeString(iter387)
+ for iter424 in self.names:
+ oprot.writeString(iter424)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -11030,11 +11030,11 @@ class get_partitions_by_names_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype391, _size388) = iprot.readListBegin()
- for _i392 in xrange(_size388):
- _elem393 = Partition()
- _elem393.read(iprot)
- self.success.append(_elem393)
+ (_etype428, _size425) = iprot.readListBegin()
+ for _i429 in xrange(_size425):
+ _elem430 = Partition()
+ _elem430.read(iprot)
+ self.success.append(_elem430)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -11063,8 +11063,8 @@ class get_partitions_by_names_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter394 in self.success:
- iter394.write(oprot)
+ for iter431 in self.success:
+ iter431.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -11469,10 +11469,10 @@ class rename_partition_args:
elif fid == 3:
if ftype == TType.LIST:
self.part_vals = []
- (_etype398, _size395) = iprot.readListBegin()
- for _i399 in xrange(_size395):
- _elem400 = iprot.readString();
- self.part_vals.append(_elem400)
+ (_etype435, _size432) = iprot.readListBegin()
+ for _i436 in xrange(_size432):
+ _elem437 = iprot.readString();
+ self.part_vals.append(_elem437)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -11503,8 +11503,8 @@ class rename_partition_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.part_vals))
- for iter401 in self.part_vals:
- oprot.writeString(iter401)
+ for iter438 in self.part_vals:
+ oprot.writeString(iter438)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.new_part is not None:
@@ -11835,10 +11835,10 @@ class partition_name_to_vals_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype405, _size402) = iprot.readListBegin()
- for _i406 in xrange(_size402):
- _elem407 = iprot.readString();
- self.success.append(_elem407)
+ (_etype442, _size439) = iprot.readListBegin()
+ for _i443 in xrange(_size439):
+ _elem444 = iprot.readString();
+ self.success.append(_elem444)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -11861,8 +11861,8 @@ class partition_name_to_vals_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter408 in self.success:
- oprot.writeString(iter408)
+ for iter445 in self.success:
+ oprot.writeString(iter445)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -11975,11 +11975,11 @@ class partition_name_to_spec_result:
if fid == 0:
if ftype == TType.MAP:
self.success = {}
- (_ktype410, _vtype411, _size409 ) = iprot.readMapBegin()
- for _i413 in xrange(_size409):
- _key414 = iprot.readString();
- _val415 = iprot.readString();
- self.success[_key414] = _val415
+ (_ktype447, _vtype448, _size446 ) = iprot.readMapBegin()
+ for _i450 in xrange(_size446):
+ _key451 = iprot.readString();
+ _val452 = iprot.readString();
+ self.success[_key451] = _val452
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -12002,9 +12002,9 @@ class partition_name_to_spec_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.MAP, 0)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.success))
- for kiter416,viter417 in self.success.items():
- oprot.writeString(kiter416)
- oprot.writeString(viter417)
+ for kiter453,viter454 in self.success.items():
+ oprot.writeString(kiter453)
+ oprot.writeString(viter454)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -12074,11 +12074,11 @@ class markPartitionForEvent_args:
elif fid == 3:
if ftype == TType.MAP:
self.part_vals = {}
- (_ktype419, _vtype420, _size418 ) = iprot.readMapBegin()
- for _i422 in xrange(_size418):
- _key423 = iprot.readString();
- _val424 = iprot.readString();
- self.part_vals[_key423] = _val424
+ (_ktype456, _vtype457, _size455 ) = iprot.readMapBegin()
+ for _i459 in xrange(_size455):
+ _key460 = iprot.readString();
+ _val461 = iprot.readString();
+ self.part_vals[_key460] = _val461
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -12108,9 +12108,9 @@ class markPartitionForEvent_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.MAP, 3)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.part_vals))
- for kiter425,viter426 in self.part_vals.items():
- oprot.writeString(kiter425)
- oprot.writeString(viter426)
+ for kiter462,viter463 in self.part_vals.items():
+ oprot.writeString(kiter462)
+ oprot.writeString(viter463)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.eventType is not None:
@@ -12306,11 +12306,11 @@ class isPartitionMarkedForEvent_args:
elif fid == 3:
if ftype == TType.MAP:
self.part_vals = {}
- (_ktype428, _vtype429, _size427 ) = iprot.readMapBegin()
- for _i431 in xrange(_size427):
- _key432 = iprot.readString();
- _val433 = iprot.readString();
- self.part_vals[_key432] = _val433
+ (_ktype465, _vtype466, _size464 ) = iprot.readMapBegin()
+ for _i468 in xrange(_size464):
+ _key469 = iprot.readString();
+ _val470 = iprot.readString();
+ self.part_vals[_key469] = _val470
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -12340,9 +12340,9 @@ class isPartitionMarkedForEvent_args:
if self.part_vals is not None:
oprot.writeFieldBegin('part_vals', TType.MAP, 3)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.part_vals))
- for kiter434,viter435 in self.part_vals.items():
- oprot.writeString(kiter434)
- oprot.writeString(viter435)
+ for kiter471,viter472 in self.part_vals.items():
+ oprot.writeString(kiter471)
+ oprot.writeString(viter472)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.eventType is not None:
@@ -13314,11 +13314,11 @@ class get_indexes_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype439, _size436) = iprot.readListBegin()
- for _i440 in xrange(_size436):
- _elem441 = Index()
- _elem441.read(iprot)
- self.success.append(_elem441)
+ (_etype476, _size473) = iprot.readListBegin()
+ for _i477 in xrange(_size473):
+ _elem478 = Index()
+ _elem478.read(iprot)
+ self.success.append(_elem478)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -13347,8 +13347,8 @@ class get_indexes_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter442 in self.success:
- iter442.write(oprot)
+ for iter479 in self.success:
+ iter479.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -13489,10 +13489,10 @@ class get_index_names_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype446, _size443) = iprot.readListBegin()
- for _i447 in xrange(_size443):
- _elem448 = iprot.readString();
- self.success.append(_elem448)
+ (_etype483, _size480) = iprot.readListBegin()
+ for _i484 in xrange(_size480):
+ _elem485 = iprot.readString();
+ self.success.append(_elem485)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -13515,8 +13515,8 @@ class get_index_names_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter449 in self.success:
- oprot.writeString(iter449)
+ for iter486 in self.success:
+ oprot.writeString(iter486)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o2 is not None:
@@ -13876,10 +13876,10 @@ class get_role_names_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype453, _size450) = iprot.readListBegin()
- for _i454 in xrange(_size450):
- _elem455 = iprot.readString();
- self.success.append(_elem455)
+ (_etype490, _size487) = iprot.readListBegin()
+ for _i491 in xrange(_size487):
+ _elem492 = iprot.readString();
+ self.success.append(_elem492)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -13902,8 +13902,8 @@ class get_role_names_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter456 in self.success:
- oprot.writeString(iter456)
+ for iter493 in self.success:
+ oprot.writeString(iter493)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -14376,11 +14376,11 @@ class list_roles_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype460, _size457) = iprot.readListBegin()
- for _i461 in xrange(_size457):
- _elem462 = Role()
- _elem462.read(iprot)
- self.success.append(_elem462)
+ (_etype497, _size494) = iprot.readListBegin()
+ for _i498 in xrange(_size494):
+ _elem499 = Role()
+ _elem499.read(iprot)
+ self.success.append(_elem499)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -14403,8 +14403,8 @@ class list_roles_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter463 in self.success:
- iter463.write(oprot)
+ for iter500 in self.success:
+ iter500.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -14472,10 +14472,10 @@ class get_privilege_set_args:
elif fid == 3:
if ftype == TType.LIST:
self.group_names = []
- (_etype467, _size464) = iprot.readListBegin()
- for _i468 in xrange(_size464):
- _elem469 = iprot.readString();
- self.group_names.append(_elem469)
+ (_etype504, _size501) = iprot.readListBegin()
+ for _i505 in xrange(_size501):
+ _elem506 = iprot.readString();
+ self.group_names.append(_elem506)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -14500,8 +14500,8 @@ class get_privilege_set_args:
if self.group_names is not None:
oprot.writeFieldBegin('group_names', TType.LIST, 3)
oprot.writeListBegin(TType.STRING, len(self.group_names))
- for iter470 in self.group_names:
- oprot.writeString(iter470)
+ for iter507 in self.group_names:
+ oprot.writeString(iter507)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -14708,11 +14708,11 @@ class list_privileges_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype474, _size471) = iprot.readListBegin()
- for _i475 in xrange(_size471):
- _elem476 = HiveObjectPrivilege()
- _elem476.read(iprot)
- self.success.append(_elem476)
+ (_etype511, _size508) = iprot.readListBegin()
+ for _i512 in xrange(_size508):
+ _elem513 = HiveObjectPrivilege()
+ _elem513.read(iprot)
+ self.success.append(_elem513)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -14735,8 +14735,8 @@ class list_privileges_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRUCT, len(self.success))
- for iter477 in self.success:
- iter477.write(oprot)
+ for iter514 in self.success:
+ iter514.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
@@ -15061,10 +15061,10 @@ class set_ugi_args:
elif fid == 2:
if ftype == TType.LIST:
self.group_names = []
- (_etype481, _size478) = iprot.readListBegin()
- for _i482 in xrange(_size478):
- _elem483 = iprot.readString();
- self.group_names.append(_elem483)
+ (_etype518, _size515) = iprot.readListBegin()
+ for _i519 in xrange(_size515):
+ _elem520 = iprot.readString();
+ self.group_names.append(_elem520)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -15085,8 +15085,8 @@ class set_ugi_args:
if self.group_names is not None:
oprot.writeFieldBegin('group_names', TType.LIST, 2)
oprot.writeListBegin(TType.STRING, len(self.group_names))
- for iter484 in self.group_names:
- oprot.writeString(iter484)
+ for iter521 in self.group_names:
+ oprot.writeString(iter521)
oprot.writeListEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -15135,10 +15135,10 @@ class set_ugi_result:
if fid == 0:
if ftype == TType.LIST:
self.success = []
- (_etype488, _size485) = iprot.readListBegin()
- for _i489 in xrange(_size485):
- _elem490 = iprot.readString();
- self.success.append(_elem490)
+ (_etype525, _size522) = iprot.readListBegin()
+ for _i526 in xrange(_size522):
+ _elem527 = iprot.readString();
+ self.success.append(_elem527)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -15161,8 +15161,8 @@ class set_ugi_result:
if self.success is not None:
oprot.writeFieldBegin('success', TType.LIST, 0)
oprot.writeListBegin(TType.STRING, len(self.success))
- for iter491 in self.success:
- oprot.writeString(iter491)
+ for iter528 in self.success:
+ oprot.writeString(iter528)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.o1 is not None:
Modified: hive/trunk/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py?rev=1377187&r1=1377186&r2=1377187&view=diff
==============================================================================
--- hive/trunk/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py (original)
+++ hive/trunk/metastore/src/gen/thrift/gen-py/hive_metastore/ttypes.py Sat Aug 25 02:44:22 2012
@@ -1230,6 +1230,132 @@ class Order:
def __ne__(self, other):
return not (self == other)
+class SkewedInfo:
+ """
+ Attributes:
+ - skewedColNames
+ - skewedColValues
+ - skewedColValueLocationMaps
+ """
+
+ thrift_spec = (
+ 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
+ )
+
+ def __init__(self, skewedColNames=None, skewedColValues=None, skewedColValueLocationMaps=None,):
+ self.skewedColNames = skewedColNames
+ self.skewedColValues = skewedColValues
+ self.skewedColValueLocationMaps = skewedColValueLocationMaps
+
+ 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.skewedColNames = []
+ (_etype90, _size87) = iprot.readListBegin()
+ for _i91 in xrange(_size87):
+ _elem92 = iprot.readString();
+ self.skewedColNames.append(_elem92)
+ 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)
+ iprot.readListEnd()
+ self.skewedColValues.append(_elem98)
+ 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
+ iprot.readMapEnd()
+ 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('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)
+ 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)
+ 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.writeMapEnd()
+ 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 StorageDescriptor:
"""
Attributes:
@@ -1243,6 +1369,7 @@ class StorageDescriptor:
- bucketCols
- sortCols
- parameters
+ - skewedInfo
"""
thrift_spec = (
@@ -1257,9 +1384,10 @@ class StorageDescriptor:
(8, TType.LIST, 'bucketCols', (TType.STRING,None), None, ), # 8
(9, TType.LIST, 'sortCols', (TType.STRUCT,(Order, Order.thrift_spec)), None, ), # 9
(10, TType.MAP, 'parameters', (TType.STRING,None,TType.STRING,None), None, ), # 10
+ (11, TType.STRUCT, 'skewedInfo', (SkewedInfo, SkewedInfo.thrift_spec), None, ), # 11
)
- def __init__(self, cols=None, location=None, inputFormat=None, outputFormat=None, compressed=None, numBuckets=None, serdeInfo=None, bucketCols=None, sortCols=None, parameters=None,):
+ def __init__(self, cols=None, location=None, inputFormat=None, outputFormat=None, compressed=None, numBuckets=None, serdeInfo=None, bucketCols=None, sortCols=None, parameters=None, skewedInfo=None,):
self.cols = cols
self.location = location
self.inputFormat = inputFormat
@@ -1270,6 +1398,7 @@ class StorageDescriptor:
self.bucketCols = bucketCols
self.sortCols = sortCols
self.parameters = parameters
+ self.skewedInfo = skewedInfo
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:
@@ -1283,11 +1412,11 @@ class StorageDescriptor:
if fid == 1:
if ftype == TType.LIST:
self.cols = []
- (_etype90, _size87) = iprot.readListBegin()
- for _i91 in xrange(_size87):
- _elem92 = FieldSchema()
- _elem92.read(iprot)
- self.cols.append(_elem92)
+ (_etype127, _size124) = iprot.readListBegin()
+ for _i128 in xrange(_size124):
+ _elem129 = FieldSchema()
+ _elem129.read(iprot)
+ self.cols.append(_elem129)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -1325,35 +1454,41 @@ class StorageDescriptor:
elif fid == 8:
if ftype == TType.LIST:
self.bucketCols = []
- (_etype96, _size93) = iprot.readListBegin()
- for _i97 in xrange(_size93):
- _elem98 = iprot.readString();
- self.bucketCols.append(_elem98)
+ (_etype133, _size130) = iprot.readListBegin()
+ for _i134 in xrange(_size130):
+ _elem135 = iprot.readString();
+ self.bucketCols.append(_elem135)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 9:
if ftype == TType.LIST:
self.sortCols = []
- (_etype102, _size99) = iprot.readListBegin()
- for _i103 in xrange(_size99):
- _elem104 = Order()
- _elem104.read(iprot)
- self.sortCols.append(_elem104)
+ (_etype139, _size136) = iprot.readListBegin()
+ for _i140 in xrange(_size136):
+ _elem141 = Order()
+ _elem141.read(iprot)
+ self.sortCols.append(_elem141)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 10:
if ftype == TType.MAP:
self.parameters = {}
- (_ktype106, _vtype107, _size105 ) = iprot.readMapBegin()
- for _i109 in xrange(_size105):
- _key110 = iprot.readString();
- _val111 = iprot.readString();
- self.parameters[_key110] = _val111
+ (_ktype143, _vtype144, _size142 ) = iprot.readMapBegin()
+ for _i146 in xrange(_size142):
+ _key147 = iprot.readString();
+ _val148 = iprot.readString();
+ self.parameters[_key147] = _val148
iprot.readMapEnd()
else:
iprot.skip(ftype)
+ elif fid == 11:
+ if ftype == TType.STRUCT:
+ self.skewedInfo = SkewedInfo()
+ self.skewedInfo.read(iprot)
+ else:
+ iprot.skip(ftype)
else:
iprot.skip(ftype)
iprot.readFieldEnd()
@@ -1367,8 +1502,8 @@ class StorageDescriptor:
if self.cols is not None:
oprot.writeFieldBegin('cols', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.cols))
- for iter112 in self.cols:
- iter112.write(oprot)
+ for iter149 in self.cols:
+ iter149.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.location is not None:
@@ -1398,25 +1533,29 @@ class StorageDescriptor:
if self.bucketCols is not None:
oprot.writeFieldBegin('bucketCols', TType.LIST, 8)
oprot.writeListBegin(TType.STRING, len(self.bucketCols))
- for iter113 in self.bucketCols:
- oprot.writeString(iter113)
+ for iter150 in self.bucketCols:
+ oprot.writeString(iter150)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.sortCols is not None:
oprot.writeFieldBegin('sortCols', TType.LIST, 9)
oprot.writeListBegin(TType.STRUCT, len(self.sortCols))
- for iter114 in self.sortCols:
- iter114.write(oprot)
+ for iter151 in self.sortCols:
+ iter151.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.parameters is not None:
oprot.writeFieldBegin('parameters', TType.MAP, 10)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.parameters))
- for kiter115,viter116 in self.parameters.items():
- oprot.writeString(kiter115)
- oprot.writeString(viter116)
+ for kiter152,viter153 in self.parameters.items():
+ oprot.writeString(kiter152)
+ oprot.writeString(viter153)
oprot.writeMapEnd()
oprot.writeFieldEnd()
+ if self.skewedInfo is not None:
+ oprot.writeFieldBegin('skewedInfo', TType.STRUCT, 11)
+ self.skewedInfo.write(oprot)
+ oprot.writeFieldEnd()
oprot.writeFieldStop()
oprot.writeStructEnd()
@@ -1533,22 +1672,22 @@ class Table:
elif fid == 8:
if ftype == TType.LIST:
self.partitionKeys = []
- (_etype120, _size117) = iprot.readListBegin()
- for _i121 in xrange(_size117):
- _elem122 = FieldSchema()
- _elem122.read(iprot)
- self.partitionKeys.append(_elem122)
+ (_etype157, _size154) = iprot.readListBegin()
+ for _i158 in xrange(_size154):
+ _elem159 = FieldSchema()
+ _elem159.read(iprot)
+ self.partitionKeys.append(_elem159)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 9:
if ftype == TType.MAP:
self.parameters = {}
- (_ktype124, _vtype125, _size123 ) = iprot.readMapBegin()
- for _i127 in xrange(_size123):
- _key128 = iprot.readString();
- _val129 = iprot.readString();
- self.parameters[_key128] = _val129
+ (_ktype161, _vtype162, _size160 ) = iprot.readMapBegin()
+ for _i164 in xrange(_size160):
+ _key165 = iprot.readString();
+ _val166 = iprot.readString();
+ self.parameters[_key165] = _val166
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -1614,16 +1753,16 @@ class Table:
if self.partitionKeys is not None:
oprot.writeFieldBegin('partitionKeys', TType.LIST, 8)
oprot.writeListBegin(TType.STRUCT, len(self.partitionKeys))
- for iter130 in self.partitionKeys:
- iter130.write(oprot)
+ for iter167 in self.partitionKeys:
+ iter167.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.parameters is not None:
oprot.writeFieldBegin('parameters', TType.MAP, 9)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.parameters))
- for kiter131,viter132 in self.parameters.items():
- oprot.writeString(kiter131)
- oprot.writeString(viter132)
+ for kiter168,viter169 in self.parameters.items():
+ oprot.writeString(kiter168)
+ oprot.writeString(viter169)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.viewOriginalText is not None:
@@ -1707,10 +1846,10 @@ class Partition:
if fid == 1:
if ftype == TType.LIST:
self.values = []
- (_etype136, _size133) = iprot.readListBegin()
- for _i137 in xrange(_size133):
- _elem138 = iprot.readString();
- self.values.append(_elem138)
+ (_etype173, _size170) = iprot.readListBegin()
+ for _i174 in xrange(_size170):
+ _elem175 = iprot.readString();
+ self.values.append(_elem175)
iprot.readListEnd()
else:
iprot.skip(ftype)
@@ -1743,11 +1882,11 @@ class Partition:
elif fid == 7:
if ftype == TType.MAP:
self.parameters = {}
- (_ktype140, _vtype141, _size139 ) = iprot.readMapBegin()
- for _i143 in xrange(_size139):
- _key144 = iprot.readString();
- _val145 = iprot.readString();
- self.parameters[_key144] = _val145
+ (_ktype177, _vtype178, _size176 ) = iprot.readMapBegin()
+ for _i180 in xrange(_size176):
+ _key181 = iprot.readString();
+ _val182 = iprot.readString();
+ self.parameters[_key181] = _val182
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -1770,8 +1909,8 @@ class Partition:
if self.values is not None:
oprot.writeFieldBegin('values', TType.LIST, 1)
oprot.writeListBegin(TType.STRING, len(self.values))
- for iter146 in self.values:
- oprot.writeString(iter146)
+ for iter183 in self.values:
+ oprot.writeString(iter183)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.dbName is not None:
@@ -1797,9 +1936,9 @@ class Partition:
if self.parameters is not None:
oprot.writeFieldBegin('parameters', TType.MAP, 7)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.parameters))
- for kiter147,viter148 in self.parameters.items():
- oprot.writeString(kiter147)
- oprot.writeString(viter148)
+ for kiter184,viter185 in self.parameters.items():
+ oprot.writeString(kiter184)
+ oprot.writeString(viter185)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.privileges is not None:
@@ -1918,11 +2057,11 @@ class Index:
elif fid == 9:
if ftype == TType.MAP:
self.parameters = {}
- (_ktype150, _vtype151, _size149 ) = iprot.readMapBegin()
- for _i153 in xrange(_size149):
- _key154 = iprot.readString();
- _val155 = iprot.readString();
- self.parameters[_key154] = _val155
+ (_ktype187, _vtype188, _size186 ) = iprot.readMapBegin()
+ for _i190 in xrange(_size186):
+ _key191 = iprot.readString();
+ _val192 = iprot.readString();
+ self.parameters[_key191] = _val192
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -1976,9 +2115,9 @@ class Index:
if self.parameters is not None:
oprot.writeFieldBegin('parameters', TType.MAP, 9)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.parameters))
- for kiter156,viter157 in self.parameters.items():
- oprot.writeString(kiter156)
- oprot.writeString(viter157)
+ for kiter193,viter194 in self.parameters.items():
+ oprot.writeString(kiter193)
+ oprot.writeString(viter194)
oprot.writeMapEnd()
oprot.writeFieldEnd()
if self.deferredRebuild is not None:
@@ -2032,22 +2171,22 @@ class Schema:
if fid == 1:
if ftype == TType.LIST:
self.fieldSchemas = []
- (_etype161, _size158) = iprot.readListBegin()
- for _i162 in xrange(_size158):
- _elem163 = FieldSchema()
- _elem163.read(iprot)
- self.fieldSchemas.append(_elem163)
+ (_etype198, _size195) = iprot.readListBegin()
+ for _i199 in xrange(_size195):
+ _elem200 = FieldSchema()
+ _elem200.read(iprot)
+ self.fieldSchemas.append(_elem200)
iprot.readListEnd()
else:
iprot.skip(ftype)
elif fid == 2:
if ftype == TType.MAP:
self.properties = {}
- (_ktype165, _vtype166, _size164 ) = iprot.readMapBegin()
- for _i168 in xrange(_size164):
- _key169 = iprot.readString();
- _val170 = iprot.readString();
- self.properties[_key169] = _val170
+ (_ktype202, _vtype203, _size201 ) = iprot.readMapBegin()
+ for _i205 in xrange(_size201):
+ _key206 = iprot.readString();
+ _val207 = iprot.readString();
+ self.properties[_key206] = _val207
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -2064,16 +2203,16 @@ class Schema:
if self.fieldSchemas is not None:
oprot.writeFieldBegin('fieldSchemas', TType.LIST, 1)
oprot.writeListBegin(TType.STRUCT, len(self.fieldSchemas))
- for iter171 in self.fieldSchemas:
- iter171.write(oprot)
+ for iter208 in self.fieldSchemas:
+ iter208.write(oprot)
oprot.writeListEnd()
oprot.writeFieldEnd()
if self.properties is not None:
oprot.writeFieldBegin('properties', TType.MAP, 2)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.properties))
- for kiter172,viter173 in self.properties.items():
- oprot.writeString(kiter172)
- oprot.writeString(viter173)
+ for kiter209,viter210 in self.properties.items():
+ oprot.writeString(kiter209)
+ oprot.writeString(viter210)
oprot.writeMapEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
@@ -2120,11 +2259,11 @@ class EnvironmentContext:
if fid == 1:
if ftype == TType.MAP:
self.properties = {}
- (_ktype175, _vtype176, _size174 ) = iprot.readMapBegin()
- for _i178 in xrange(_size174):
- _key179 = iprot.readString();
- _val180 = iprot.readString();
- self.properties[_key179] = _val180
+ (_ktype212, _vtype213, _size211 ) = iprot.readMapBegin()
+ for _i215 in xrange(_size211):
+ _key216 = iprot.readString();
+ _val217 = iprot.readString();
+ self.properties[_key216] = _val217
iprot.readMapEnd()
else:
iprot.skip(ftype)
@@ -2141,9 +2280,9 @@ class EnvironmentContext:
if self.properties is not None:
oprot.writeFieldBegin('properties', TType.MAP, 1)
oprot.writeMapBegin(TType.STRING, TType.STRING, len(self.properties))
- for kiter181,viter182 in self.properties.items():
- oprot.writeString(kiter181)
- oprot.writeString(viter182)
+ for kiter218,viter219 in self.properties.items():
+ oprot.writeString(kiter218)
+ oprot.writeString(viter219)
oprot.writeMapEnd()
oprot.writeFieldEnd()
oprot.writeFieldStop()
Modified: hive/trunk/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb?rev=1377187&r1=1377186&r2=1377187&view=diff
==============================================================================
--- hive/trunk/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb (original)
+++ hive/trunk/metastore/src/gen/thrift/gen-rb/hive_metastore_types.rb Sat Aug 25 02:44:22 2012
@@ -288,6 +288,26 @@ class Order
::Thrift::Struct.generate_accessors self
end
+class SkewedInfo
+ include ::Thrift::Struct, ::Thrift::Struct_Union
+ SKEWEDCOLNAMES = 1
+ SKEWEDCOLVALUES = 2
+ SKEWEDCOLVALUELOCATIONMAPS = 3
+
+ 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}}
+ }
+
+ def struct_fields; FIELDS; end
+
+ def validate
+ end
+
+ ::Thrift::Struct.generate_accessors self
+end
+
class StorageDescriptor
include ::Thrift::Struct, ::Thrift::Struct_Union
COLS = 1
@@ -300,6 +320,7 @@ class StorageDescriptor
BUCKETCOLS = 8
SORTCOLS = 9
PARAMETERS = 10
+ SKEWEDINFO = 11
FIELDS = {
COLS => {:type => ::Thrift::Types::LIST, :name => 'cols', :element => {:type => ::Thrift::Types::STRUCT, :class => FieldSchema}},
@@ -311,7 +332,8 @@ class StorageDescriptor
SERDEINFO => {:type => ::Thrift::Types::STRUCT, :name => 'serdeInfo', :class => SerDeInfo},
BUCKETCOLS => {:type => ::Thrift::Types::LIST, :name => 'bucketCols', :element => {:type => ::Thrift::Types::STRING}},
SORTCOLS => {:type => ::Thrift::Types::LIST, :name => 'sortCols', :element => {:type => ::Thrift::Types::STRUCT, :class => Order}},
- PARAMETERS => {:type => ::Thrift::Types::MAP, :name => 'parameters', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}}
+ PARAMETERS => {:type => ::Thrift::Types::MAP, :name => 'parameters', :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}},
+ SKEWEDINFO => {:type => ::Thrift::Types::STRUCT, :name => 'skewedInfo', :class => SkewedInfo, :optional => true}
}
def struct_fields; FIELDS; end
Modified: hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java?rev=1377187&r1=1377186&r2=1377187&view=diff
==============================================================================
--- hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java (original)
+++ hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/HiveMetaStore.java Sat Aug 25 02:44:22 2012
@@ -868,7 +868,14 @@ public class HiveMetaStore extends Thrif
if (!MetaStoreUtils.validateName(tbl.getTableName())
|| !MetaStoreUtils.validateColNames(tbl.getSd().getCols())
|| (tbl.getPartitionKeys() != null && !MetaStoreUtils
- .validateColNames(tbl.getPartitionKeys()))) {
+ .validateColNames(tbl.getPartitionKeys()))
+ || !MetaStoreUtils.validateSkewedColNames(
+ (null == tbl.getSd().getSkewedInfo()) ?
+ null : tbl.getSd().getSkewedInfo().getSkewedColNames())
+ || !MetaStoreUtils.validateSkewedColNamesSubsetCol(
+ (null == tbl.getSd().getSkewedInfo()) ?
+ null : tbl.getSd().getSkewedInfo().getSkewedColNames(),
+ tbl.getSd().getCols())) {
throw new InvalidObjectException(tbl.getTableName()
+ " is not a valid object name");
}
Modified: hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java?rev=1377187&r1=1377186&r2=1377187&view=diff
==============================================================================
--- hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java (original)
+++ hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/MetaStoreUtils.java Sat Aug 25 02:44:22 2012
@@ -322,6 +322,34 @@ public class MetaStoreUtils {
return true;
}
+ public static boolean validateSkewedColNames(List<String> cols) {
+ if (null == cols) {
+ return true;
+ }
+ for (String col : cols) {
+ if (!validateName(col)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public static boolean validateSkewedColNamesSubsetCol(List<String> skewedColNames,
+ List<FieldSchema> cols) {
+ if (null == skewedColNames) {
+ return true;
+ }
+ List<String> colNames = new ArrayList<String>();
+ for (FieldSchema fieldSchema : cols) {
+ colNames.add(fieldSchema.getName());
+ }
+ // make a copy
+ List<String> copySkewedColNames = new ArrayList<String>(skewedColNames);
+ // remove valid columns
+ copySkewedColNames.removeAll(colNames);
+ return (copySkewedColNames.size() > 0) ? false : true;
+ }
+
public static String getListType(String t) {
return "array<" + t + ">";
}
Modified: hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java?rev=1377187&r1=1377186&r2=1377187&view=diff
==============================================================================
--- hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java (original)
+++ hive/trunk/metastore/src/java/org/apache/hadoop/hive/metastore/ObjectStore.java Sat Aug 25 02:44:22 2012
@@ -73,6 +73,7 @@ import org.apache.hadoop.hive.metastore.
import org.apache.hadoop.hive.metastore.api.PrivilegeGrantInfo;
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.StorageDescriptor;
import org.apache.hadoop.hive.metastore.api.Table;
import org.apache.hadoop.hive.metastore.api.Type;
@@ -94,6 +95,7 @@ import org.apache.hadoop.hive.metastore.
import org.apache.hadoop.hive.metastore.model.MRoleMap;
import org.apache.hadoop.hive.metastore.model.MSerDeInfo;
import org.apache.hadoop.hive.metastore.model.MStorageDescriptor;
+import org.apache.hadoop.hive.metastore.model.MStringList;
import org.apache.hadoop.hive.metastore.model.MTable;
import org.apache.hadoop.hive.metastore.model.MTableColumnPrivilege;
import org.apache.hadoop.hive.metastore.model.MTablePrivilege;
@@ -974,11 +976,17 @@ public class ObjectStore implements RawS
return null;
}
List<MFieldSchema> mFieldSchemas = msd.getCD() == null ? null : msd.getCD().getCols();
- return new StorageDescriptor(noFS ? null: convertToFieldSchemas(mFieldSchemas),
+
+ StorageDescriptor sd = new StorageDescriptor(noFS ? null : convertToFieldSchemas(mFieldSchemas),
msd.getLocation(), msd.getInputFormat(), msd.getOutputFormat(), msd
.isCompressed(), msd.getNumBuckets(), converToSerDeInfo(msd
.getSerDeInfo()), msd.getBucketCols(), convertToOrders(msd
.getSortCols()), msd.getParameters());
+ SkewedInfo skewedInfo = new SkewedInfo(msd.getSkewedColNames(),
+ convertToSkewedValues(msd.getSkewedColValues()),
+ covertToSkewedMap(msd.getSkewedColValueLocationMaps()));
+ sd.setSkewedInfo(skewedInfo);
+ return sd;
}
private StorageDescriptor convertToStorageDescriptor(MStorageDescriptor msd)
@@ -987,6 +995,70 @@ public class ObjectStore implements RawS
}
/**
+ * Convert a list of MStringList to a list of list string
+ *
+ * @param mLists
+ * @return
+ */
+ private List<List<String>> convertToSkewedValues(List<MStringList> mLists) {
+ List<List<String>> lists = null;
+ if (mLists != null) {
+ lists = new ArrayList<List<String>>(mLists.size());
+ for (MStringList element : mLists) {
+ lists.add(new ArrayList<String>(element.getInternalList()));
+ }
+ }
+ return lists;
+ }
+
+ private List<MStringList> convertToMStringLists(List<List<String>> mLists) {
+ List<MStringList> lists = null ;
+ if (null != mLists) {
+ lists = new ArrayList<MStringList>();
+ for (List<String> mList : mLists) {
+ lists.add(new MStringList(mList));
+ }
+ }
+ return lists;
+ }
+
+ /**
+ * Convert a MStringList Map to a Map
+ * @param mMap
+ * @return
+ */
+ private Map<List<String>, String> covertToSkewedMap(Map<MStringList, String> mMap) {
+ Map<List<String>, String> map = null;
+ if (mMap != null) {
+ map = new HashMap<List<String>, String>(mMap.size());
+ Set<MStringList> keys = mMap.keySet();
+ for (MStringList key : keys) {
+ map.put(new ArrayList<String>(key.getInternalList()), mMap.get(key));
+ }
+ }
+ return map;
+ }
+
+ /**
+ * Covert a Map to a MStringList Map
+ * @param mMap
+ * @return
+ */
+ private Map<MStringList, String> covertToMapMStringList(Map<List<String>, 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));
+ }
+ }
+ return map;
+ }
+
+
+
+ /**
* Converts a storage descriptor to a db-backed storage descriptor. Creates a
* new db-backed column descriptor object for this SD.
* @param sd the storage descriptor to wrap in a db-backed object
@@ -1020,7 +1092,13 @@ public class ObjectStore implements RawS
.getLocation(), sd.getInputFormat(), sd.getOutputFormat(), sd
.isCompressed(), sd.getNumBuckets(), converToMSerDeInfo(sd
.getSerdeInfo()), sd.getBucketCols(),
- convertToMOrders(sd.getSortCols()), sd.getParameters());
+ convertToMOrders(sd.getSortCols()), sd.getParameters(),
+ (null == sd.getSkewedInfo()) ? null
+ : sd.getSkewedInfo().getSkewedColNames(),
+ convertToMStringLists((null == sd.getSkewedInfo()) ? null : sd.getSkewedInfo()
+ .getSkewedColValues()),
+ covertToMapMStringList((null == sd.getSkewedInfo()) ? null : sd.getSkewedInfo()
+ .getSkewedColValueLocationMaps()));
}
public boolean addPartition(Partition part) throws InvalidObjectException,
@@ -1958,6 +2036,9 @@ public class ObjectStore implements RawS
oldSd.getSerDeInfo().setSerializationLib(
newSd.getSerDeInfo().getSerializationLib());
oldSd.getSerDeInfo().setParameters(newSd.getSerDeInfo().getParameters());
+ oldSd.setSkewedColNames(newSd.getSkewedColNames());
+ oldSd.setSkewedColValues(newSd.getSkewedColValues());
+ oldSd.setSkewedColValueLocationMaps(newSd.getSkewedColValueLocationMaps());
}
/**
Modified: hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MStorageDescriptor.java
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MStorageDescriptor.java?rev=1377187&r1=1377186&r2=1377187&view=diff
==============================================================================
--- hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MStorageDescriptor.java (original)
+++ hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MStorageDescriptor.java Sat Aug 25 02:44:22 2012
@@ -32,6 +32,9 @@ public class MStorageDescriptor {
private List<String> bucketCols;
private List<MOrder> sortCols;
private Map<String, String> parameters;
+ private List<String> skewedColNames;
+ private List<MStringList> skewedColValues;
+ private Map<MStringList, String> skewedColValueLocationMaps;
public MStorageDescriptor() {}
@@ -50,7 +53,9 @@ public class MStorageDescriptor {
*/
public MStorageDescriptor(MColumnDescriptor cd, String location, String inputFormat,
String outputFormat, boolean isCompressed, int numBuckets, MSerDeInfo serDeInfo,
- List<String> bucketCols, List<MOrder> sortOrder, Map<String, String> parameters) {
+ List<String> bucketCols, List<MOrder> sortOrder, Map<String, String> parameters,
+ List<String> skewedColNames, List<MStringList> skewedColValues,
+ Map<MStringList, String> skewedColValueLocationMaps) {
this.cd = cd;
this.location = location;
this.inputFormat = inputFormat;
@@ -61,6 +66,9 @@ public class MStorageDescriptor {
this.bucketCols = bucketCols;
this.sortCols = sortOrder;
this.parameters = parameters;
+ this.skewedColNames = skewedColNames;
+ this.skewedColValues = skewedColValues;
+ this.skewedColValueLocationMaps = skewedColValueLocationMaps;
}
@@ -205,4 +213,47 @@ public class MStorageDescriptor {
public List<MOrder> getSortCols() {
return sortCols;
}
+
+ /**
+ * @return the skewedColNames
+ */
+ public List<String> getSkewedColNames() {
+ return skewedColNames;
+ }
+
+ /**
+ * @param skewedColNames the skewedColNames to set
+ */
+ public void setSkewedColNames(List<String> skewedColNames) {
+ this.skewedColNames = skewedColNames;
+ }
+
+ /**
+ * @return the skewedColValues
+ */
+ public List<MStringList> getSkewedColValues() {
+ return skewedColValues;
+ }
+
+ /**
+ * @param skewedColValues the skewedColValues to set
+ */
+ public void setSkewedColValues(List<MStringList> skewedColValues) {
+ this.skewedColValues = skewedColValues;
+ }
+
+ /**
+ * @return the skewedColValueLocationMaps
+ */
+ public Map<MStringList, String> getSkewedColValueLocationMaps() {
+ return skewedColValueLocationMaps;
+ }
+
+ /**
+ * @param skewedColValueLocationMaps the skewedColValueLocationMaps to set
+ */
+ public void setSkewedColValueLocationMaps(Map<MStringList, String> listBucketColValuesMapping) {
+ this.skewedColValueLocationMaps = listBucketColValuesMapping;
+ }
+
}
Added: hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MStringList.java
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MStringList.java?rev=1377187&view=auto
==============================================================================
--- hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MStringList.java (added)
+++ hive/trunk/metastore/src/model/org/apache/hadoop/hive/metastore/model/MStringList.java Sat Aug 25 02:44:22 2012
@@ -0,0 +1,62 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.hive.metastore.model;
+
+import java.util.List;
+
+/**
+ *
+ * It represents data structure of string list.
+ *
+ * workaround JDO limitation: no support for collection of collection.
+ *
+ */
+public class MStringList {
+ private List<String> internalList;
+
+ /**
+ *
+ * @param list
+ */
+ public MStringList(List<String> list) {
+ this.internalList = list;
+ }
+
+ /**
+ * @return the internalList
+ */
+ public List<String> getInternalList() {
+ return internalList;
+ }
+
+ /**
+ * @param internalList the internalList to set
+ */
+ public void setInternalList(List<String> internalList) {
+ this.internalList = internalList;
+ }
+
+ /* (non-Javadoc)
+ * @see java.lang.Object#toString()
+ */
+ @Override
+ public String toString() {
+ return internalList.toString();
+ }
+
+}
Modified: hive/trunk/metastore/src/model/package.jdo
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/model/package.jdo?rev=1377187&r1=1377186&r2=1377187&view=diff
==============================================================================
--- hive/trunk/metastore/src/model/package.jdo (original)
+++ hive/trunk/metastore/src/model/package.jdo Sat Aug 25 02:44:22 2012
@@ -233,6 +233,19 @@
</field>
</class>
+ <class name="MStringList" identity-type="datastore" table="Skewed_STRING_LIST" detachable="true">
+ <datastore-identity>
+ <column name="STRING_LIST_ID"/>
+ </datastore-identity>
+ <field name="internalList" table="Skewed_STRING_LIST_VALUES">
+ <collection element-type="java.lang.String"/>
+ <join>
+ <column name="STRING_LIST_ID"/>
+ </join>
+ <element column="STRING_LIST_VALUE"/>
+ </field>
+ </class>
+
<class name="MStorageDescriptor" identity-type="datastore" table="SDS" detachable="true">
<datastore-identity>
<column name="SD_ID"/>
@@ -291,6 +304,26 @@
<column name="PARAM_VALUE" length="4000" jdbc-type="VARCHAR"/>
</value>
</field>
+ <field name="skewedColNames" table="SKEWED_COL_NAMES">
+ <collection element-type="java.lang.String"/>
+ <join>
+ <column name="SD_ID"/>
+ </join>
+ <element column="SKEWED_COL_NAME"/>
+ </field>
+ <field name="skewedColValues" table="SKEWED_VALUES">
+ <collection element-type="MStringList"/>
+ <join/>
+ </field>
+ <field name="skewedColValueLocationMaps" table="SKEWED_COL_VALUE_LOCATION_MAPPING">
+ <map key-type="MStringList" value-type="java.lang.String"/>
+ <join>
+ <column name="SD_ID"/>
+ </join>
+ <value>
+ <column name="location" length="4000" jdbc-type="VARCHAR"/>
+ </value>
+ </field>
</class>
<class name="MPartition" table="PARTITIONS" identity-type="datastore" detachable="true">
Modified: hive/trunk/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java
URL: http://svn.apache.org/viewvc/hive/trunk/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java?rev=1377187&r1=1377186&r2=1377187&view=diff
==============================================================================
--- hive/trunk/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java (original)
+++ hive/trunk/metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java Sat Aug 25 02:44:22 2012
@@ -47,6 +47,7 @@ import org.apache.hadoop.hive.metastore.
import org.apache.hadoop.hive.metastore.api.Order;
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.StorageDescriptor;
import org.apache.hadoop.hive.metastore.api.Table;
import org.apache.hadoop.hive.metastore.api.Type;
@@ -172,6 +173,16 @@ public abstract class TestHiveMetaStore
.put(Constants.SERIALIZATION_FORMAT, "1");
sd.setSortCols(new ArrayList<Order>());
+ //skewed information
+ SkewedInfo skewInfor = new SkewedInfo();
+ 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");
+ skewInfor.setSkewedColValueLocationMaps(scvlm);
+ sd.setSkewedInfo(skewInfor);
+
tbl.setPartitionKeys(new ArrayList<FieldSchema>(2));
tbl.getPartitionKeys().add(
new FieldSchema("ds", Constants.STRING_TYPE_NAME, ""));
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java?rev=1377187&r1=1377186&r2=1377187&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java Sat Aug 25 02:44:22 2012
@@ -228,7 +228,6 @@ public enum ErrorMsg {
"If you really want to perform the operation, either set " +
"hive.optimize.bucketmapjoin.sortedmerge=false, or set " +
"hive.enforce.sortmergebucketmapjoin=false."),
-
BUCKET_MAPJOIN_NOT_POSSIBLE(10136,
"Bucketed mapjoin cannot be performed. " +
"This can be due to multiple reasons: " +
@@ -251,6 +250,24 @@ public enum ErrorMsg {
"Fix the metadata or don't use bucketed mapjoin, by setting " +
"hive.enforce.bucketmapjoin to false."),
+ CREATE_SKEWED_TABLE_NO_COLUMN_NAME(10200, "No skewed column name."),
+ CREATE_SKEWED_TABLE_NO_COLUMN_VALUE(10201, "No skewed values."),
+ CREATE_SKEWED_TABLE_DUPLICATE_COLUMN_NAMES(10202,
+ "Duplicate skewed column name:"),
+ CREATE_SKEWED_TABLE_INVALID_COLUMN(10203,
+ "Invalid skewed column name:"),
+ CREATE_SKEWED_TABLE_SKEWED_COL_NAME_VALUE_MISMATCH_1(10204,
+ "Skewed column name is empty but skewed value is not."),
+ CREATE_SKEWED_TABLE_SKEWED_COL_NAME_VALUE_MISMATCH_2(10205,
+ "Skewed column value is empty but skewed name is not."),
+ CREATE_SKEWED_TABLE_SKEWED_COL_NAME_VALUE_MISMATCH_3(10206,
+ "The number of skewed column names and the number of " +
+ "skewed column values are different: "),
+ ALTER_TABLE_NOT_ALLOWED_RENAME_SKEWED_COLUMN(10207,
+ " is a skewed column. It's not allowed to rename skewed column."),
+ HIVE_INTERNAL_DDL_LIST_BUCKETING_DISABLED(10208,
+ "List Bucketing DDL is not allowed to use since feature is not completed yet."),
+
SCRIPT_INIT_ERROR(20000, "Unable to initialize custom script."),
SCRIPT_IO_ERROR(20001, "An error occurred while reading or writing to your custom script. "
+ "It may have crashed with an error."),