This is an automated email from the ASF dual-hosted git repository. zhangbutao pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/hive.git
The following commit(s) were added to refs/heads/master by this push: new 6ab9b14c2c4 HIVE-27984: Support backward compatibility of hms thrift struct about column stats (#4984)(Butao Zhang, reviewed by okumin, Zhihua Deng) 6ab9b14c2c4 is described below commit 6ab9b14c2c45e139a30ab78d41cefe5f1ab64d22 Author: Butao Zhang <zhangbu...@cmss.chinamobile.com> AuthorDate: Thu Feb 1 14:27:43 2024 +0800 HIVE-27984: Support backward compatibility of hms thrift struct about column stats (#4984)(Butao Zhang, reviewed by okumin, Zhihua Deng) --- .../cache/TestCachedStoreUpdateUsingEvents.java | 18 ++-- .../hadoop/hive/ql/exec/ColumnStatsUpdateTask.java | 2 +- .../hadoop/hive/ql/stats/ColStatsProcessor.java | 2 +- .../gen/thrift/gen-cpp/hive_metastore_types.cpp | 51 +++++----- .../src/gen/thrift/gen-cpp/hive_metastore_types.h | 105 +++++++++++---------- .../hive/metastore/api/ColumnStatistics.java | 5 +- .../metastore/api/GetPartitionsByNamesRequest.java | 5 +- .../hadoop/hive/metastore/api/GetTableRequest.java | 5 +- .../hive/metastore/api/PartitionsStatsRequest.java | 60 +++++++----- .../metastore/api/SetPartitionsStatsRequest.java | 60 +++++++----- .../hive/metastore/api/TableStatsRequest.java | 62 ++++++------ .../thrift/gen-php/metastore/ColumnStatistics.php | 2 +- .../metastore/GetPartitionsByNamesRequest.php | 2 +- .../thrift/gen-php/metastore/GetTableRequest.php | 2 +- .../gen-php/metastore/PartitionsStatsRequest.php | 4 +- .../metastore/SetPartitionsStatsRequest.php | 4 +- .../thrift/gen-php/metastore/TableStatsRequest.php | 4 +- .../src/gen/thrift/gen-py/hive_metastore/ttypes.py | 30 +++--- .../src/gen/thrift/gen-rb/hive_metastore_types.rb | 15 ++- .../hadoop/hive/metastore/HiveMetaStoreClient.java | 18 ++-- .../src/main/thrift/hive_metastore.thrift | 12 +-- .../metastore/HiveMetaStoreClientPreCatalog.java | 22 +++-- 22 files changed, 262 insertions(+), 228 deletions(-) diff --git a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/cache/TestCachedStoreUpdateUsingEvents.java b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/cache/TestCachedStoreUpdateUsingEvents.java index dd08d8aa109..1ad1349b10b 100644 --- a/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/cache/TestCachedStoreUpdateUsingEvents.java +++ b/itests/hive-unit/src/test/java/org/apache/hadoop/hive/metastore/cache/TestCachedStoreUpdateUsingEvents.java @@ -585,7 +585,7 @@ public class TestCachedStoreUpdateUsingEvents { colStats.setStatsObj(getStatsObjects(dbName, tblName, colName, highValue, avgColLen)); colStats.setEngine(Constants.HIVE_ENGINE); - SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats), Constants.HIVE_ENGINE); + SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats)); setTblColStat.setWriteId(writeId); setTblColStat.setValidWriteIdList(validWriteIds); @@ -627,7 +627,7 @@ public class TestCachedStoreUpdateUsingEvents { colStats.setStatsObj(getStatsObjects(dbName, tblName, colName, highValue, avgColLen)); colStats.setEngine(Constants.HIVE_ENGINE); - SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats), Constants.HIVE_ENGINE); + SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats)); setTblColStat.setWriteId(writeId); setTblColStat.setValidWriteIdList(validWriteIds); @@ -940,7 +940,7 @@ public class TestCachedStoreUpdateUsingEvents { colStats.setStatsObj(getStatsObjects(dbName, tblName, colName, highValue, avgColLen)); colStats.setEngine(Constants.HIVE_ENGINE); - SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats), Constants.HIVE_ENGINE); + SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats)); setTblColStat.setWriteId(writeId); setTblColStat.setValidWriteIdList(validWriteIds); @@ -1007,7 +1007,7 @@ public class TestCachedStoreUpdateUsingEvents { colStats.setStatsObj(getStatsObjects(dbName, tblName, colName, highValue, avgColLen)); colStats.setEngine(Constants.HIVE_ENGINE); - SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats), Constants.HIVE_ENGINE); + SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats)); setTblColStat.setWriteId(writeId); setTblColStat.setValidWriteIdList(validWriteIds); @@ -1056,7 +1056,7 @@ public class TestCachedStoreUpdateUsingEvents { // This will update the cache for non txn table. PartitionsStatsRequest request = new PartitionsStatsRequest(dbName, tblName, - Collections.singletonList(colName[0]), partitions, Constants.HIVE_ENGINE); + Collections.singletonList(colName[0]), partitions); request.setCatName(DEFAULT_CATALOG_NAME); request.setValidWriteIdList(validWriteIds); AggrStats aggrStatsCached = hmsHandler.get_aggr_stats_for(request); @@ -1123,7 +1123,7 @@ public class TestCachedStoreUpdateUsingEvents { colStats.setStatsObj(getStatsObjects(dbName, tblName, colName, 5, 20)); colStats.setEngine(Constants.HIVE_ENGINE); - SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats), Constants.HIVE_ENGINE); + SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats)); setTblColStat.setWriteId(writeId); setTblColStat.setValidWriteIdList(validWriteIds); hmsHandler.update_partition_column_statistics_req(setTblColStat); @@ -1136,7 +1136,7 @@ public class TestCachedStoreUpdateUsingEvents { // keep the txn open and verify that the stats got is not compliant. PartitionsStatsRequest request = new PartitionsStatsRequest(dbName, tblName, - Collections.singletonList(colName[0]), partitions, Constants.HIVE_ENGINE); + Collections.singletonList(colName[0]), partitions); request.setCatName(DEFAULT_CATALOG_NAME); request.setValidWriteIdList(validWriteIds); AggrStats aggrStatsCached = hmsHandler.get_aggr_stats_for(request); @@ -1175,7 +1175,7 @@ public class TestCachedStoreUpdateUsingEvents { colStats.setStatsObj(getStatsObjects(dbName, tblName, colName, 5, 20)); colStats.setEngine(Constants.HIVE_ENGINE); - SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats), Constants.HIVE_ENGINE); + SetPartitionsStatsRequest setTblColStat = new SetPartitionsStatsRequest(Collections.singletonList(colStats)); setTblColStat.setWriteId(writeId); setTblColStat.setValidWriteIdList(validWriteIds); hmsHandler.update_partition_column_statistics_req(setTblColStat); @@ -1191,7 +1191,7 @@ public class TestCachedStoreUpdateUsingEvents { // keep the txn open and verify that the stats got is not compliant. PartitionsStatsRequest request = new PartitionsStatsRequest(dbName, tblName, - Collections.singletonList(colName[0]), partitions, Constants.HIVE_ENGINE); + Collections.singletonList(colName[0]), partitions); request.setCatName(DEFAULT_CATALOG_NAME); request.setValidWriteIdList(validWriteIds); AggrStats aggrStatsCached = hmsHandler.get_aggr_stats_for(request); diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java index d8492a16f17..8b6c8d6b1bd 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/ColumnStatsUpdateTask.java @@ -317,7 +317,7 @@ public class ColumnStatsUpdateTask extends Task<ColumnStatsUpdateWork> { private int persistColumnStats(Hive db) throws HiveException, MetaException, IOException { ColumnStatistics colStats = constructColumnStatsFromInput(); SetPartitionsStatsRequest request = - new SetPartitionsStatsRequest(Collections.singletonList(colStats), Constants.HIVE_ENGINE); + new SetPartitionsStatsRequest(Collections.singletonList(colStats)); // Set writeId and validWriteId list for replicated statistics. getColStats() will return // non-null value only during replication. diff --git a/ql/src/java/org/apache/hadoop/hive/ql/stats/ColStatsProcessor.java b/ql/src/java/org/apache/hadoop/hive/ql/stats/ColStatsProcessor.java index e6f945bc864..285175414d6 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/stats/ColStatsProcessor.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/stats/ColStatsProcessor.java @@ -211,7 +211,7 @@ public class ColStatsProcessor implements IStatsProcessor { if (colStats.isEmpty()) { continue; } - SetPartitionsStatsRequest request = new SetPartitionsStatsRequest(colStats, Constants.HIVE_ENGINE); + SetPartitionsStatsRequest request = new SetPartitionsStatsRequest(colStats); request.setNeedMerge(colStatDesc.isNeedMerge()); if (txnMgr != null) { request.setWriteId(writeId); diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.cpp b/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.cpp index 2a7a8d65b5e..1ec6bcee3f1 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.cpp +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.cpp @@ -13933,6 +13933,7 @@ __isset.validWriteIdList = true; void SetPartitionsStatsRequest::__set_engine(const std::string& val) { this->engine = val; +__isset.engine = true; } std::ostream& operator<<(std::ostream& out, const SetPartitionsStatsRequest& obj) { @@ -13954,7 +13955,6 @@ uint32_t SetPartitionsStatsRequest::read(::apache::thrift::protocol::TProtocol* using ::apache::thrift::protocol::TProtocolException; bool isset_colStats = false; - bool isset_engine = false; while (true) { @@ -14011,7 +14011,7 @@ uint32_t SetPartitionsStatsRequest::read(::apache::thrift::protocol::TProtocol* case 5: if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readString(this->engine); - isset_engine = true; + this->__isset.engine = true; } else { xfer += iprot->skip(ftype); } @@ -14027,8 +14027,6 @@ uint32_t SetPartitionsStatsRequest::read(::apache::thrift::protocol::TProtocol* if (!isset_colStats) throw TProtocolException(TProtocolException::INVALID_DATA); - if (!isset_engine) - throw TProtocolException(TProtocolException::INVALID_DATA); return xfer; } @@ -14064,10 +14062,11 @@ uint32_t SetPartitionsStatsRequest::write(::apache::thrift::protocol::TProtocol* xfer += oprot->writeString(this->validWriteIdList); xfer += oprot->writeFieldEnd(); } - xfer += oprot->writeFieldBegin("engine", ::apache::thrift::protocol::T_STRING, 5); - xfer += oprot->writeString(this->engine); - xfer += oprot->writeFieldEnd(); - + if (this->__isset.engine) { + xfer += oprot->writeFieldBegin("engine", ::apache::thrift::protocol::T_STRING, 5); + xfer += oprot->writeString(this->engine); + xfer += oprot->writeFieldEnd(); + } xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; @@ -14107,7 +14106,7 @@ void SetPartitionsStatsRequest::printTo(std::ostream& out) const { out << ", " << "needMerge="; (__isset.needMerge ? (out << to_string(needMerge)) : (out << "<null>")); out << ", " << "writeId="; (__isset.writeId ? (out << to_string(writeId)) : (out << "<null>")); out << ", " << "validWriteIdList="; (__isset.validWriteIdList ? (out << to_string(validWriteIdList)) : (out << "<null>")); - out << ", " << "engine=" << to_string(engine); + out << ", " << "engine="; (__isset.engine ? (out << to_string(engine)) : (out << "<null>")); out << ")"; } @@ -18221,6 +18220,7 @@ __isset.validWriteIdList = true; void TableStatsRequest::__set_engine(const std::string& val) { this->engine = val; +__isset.engine = true; } void TableStatsRequest::__set_id(const int64_t val) { @@ -18249,7 +18249,6 @@ uint32_t TableStatsRequest::read(::apache::thrift::protocol::TProtocol* iprot) { bool isset_dbName = false; bool isset_tblName = false; bool isset_colNames = false; - bool isset_engine = false; while (true) { @@ -18314,7 +18313,7 @@ uint32_t TableStatsRequest::read(::apache::thrift::protocol::TProtocol* iprot) { case 6: if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readString(this->engine); - isset_engine = true; + this->__isset.engine = true; } else { xfer += iprot->skip(ftype); } @@ -18342,8 +18341,6 @@ uint32_t TableStatsRequest::read(::apache::thrift::protocol::TProtocol* iprot) { throw TProtocolException(TProtocolException::INVALID_DATA); if (!isset_colNames) throw TProtocolException(TProtocolException::INVALID_DATA); - if (!isset_engine) - throw TProtocolException(TProtocolException::INVALID_DATA); return xfer; } @@ -18382,10 +18379,11 @@ uint32_t TableStatsRequest::write(::apache::thrift::protocol::TProtocol* oprot) xfer += oprot->writeString(this->validWriteIdList); xfer += oprot->writeFieldEnd(); } - xfer += oprot->writeFieldBegin("engine", ::apache::thrift::protocol::T_STRING, 6); - xfer += oprot->writeString(this->engine); - xfer += oprot->writeFieldEnd(); - + if (this->__isset.engine) { + xfer += oprot->writeFieldBegin("engine", ::apache::thrift::protocol::T_STRING, 6); + xfer += oprot->writeString(this->engine); + xfer += oprot->writeFieldEnd(); + } if (this->__isset.id) { xfer += oprot->writeFieldBegin("id", ::apache::thrift::protocol::T_I64, 7); xfer += oprot->writeI64(this->id); @@ -18437,7 +18435,7 @@ void TableStatsRequest::printTo(std::ostream& out) const { out << ", " << "colNames=" << to_string(colNames); out << ", " << "catName="; (__isset.catName ? (out << to_string(catName)) : (out << "<null>")); out << ", " << "validWriteIdList="; (__isset.validWriteIdList ? (out << to_string(validWriteIdList)) : (out << "<null>")); - out << ", " << "engine=" << to_string(engine); + out << ", " << "engine="; (__isset.engine ? (out << to_string(engine)) : (out << "<null>")); out << ", " << "id="; (__isset.id ? (out << to_string(id)) : (out << "<null>")); out << ")"; } @@ -18475,6 +18473,7 @@ __isset.validWriteIdList = true; void PartitionsStatsRequest::__set_engine(const std::string& val) { this->engine = val; +__isset.engine = true; } std::ostream& operator<<(std::ostream& out, const PartitionsStatsRequest& obj) { @@ -18499,7 +18498,6 @@ uint32_t PartitionsStatsRequest::read(::apache::thrift::protocol::TProtocol* ipr bool isset_tblName = false; bool isset_colNames = false; bool isset_partNames = false; - bool isset_engine = false; while (true) { @@ -18584,7 +18582,7 @@ uint32_t PartitionsStatsRequest::read(::apache::thrift::protocol::TProtocol* ipr case 7: if (ftype == ::apache::thrift::protocol::T_STRING) { xfer += iprot->readString(this->engine); - isset_engine = true; + this->__isset.engine = true; } else { xfer += iprot->skip(ftype); } @@ -18606,8 +18604,6 @@ uint32_t PartitionsStatsRequest::read(::apache::thrift::protocol::TProtocol* ipr throw TProtocolException(TProtocolException::INVALID_DATA); if (!isset_partNames) throw TProtocolException(TProtocolException::INVALID_DATA); - if (!isset_engine) - throw TProtocolException(TProtocolException::INVALID_DATA); return xfer; } @@ -18658,10 +18654,11 @@ uint32_t PartitionsStatsRequest::write(::apache::thrift::protocol::TProtocol* op xfer += oprot->writeString(this->validWriteIdList); xfer += oprot->writeFieldEnd(); } - xfer += oprot->writeFieldBegin("engine", ::apache::thrift::protocol::T_STRING, 7); - xfer += oprot->writeString(this->engine); - xfer += oprot->writeFieldEnd(); - + if (this->__isset.engine) { + xfer += oprot->writeFieldBegin("engine", ::apache::thrift::protocol::T_STRING, 7); + xfer += oprot->writeString(this->engine); + xfer += oprot->writeFieldEnd(); + } xfer += oprot->writeFieldStop(); xfer += oprot->writeStructEnd(); return xfer; @@ -18709,7 +18706,7 @@ void PartitionsStatsRequest::printTo(std::ostream& out) const { out << ", " << "partNames=" << to_string(partNames); out << ", " << "catName="; (__isset.catName ? (out << to_string(catName)) : (out << "<null>")); out << ", " << "validWriteIdList="; (__isset.validWriteIdList ? (out << to_string(validWriteIdList)) : (out << "<null>")); - out << ", " << "engine=" << to_string(engine); + out << ", " << "engine="; (__isset.engine ? (out << to_string(engine)) : (out << "<null>")); out << ")"; } diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.h b/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.h index 4e0a567345b..2a65c40f531 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.h +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-cpp/hive_metastore_types.h @@ -5012,7 +5012,7 @@ void swap(ColumnStatisticsDesc &a, ColumnStatisticsDesc &b); std::ostream& operator<<(std::ostream& out, const ColumnStatisticsDesc& obj); typedef struct _ColumnStatistics__isset { - _ColumnStatistics__isset() : isStatsCompliant(false), engine(false) {} + _ColumnStatistics__isset() : isStatsCompliant(false), engine(true) {} bool isStatsCompliant :1; bool engine :1; } _ColumnStatistics__isset; @@ -5022,9 +5022,8 @@ class ColumnStatistics : public virtual ::apache::thrift::TBase { ColumnStatistics(const ColumnStatistics&); ColumnStatistics& operator=(const ColumnStatistics&); - ColumnStatistics() noexcept - : isStatsCompliant(0), - engine() { + ColumnStatistics() : isStatsCompliant(0), + engine("hive") { } virtual ~ColumnStatistics() noexcept; @@ -5938,10 +5937,11 @@ void swap(AggrStats &a, AggrStats &b); std::ostream& operator<<(std::ostream& out, const AggrStats& obj); typedef struct _SetPartitionsStatsRequest__isset { - _SetPartitionsStatsRequest__isset() : needMerge(false), writeId(true), validWriteIdList(false) {} + _SetPartitionsStatsRequest__isset() : needMerge(false), writeId(true), validWriteIdList(false), engine(true) {} bool needMerge :1; bool writeId :1; bool validWriteIdList :1; + bool engine :1; } _SetPartitionsStatsRequest__isset; class SetPartitionsStatsRequest : public virtual ::apache::thrift::TBase { @@ -5949,11 +5949,10 @@ class SetPartitionsStatsRequest : public virtual ::apache::thrift::TBase { SetPartitionsStatsRequest(const SetPartitionsStatsRequest&); SetPartitionsStatsRequest& operator=(const SetPartitionsStatsRequest&); - SetPartitionsStatsRequest() noexcept - : needMerge(0), - writeId(-1LL), - validWriteIdList(), - engine() { + SetPartitionsStatsRequest() : needMerge(0), + writeId(-1LL), + validWriteIdList(), + engine("hive") { } virtual ~SetPartitionsStatsRequest() noexcept; @@ -5991,7 +5990,9 @@ class SetPartitionsStatsRequest : public virtual ::apache::thrift::TBase { return false; else if (__isset.validWriteIdList && !(validWriteIdList == rhs.validWriteIdList)) return false; - if (!(engine == rhs.engine)) + if (__isset.engine != rhs.__isset.engine) + return false; + else if (__isset.engine && !(engine == rhs.engine)) return false; return true; } @@ -7473,9 +7474,10 @@ void swap(PartitionsStatsResult &a, PartitionsStatsResult &b); std::ostream& operator<<(std::ostream& out, const PartitionsStatsResult& obj); typedef struct _TableStatsRequest__isset { - _TableStatsRequest__isset() : catName(false), validWriteIdList(false), id(true) {} + _TableStatsRequest__isset() : catName(false), validWriteIdList(false), engine(true), id(true) {} bool catName :1; bool validWriteIdList :1; + bool engine :1; bool id :1; } _TableStatsRequest__isset; @@ -7484,13 +7486,12 @@ class TableStatsRequest : public virtual ::apache::thrift::TBase { TableStatsRequest(const TableStatsRequest&); TableStatsRequest& operator=(const TableStatsRequest&); - TableStatsRequest() noexcept - : dbName(), - tblName(), - catName(), - validWriteIdList(), - engine(), - id(-1LL) { + TableStatsRequest() : dbName(), + tblName(), + catName(), + validWriteIdList(), + engine("hive"), + id(-1LL) { } virtual ~TableStatsRequest() noexcept; @@ -7534,7 +7535,9 @@ class TableStatsRequest : public virtual ::apache::thrift::TBase { return false; else if (__isset.validWriteIdList && !(validWriteIdList == rhs.validWriteIdList)) return false; - if (!(engine == rhs.engine)) + if (__isset.engine != rhs.__isset.engine) + return false; + else if (__isset.engine && !(engine == rhs.engine)) return false; if (__isset.id != rhs.__isset.id) return false; @@ -7559,9 +7562,10 @@ void swap(TableStatsRequest &a, TableStatsRequest &b); std::ostream& operator<<(std::ostream& out, const TableStatsRequest& obj); typedef struct _PartitionsStatsRequest__isset { - _PartitionsStatsRequest__isset() : catName(false), validWriteIdList(false) {} + _PartitionsStatsRequest__isset() : catName(false), validWriteIdList(false), engine(true) {} bool catName :1; bool validWriteIdList :1; + bool engine :1; } _PartitionsStatsRequest__isset; class PartitionsStatsRequest : public virtual ::apache::thrift::TBase { @@ -7569,12 +7573,11 @@ class PartitionsStatsRequest : public virtual ::apache::thrift::TBase { PartitionsStatsRequest(const PartitionsStatsRequest&); PartitionsStatsRequest& operator=(const PartitionsStatsRequest&); - PartitionsStatsRequest() noexcept - : dbName(), - tblName(), - catName(), - validWriteIdList(), - engine() { + PartitionsStatsRequest() : dbName(), + tblName(), + catName(), + validWriteIdList(), + engine("hive") { } virtual ~PartitionsStatsRequest() noexcept; @@ -7620,7 +7623,9 @@ class PartitionsStatsRequest : public virtual ::apache::thrift::TBase { return false; else if (__isset.validWriteIdList && !(validWriteIdList == rhs.validWriteIdList)) return false; - if (!(engine == rhs.engine)) + if (__isset.engine != rhs.__isset.engine) + return false; + else if (__isset.engine && !(engine == rhs.engine)) return false; return true; } @@ -8254,7 +8259,7 @@ void swap(PartitionValuesResponse &a, PartitionValuesResponse &b); std::ostream& operator<<(std::ostream& out, const PartitionValuesResponse& obj); typedef struct _GetPartitionsByNamesRequest__isset { - _GetPartitionsByNamesRequest__isset() : names(false), get_col_stats(false), processorCapabilities(false), processorIdentifier(false), engine(false), validWriteIdList(false), getFileMetadata(false), id(true), skipColumnSchemaForPartition(false), includeParamKeyPattern(false), excludeParamKeyPattern(false) {} + _GetPartitionsByNamesRequest__isset() : names(false), get_col_stats(false), processorCapabilities(false), processorIdentifier(false), engine(true), validWriteIdList(false), getFileMetadata(false), id(true), skipColumnSchemaForPartition(false), includeParamKeyPattern(false), excludeParamKeyPattern(false) {} bool names :1; bool get_col_stats :1; bool processorCapabilities :1; @@ -8273,18 +8278,17 @@ class GetPartitionsByNamesRequest : public virtual ::apache::thrift::TBase { GetPartitionsByNamesRequest(const GetPartitionsByNamesRequest&); GetPartitionsByNamesRequest& operator=(const GetPartitionsByNamesRequest&); - GetPartitionsByNamesRequest() noexcept - : db_name(), - tbl_name(), - get_col_stats(0), - processorIdentifier(), - engine(), - validWriteIdList(), - getFileMetadata(0), - id(-1LL), - skipColumnSchemaForPartition(0), - includeParamKeyPattern(), - excludeParamKeyPattern() { + GetPartitionsByNamesRequest() : db_name(), + tbl_name(), + get_col_stats(0), + processorIdentifier(), + engine("hive"), + validWriteIdList(), + getFileMetadata(0), + id(-1LL), + skipColumnSchemaForPartition(0), + includeParamKeyPattern(), + excludeParamKeyPattern() { } virtual ~GetPartitionsByNamesRequest() noexcept; @@ -13888,7 +13892,7 @@ void swap(GetProjectionsSpec &a, GetProjectionsSpec &b); std::ostream& operator<<(std::ostream& out, const GetProjectionsSpec& obj); typedef struct _GetTableRequest__isset { - _GetTableRequest__isset() : capabilities(false), catName(false), validWriteIdList(false), getColumnStats(false), processorCapabilities(false), processorIdentifier(false), engine(false), id(true) {} + _GetTableRequest__isset() : capabilities(false), catName(false), validWriteIdList(false), getColumnStats(false), processorCapabilities(false), processorIdentifier(false), engine(true), id(true) {} bool capabilities :1; bool catName :1; bool validWriteIdList :1; @@ -13904,15 +13908,14 @@ class GetTableRequest : public virtual ::apache::thrift::TBase { GetTableRequest(const GetTableRequest&); GetTableRequest& operator=(const GetTableRequest&); - GetTableRequest() noexcept - : dbName(), - tblName(), - catName(), - validWriteIdList(), - getColumnStats(0), - processorIdentifier(), - engine(), - id(-1LL) { + GetTableRequest() : dbName(), + tblName(), + catName(), + validWriteIdList(), + getColumnStats(0), + processorIdentifier(), + engine("hive"), + id(-1LL) { } virtual ~GetTableRequest() noexcept; diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ColumnStatistics.java b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ColumnStatistics.java index 782586acece..3fffbce5d10 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ColumnStatistics.java +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/ColumnStatistics.java @@ -114,6 +114,8 @@ package org.apache.hadoop.hive.metastore.api; } public ColumnStatistics() { + this.engine = "hive"; + } public ColumnStatistics( @@ -156,7 +158,8 @@ package org.apache.hadoop.hive.metastore.api; this.statsObj = null; setIsStatsCompliantIsSet(false); this.isStatsCompliant = false; - this.engine = null; + this.engine = "hive"; + } @org.apache.thrift.annotation.Nullable diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetPartitionsByNamesRequest.java b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetPartitionsByNamesRequest.java index 2ecd9aa0c1a..2654f09d4f4 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetPartitionsByNamesRequest.java +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetPartitionsByNamesRequest.java @@ -181,6 +181,8 @@ package org.apache.hadoop.hive.metastore.api; } public GetPartitionsByNamesRequest() { + this.engine = "hive"; + this.id = -1L; } @@ -247,7 +249,8 @@ package org.apache.hadoop.hive.metastore.api; this.get_col_stats = false; this.processorCapabilities = null; this.processorIdentifier = null; - this.engine = null; + this.engine = "hive"; + this.validWriteIdList = null; setGetFileMetadataIsSet(false); this.getFileMetadata = false; diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetTableRequest.java b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetTableRequest.java index 50d04e78653..a333674af92 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetTableRequest.java +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/GetTableRequest.java @@ -157,6 +157,8 @@ package org.apache.hadoop.hive.metastore.api; } public GetTableRequest() { + this.engine = "hive"; + this.id = -1L; } @@ -219,7 +221,8 @@ package org.apache.hadoop.hive.metastore.api; this.getColumnStats = false; this.processorCapabilities = null; this.processorIdentifier = null; - this.engine = null; + this.engine = "hive"; + this.id = -1L; } diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PartitionsStatsRequest.java b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PartitionsStatsRequest.java index bdddf8844bd..7ef14ac7706 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PartitionsStatsRequest.java +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/PartitionsStatsRequest.java @@ -28,7 +28,7 @@ package org.apache.hadoop.hive.metastore.api; private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> partNames; // required private @org.apache.thrift.annotation.Nullable java.lang.String catName; // optional private @org.apache.thrift.annotation.Nullable java.lang.String validWriteIdList; // optional - private @org.apache.thrift.annotation.Nullable java.lang.String engine; // required + private @org.apache.thrift.annotation.Nullable java.lang.String engine; // optional /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { @@ -109,7 +109,7 @@ package org.apache.hadoop.hive.metastore.api; } // isset id assignments - private static final _Fields optionals[] = {_Fields.CAT_NAME,_Fields.VALID_WRITE_ID_LIST}; + private static final _Fields optionals[] = {_Fields.CAT_NAME,_Fields.VALID_WRITE_ID_LIST,_Fields.ENGINE}; public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; static { java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); @@ -127,28 +127,28 @@ package org.apache.hadoop.hive.metastore.api; new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); tmpMap.put(_Fields.VALID_WRITE_ID_LIST, new org.apache.thrift.meta_data.FieldMetaData("validWriteIdList", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.ENGINE, new org.apache.thrift.meta_data.FieldMetaData("engine", org.apache.thrift.TFieldRequirementType.REQUIRED, + tmpMap.put(_Fields.ENGINE, new org.apache.thrift.meta_data.FieldMetaData("engine", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); metaDataMap = java.util.Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(PartitionsStatsRequest.class, metaDataMap); } public PartitionsStatsRequest() { + this.engine = "hive"; + } public PartitionsStatsRequest( java.lang.String dbName, java.lang.String tblName, java.util.List<java.lang.String> colNames, - java.util.List<java.lang.String> partNames, - java.lang.String engine) + java.util.List<java.lang.String> partNames) { this(); this.dbName = dbName; this.tblName = tblName; this.colNames = colNames; this.partNames = partNames; - this.engine = engine; } /** @@ -192,7 +192,8 @@ package org.apache.hadoop.hive.metastore.api; this.partNames = null; this.catName = null; this.validWriteIdList = null; - this.engine = null; + this.engine = "hive"; + } @org.apache.thrift.annotation.Nullable @@ -773,14 +774,16 @@ package org.apache.hadoop.hive.metastore.api; } first = false; } - if (!first) sb.append(", "); - sb.append("engine:"); - if (this.engine == null) { - sb.append("null"); - } else { - sb.append(this.engine); + if (isSetEngine()) { + if (!first) sb.append(", "); + sb.append("engine:"); + if (this.engine == null) { + sb.append("null"); + } else { + sb.append(this.engine); + } + first = false; } - first = false; sb.append(")"); return sb.toString(); } @@ -803,10 +806,6 @@ package org.apache.hadoop.hive.metastore.api; throw new org.apache.thrift.protocol.TProtocolException("Required field 'partNames' is unset! Struct:" + toString()); } - if (!isSetEngine()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'engine' is unset! Struct:" + toString()); - } - // check for sub-struct validity } @@ -982,9 +981,11 @@ package org.apache.hadoop.hive.metastore.api; } } if (struct.engine != null) { - oprot.writeFieldBegin(ENGINE_FIELD_DESC); - oprot.writeString(struct.engine); - oprot.writeFieldEnd(); + if (struct.isSetEngine()) { + oprot.writeFieldBegin(ENGINE_FIELD_DESC); + oprot.writeString(struct.engine); + oprot.writeFieldEnd(); + } } oprot.writeFieldStop(); oprot.writeStructEnd(); @@ -1019,7 +1020,6 @@ package org.apache.hadoop.hive.metastore.api; oprot.writeString(_iter627); } } - oprot.writeString(struct.engine); java.util.BitSet optionals = new java.util.BitSet(); if (struct.isSetCatName()) { optionals.set(0); @@ -1027,13 +1027,19 @@ package org.apache.hadoop.hive.metastore.api; if (struct.isSetValidWriteIdList()) { optionals.set(1); } - oprot.writeBitSet(optionals, 2); + if (struct.isSetEngine()) { + optionals.set(2); + } + oprot.writeBitSet(optionals, 3); if (struct.isSetCatName()) { oprot.writeString(struct.catName); } if (struct.isSetValidWriteIdList()) { oprot.writeString(struct.validWriteIdList); } + if (struct.isSetEngine()) { + oprot.writeString(struct.engine); + } } @Override @@ -1065,9 +1071,7 @@ package org.apache.hadoop.hive.metastore.api; } } struct.setPartNamesIsSet(true); - struct.engine = iprot.readString(); - struct.setEngineIsSet(true); - java.util.BitSet incoming = iprot.readBitSet(2); + java.util.BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { struct.catName = iprot.readString(); struct.setCatNameIsSet(true); @@ -1076,6 +1080,10 @@ package org.apache.hadoop.hive.metastore.api; struct.validWriteIdList = iprot.readString(); struct.setValidWriteIdListIsSet(true); } + if (incoming.get(2)) { + struct.engine = iprot.readString(); + struct.setEngineIsSet(true); + } } } diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SetPartitionsStatsRequest.java b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SetPartitionsStatsRequest.java index 1c373d92da2..c10e726c6e7 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SetPartitionsStatsRequest.java +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/SetPartitionsStatsRequest.java @@ -24,7 +24,7 @@ package org.apache.hadoop.hive.metastore.api; private boolean needMerge; // optional private long writeId; // optional private @org.apache.thrift.annotation.Nullable java.lang.String validWriteIdList; // optional - private @org.apache.thrift.annotation.Nullable java.lang.String engine; // required + private @org.apache.thrift.annotation.Nullable java.lang.String engine; // optional /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ public enum _Fields implements org.apache.thrift.TFieldIdEnum { @@ -102,7 +102,7 @@ package org.apache.hadoop.hive.metastore.api; private static final int __NEEDMERGE_ISSET_ID = 0; private static final int __WRITEID_ISSET_ID = 1; private byte __isset_bitfield = 0; - private static final _Fields optionals[] = {_Fields.NEED_MERGE,_Fields.WRITE_ID,_Fields.VALID_WRITE_ID_LIST}; + private static final _Fields optionals[] = {_Fields.NEED_MERGE,_Fields.WRITE_ID,_Fields.VALID_WRITE_ID_LIST,_Fields.ENGINE}; public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; static { java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); @@ -115,7 +115,7 @@ package org.apache.hadoop.hive.metastore.api; new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); tmpMap.put(_Fields.VALID_WRITE_ID_LIST, new org.apache.thrift.meta_data.FieldMetaData("validWriteIdList", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.ENGINE, new org.apache.thrift.meta_data.FieldMetaData("engine", org.apache.thrift.TFieldRequirementType.REQUIRED, + tmpMap.put(_Fields.ENGINE, new org.apache.thrift.meta_data.FieldMetaData("engine", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); metaDataMap = java.util.Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(SetPartitionsStatsRequest.class, metaDataMap); @@ -124,15 +124,15 @@ package org.apache.hadoop.hive.metastore.api; public SetPartitionsStatsRequest() { this.writeId = -1L; + this.engine = "hive"; + } public SetPartitionsStatsRequest( - java.util.List<ColumnStatistics> colStats, - java.lang.String engine) + java.util.List<ColumnStatistics> colStats) { this(); this.colStats = colStats; - this.engine = engine; } /** @@ -169,7 +169,8 @@ package org.apache.hadoop.hive.metastore.api; this.writeId = -1L; this.validWriteIdList = null; - this.engine = null; + this.engine = "hive"; + } public int getColStatsSize() { @@ -588,14 +589,16 @@ package org.apache.hadoop.hive.metastore.api; } first = false; } - if (!first) sb.append(", "); - sb.append("engine:"); - if (this.engine == null) { - sb.append("null"); - } else { - sb.append(this.engine); + if (isSetEngine()) { + if (!first) sb.append(", "); + sb.append("engine:"); + if (this.engine == null) { + sb.append("null"); + } else { + sb.append(this.engine); + } + first = false; } - first = false; sb.append(")"); return sb.toString(); } @@ -606,10 +609,6 @@ package org.apache.hadoop.hive.metastore.api; throw new org.apache.thrift.protocol.TProtocolException("Required field 'colStats' is unset! Struct:" + toString()); } - if (!isSetEngine()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'engine' is unset! Struct:" + toString()); - } - // check for sub-struct validity } @@ -743,9 +742,11 @@ package org.apache.hadoop.hive.metastore.api; } } if (struct.engine != null) { - oprot.writeFieldBegin(ENGINE_FIELD_DESC); - oprot.writeString(struct.engine); - oprot.writeFieldEnd(); + if (struct.isSetEngine()) { + oprot.writeFieldBegin(ENGINE_FIELD_DESC); + oprot.writeString(struct.engine); + oprot.writeFieldEnd(); + } } oprot.writeFieldStop(); oprot.writeStructEnd(); @@ -771,7 +772,6 @@ package org.apache.hadoop.hive.metastore.api; _iter450.write(oprot); } } - oprot.writeString(struct.engine); java.util.BitSet optionals = new java.util.BitSet(); if (struct.isSetNeedMerge()) { optionals.set(0); @@ -782,7 +782,10 @@ package org.apache.hadoop.hive.metastore.api; if (struct.isSetValidWriteIdList()) { optionals.set(2); } - oprot.writeBitSet(optionals, 3); + if (struct.isSetEngine()) { + optionals.set(3); + } + oprot.writeBitSet(optionals, 4); if (struct.isSetNeedMerge()) { oprot.writeBool(struct.needMerge); } @@ -792,6 +795,9 @@ package org.apache.hadoop.hive.metastore.api; if (struct.isSetValidWriteIdList()) { oprot.writeString(struct.validWriteIdList); } + if (struct.isSetEngine()) { + oprot.writeString(struct.engine); + } } @Override @@ -809,9 +815,7 @@ package org.apache.hadoop.hive.metastore.api; } } struct.setColStatsIsSet(true); - struct.engine = iprot.readString(); - struct.setEngineIsSet(true); - java.util.BitSet incoming = iprot.readBitSet(3); + java.util.BitSet incoming = iprot.readBitSet(4); if (incoming.get(0)) { struct.needMerge = iprot.readBool(); struct.setNeedMergeIsSet(true); @@ -824,6 +828,10 @@ package org.apache.hadoop.hive.metastore.api; struct.validWriteIdList = iprot.readString(); struct.setValidWriteIdListIsSet(true); } + if (incoming.get(3)) { + struct.engine = iprot.readString(); + struct.setEngineIsSet(true); + } } } diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableStatsRequest.java b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableStatsRequest.java index ea6626b78fe..685fe9d6982 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableStatsRequest.java +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-javabean/org/apache/hadoop/hive/metastore/api/TableStatsRequest.java @@ -27,7 +27,7 @@ package org.apache.hadoop.hive.metastore.api; private @org.apache.thrift.annotation.Nullable java.util.List<java.lang.String> colNames; // required private @org.apache.thrift.annotation.Nullable java.lang.String catName; // optional private @org.apache.thrift.annotation.Nullable java.lang.String validWriteIdList; // optional - private @org.apache.thrift.annotation.Nullable java.lang.String engine; // required + private @org.apache.thrift.annotation.Nullable java.lang.String engine; // optional private long id; // optional /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ @@ -111,7 +111,7 @@ package org.apache.hadoop.hive.metastore.api; // isset id assignments private static final int __ID_ISSET_ID = 0; private byte __isset_bitfield = 0; - private static final _Fields optionals[] = {_Fields.CAT_NAME,_Fields.VALID_WRITE_ID_LIST,_Fields.ID}; + private static final _Fields optionals[] = {_Fields.CAT_NAME,_Fields.VALID_WRITE_ID_LIST,_Fields.ENGINE,_Fields.ID}; public static final java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; static { java.util.Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new java.util.EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); @@ -126,7 +126,7 @@ package org.apache.hadoop.hive.metastore.api; new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); tmpMap.put(_Fields.VALID_WRITE_ID_LIST, new org.apache.thrift.meta_data.FieldMetaData("validWriteIdList", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); - tmpMap.put(_Fields.ENGINE, new org.apache.thrift.meta_data.FieldMetaData("engine", org.apache.thrift.TFieldRequirementType.REQUIRED, + tmpMap.put(_Fields.ENGINE, new org.apache.thrift.meta_data.FieldMetaData("engine", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); tmpMap.put(_Fields.ID, new org.apache.thrift.meta_data.FieldMetaData("id", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); @@ -135,6 +135,8 @@ package org.apache.hadoop.hive.metastore.api; } public TableStatsRequest() { + this.engine = "hive"; + this.id = -1L; } @@ -142,14 +144,12 @@ package org.apache.hadoop.hive.metastore.api; public TableStatsRequest( java.lang.String dbName, java.lang.String tblName, - java.util.List<java.lang.String> colNames, - java.lang.String engine) + java.util.List<java.lang.String> colNames) { this(); this.dbName = dbName; this.tblName = tblName; this.colNames = colNames; - this.engine = engine; } /** @@ -190,7 +190,8 @@ package org.apache.hadoop.hive.metastore.api; this.colNames = null; this.catName = null; this.validWriteIdList = null; - this.engine = null; + this.engine = "hive"; + this.id = -1L; } @@ -747,14 +748,16 @@ package org.apache.hadoop.hive.metastore.api; } first = false; } - if (!first) sb.append(", "); - sb.append("engine:"); - if (this.engine == null) { - sb.append("null"); - } else { - sb.append(this.engine); + if (isSetEngine()) { + if (!first) sb.append(", "); + sb.append("engine:"); + if (this.engine == null) { + sb.append("null"); + } else { + sb.append(this.engine); + } + first = false; } - first = false; if (isSetId()) { if (!first) sb.append(", "); sb.append("id:"); @@ -779,10 +782,6 @@ package org.apache.hadoop.hive.metastore.api; throw new org.apache.thrift.protocol.TProtocolException("Required field 'colNames' is unset! Struct:" + toString()); } - if (!isSetEngine()) { - throw new org.apache.thrift.protocol.TProtocolException("Required field 'engine' is unset! Struct:" + toString()); - } - // check for sub-struct validity } @@ -938,9 +937,11 @@ package org.apache.hadoop.hive.metastore.api; } } if (struct.engine != null) { - oprot.writeFieldBegin(ENGINE_FIELD_DESC); - oprot.writeString(struct.engine); - oprot.writeFieldEnd(); + if (struct.isSetEngine()) { + oprot.writeFieldBegin(ENGINE_FIELD_DESC); + oprot.writeString(struct.engine); + oprot.writeFieldEnd(); + } } if (struct.isSetId()) { oprot.writeFieldBegin(ID_FIELD_DESC); @@ -973,7 +974,6 @@ package org.apache.hadoop.hive.metastore.api; oprot.writeString(_iter614); } } - oprot.writeString(struct.engine); java.util.BitSet optionals = new java.util.BitSet(); if (struct.isSetCatName()) { optionals.set(0); @@ -981,16 +981,22 @@ package org.apache.hadoop.hive.metastore.api; if (struct.isSetValidWriteIdList()) { optionals.set(1); } - if (struct.isSetId()) { + if (struct.isSetEngine()) { optionals.set(2); } - oprot.writeBitSet(optionals, 3); + if (struct.isSetId()) { + optionals.set(3); + } + oprot.writeBitSet(optionals, 4); if (struct.isSetCatName()) { oprot.writeString(struct.catName); } if (struct.isSetValidWriteIdList()) { oprot.writeString(struct.validWriteIdList); } + if (struct.isSetEngine()) { + oprot.writeString(struct.engine); + } if (struct.isSetId()) { oprot.writeI64(struct.id); } @@ -1014,9 +1020,7 @@ package org.apache.hadoop.hive.metastore.api; } } struct.setColNamesIsSet(true); - struct.engine = iprot.readString(); - struct.setEngineIsSet(true); - java.util.BitSet incoming = iprot.readBitSet(3); + java.util.BitSet incoming = iprot.readBitSet(4); if (incoming.get(0)) { struct.catName = iprot.readString(); struct.setCatNameIsSet(true); @@ -1026,6 +1030,10 @@ package org.apache.hadoop.hive.metastore.api; struct.setValidWriteIdListIsSet(true); } if (incoming.get(2)) { + struct.engine = iprot.readString(); + struct.setEngineIsSet(true); + } + if (incoming.get(3)) { struct.id = iprot.readI64(); struct.setIdIsSet(true); } diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/ColumnStatistics.php b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/ColumnStatistics.php index 0387862ec87..e5f9553ef95 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/ColumnStatistics.php +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/ColumnStatistics.php @@ -64,7 +64,7 @@ class ColumnStatistics /** * @var string */ - public $engine = null; + public $engine = "hive"; public function __construct($vals = null) { diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/GetPartitionsByNamesRequest.php b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/GetPartitionsByNamesRequest.php index c06aa5ac27e..e21e5fa5ad9 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/GetPartitionsByNamesRequest.php +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/GetPartitionsByNamesRequest.php @@ -123,7 +123,7 @@ class GetPartitionsByNamesRequest /** * @var string */ - public $engine = null; + public $engine = "hive"; /** * @var string */ diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/GetTableRequest.php b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/GetTableRequest.php index 3c56331bb0f..217f5a377b2 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/GetTableRequest.php +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/GetTableRequest.php @@ -113,7 +113,7 @@ class GetTableRequest /** * @var string */ - public $engine = null; + public $engine = "hive"; /** * @var int */ diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/PartitionsStatsRequest.php b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/PartitionsStatsRequest.php index c7b3f053ae7..2c039313bd5 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/PartitionsStatsRequest.php +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/PartitionsStatsRequest.php @@ -61,7 +61,7 @@ class PartitionsStatsRequest ), 7 => array( 'var' => 'engine', - 'isRequired' => true, + 'isRequired' => false, 'type' => TType::STRING, ), ); @@ -93,7 +93,7 @@ class PartitionsStatsRequest /** * @var string */ - public $engine = null; + public $engine = "hive"; public function __construct($vals = null) { diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/SetPartitionsStatsRequest.php b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/SetPartitionsStatsRequest.php index dae3c80aa27..ca7bad0cfb2 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/SetPartitionsStatsRequest.php +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/SetPartitionsStatsRequest.php @@ -48,7 +48,7 @@ class SetPartitionsStatsRequest ), 5 => array( 'var' => 'engine', - 'isRequired' => true, + 'isRequired' => false, 'type' => TType::STRING, ), ); @@ -72,7 +72,7 @@ class SetPartitionsStatsRequest /** * @var string */ - public $engine = null; + public $engine = "hive"; public function __construct($vals = null) { diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/TableStatsRequest.php b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/TableStatsRequest.php index 00c26651ff4..00d3ebb33d9 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/TableStatsRequest.php +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-php/metastore/TableStatsRequest.php @@ -52,7 +52,7 @@ class TableStatsRequest ), 6 => array( 'var' => 'engine', - 'isRequired' => true, + 'isRequired' => false, 'type' => TType::STRING, ), 7 => array( @@ -85,7 +85,7 @@ class TableStatsRequest /** * @var string */ - public $engine = null; + public $engine = "hive"; /** * @var int */ diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py b/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py index c7fe5de1aa0..7f3c0e949ff 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-py/hive_metastore/ttypes.py @@ -6478,7 +6478,7 @@ class ColumnStatistics(object): """ - def __init__(self, statsDesc=None, statsObj=None, isStatsCompliant=None, engine=None,): + def __init__(self, statsDesc=None, statsObj=None, isStatsCompliant=None, engine="hive",): self.statsDesc = statsDesc self.statsObj = statsObj self.isStatsCompliant = isStatsCompliant @@ -7955,7 +7955,7 @@ class SetPartitionsStatsRequest(object): """ - def __init__(self, colStats=None, needMerge=None, writeId=-1, validWriteIdList=None, engine=None,): + def __init__(self, colStats=None, needMerge=None, writeId=-1, validWriteIdList=None, engine="hive",): self.colStats = colStats self.needMerge = needMerge self.writeId = writeId @@ -8041,8 +8041,6 @@ class SetPartitionsStatsRequest(object): def validate(self): if self.colStats is None: raise TProtocolException(message='Required field colStats is unset!') - if self.engine is None: - raise TProtocolException(message='Required field engine is unset!') return def __repr__(self): @@ -10466,7 +10464,7 @@ class TableStatsRequest(object): """ - def __init__(self, dbName=None, tblName=None, colNames=None, catName=None, validWriteIdList=None, engine=None, id=-1,): + def __init__(self, dbName=None, tblName=None, colNames=None, catName=None, validWriteIdList=None, engine="hive", id=-1,): self.dbName = dbName self.tblName = tblName self.colNames = colNames @@ -10575,8 +10573,6 @@ class TableStatsRequest(object): raise TProtocolException(message='Required field tblName is unset!') if self.colNames is None: raise TProtocolException(message='Required field colNames is unset!') - if self.engine is None: - raise TProtocolException(message='Required field engine is unset!') return def __repr__(self): @@ -10605,7 +10601,7 @@ class PartitionsStatsRequest(object): """ - def __init__(self, dbName=None, tblName=None, colNames=None, partNames=None, catName=None, validWriteIdList=None, engine=None,): + def __init__(self, dbName=None, tblName=None, colNames=None, partNames=None, catName=None, validWriteIdList=None, engine="hive",): self.dbName = dbName self.tblName = tblName self.colNames = colNames @@ -10724,8 +10720,6 @@ class PartitionsStatsRequest(object): raise TProtocolException(message='Required field colNames is unset!') if self.partNames is None: raise TProtocolException(message='Required field partNames is unset!') - if self.engine is None: - raise TProtocolException(message='Required field engine is unset!') return def __repr__(self): @@ -11728,7 +11722,7 @@ class GetPartitionsByNamesRequest(object): """ - def __init__(self, db_name=None, tbl_name=None, names=None, get_col_stats=None, processorCapabilities=None, processorIdentifier=None, engine=None, validWriteIdList=None, getFileMetadata=None, id=-1, skipColumnSchemaForPartition=None, includeParamKeyPattern=None, excludeParamKeyPattern=None,): + def __init__(self, db_name=None, tbl_name=None, names=None, get_col_stats=None, processorCapabilities=None, processorIdentifier=None, engine="hive", validWriteIdList=None, getFileMetadata=None, id=-1, skipColumnSchemaForPartition=None, includeParamKeyPattern=None, excludeParamKeyPattern=None,): self.db_name = db_name self.tbl_name = tbl_name self.names = names @@ -20259,7 +20253,7 @@ class GetTableRequest(object): """ - def __init__(self, dbName=None, tblName=None, capabilities=None, catName=None, validWriteIdList=None, getColumnStats=None, processorCapabilities=None, processorIdentifier=None, engine=None, id=-1,): + def __init__(self, dbName=None, tblName=None, capabilities=None, catName=None, validWriteIdList=None, getColumnStats=None, processorCapabilities=None, processorIdentifier=None, engine="hive", id=-1,): self.dbName = dbName self.tblName = tblName self.capabilities = capabilities @@ -31727,7 +31721,7 @@ ColumnStatistics.thrift_spec = ( (1, TType.STRUCT, 'statsDesc', [ColumnStatisticsDesc, None], None, ), # 1 (2, TType.LIST, 'statsObj', (TType.STRUCT, [ColumnStatisticsObj, None], False), None, ), # 2 (3, TType.BOOL, 'isStatsCompliant', None, None, ), # 3 - (4, TType.STRING, 'engine', 'UTF8', None, ), # 4 + (4, TType.STRING, 'engine', 'UTF8', "hive", ), # 4 ) all_structs.append(FileMetadata) FileMetadata.thrift_spec = ( @@ -31845,7 +31839,7 @@ SetPartitionsStatsRequest.thrift_spec = ( (2, TType.BOOL, 'needMerge', None, None, ), # 2 (3, TType.I64, 'writeId', None, -1, ), # 3 (4, TType.STRING, 'validWriteIdList', 'UTF8', None, ), # 4 - (5, TType.STRING, 'engine', 'UTF8', None, ), # 5 + (5, TType.STRING, 'engine', 'UTF8', "hive", ), # 5 ) all_structs.append(SetPartitionsStatsResponse) SetPartitionsStatsResponse.thrift_spec = ( @@ -32044,7 +32038,7 @@ TableStatsRequest.thrift_spec = ( (3, TType.LIST, 'colNames', (TType.STRING, 'UTF8', False), None, ), # 3 (4, TType.STRING, 'catName', 'UTF8', None, ), # 4 (5, TType.STRING, 'validWriteIdList', 'UTF8', None, ), # 5 - (6, TType.STRING, 'engine', 'UTF8', None, ), # 6 + (6, TType.STRING, 'engine', 'UTF8', "hive", ), # 6 (7, TType.I64, 'id', None, -1, ), # 7 ) all_structs.append(PartitionsStatsRequest) @@ -32056,7 +32050,7 @@ PartitionsStatsRequest.thrift_spec = ( (4, TType.LIST, 'partNames', (TType.STRING, 'UTF8', False), None, ), # 4 (5, TType.STRING, 'catName', 'UTF8', None, ), # 5 (6, TType.STRING, 'validWriteIdList', 'UTF8', None, ), # 6 - (7, TType.STRING, 'engine', 'UTF8', None, ), # 7 + (7, TType.STRING, 'engine', 'UTF8', "hive", ), # 7 ) all_structs.append(AddPartitionsResult) AddPartitionsResult.thrift_spec = ( @@ -32142,7 +32136,7 @@ GetPartitionsByNamesRequest.thrift_spec = ( (4, TType.BOOL, 'get_col_stats', None, None, ), # 4 (5, TType.LIST, 'processorCapabilities', (TType.STRING, 'UTF8', False), None, ), # 5 (6, TType.STRING, 'processorIdentifier', 'UTF8', None, ), # 6 - (7, TType.STRING, 'engine', 'UTF8', None, ), # 7 + (7, TType.STRING, 'engine', 'UTF8', "hive", ), # 7 (8, TType.STRING, 'validWriteIdList', 'UTF8', None, ), # 8 (9, TType.BOOL, 'getFileMetadata', None, None, ), # 9 (10, TType.I64, 'id', None, -1, ), # 10 @@ -32834,7 +32828,7 @@ GetTableRequest.thrift_spec = ( (7, TType.BOOL, 'getColumnStats', None, None, ), # 7 (8, TType.LIST, 'processorCapabilities', (TType.STRING, 'UTF8', False), None, ), # 8 (9, TType.STRING, 'processorIdentifier', 'UTF8', None, ), # 9 - (10, TType.STRING, 'engine', 'UTF8', None, ), # 10 + (10, TType.STRING, 'engine', 'UTF8', "hive", ), # 10 (11, TType.I64, 'id', None, -1, ), # 11 ) all_structs.append(GetTableResult) diff --git a/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb b/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb index 634f58351bb..b5fcabee250 100644 --- a/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb +++ b/standalone-metastore/metastore-common/src/gen/thrift/gen-rb/hive_metastore_types.rb @@ -2342,7 +2342,7 @@ class ColumnStatistics STATSDESC => {:type => ::Thrift::Types::STRUCT, :name => 'statsDesc', :class => ::ColumnStatisticsDesc}, STATSOBJ => {:type => ::Thrift::Types::LIST, :name => 'statsObj', :element => {:type => ::Thrift::Types::STRUCT, :class => ::ColumnStatisticsObj}}, ISSTATSCOMPLIANT => {:type => ::Thrift::Types::BOOL, :name => 'isStatsCompliant', :optional => true}, - ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine', :optional => true} + ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine', :default => %q"hive", :optional => true} } def struct_fields; FIELDS; end @@ -2656,14 +2656,13 @@ class SetPartitionsStatsRequest NEEDMERGE => {:type => ::Thrift::Types::BOOL, :name => 'needMerge', :optional => true}, WRITEID => {:type => ::Thrift::Types::I64, :name => 'writeId', :default => -1, :optional => true}, VALIDWRITEIDLIST => {:type => ::Thrift::Types::STRING, :name => 'validWriteIdList', :optional => true}, - ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine'} + ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine', :default => %q"hive", :optional => true} } def struct_fields; FIELDS; end def validate raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field colStats is unset!') unless @colStats - raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field engine is unset!') unless @engine end ::Thrift::Struct.generate_accessors self @@ -3274,7 +3273,7 @@ class TableStatsRequest COLNAMES => {:type => ::Thrift::Types::LIST, :name => 'colNames', :element => {:type => ::Thrift::Types::STRING}}, CATNAME => {:type => ::Thrift::Types::STRING, :name => 'catName', :optional => true}, VALIDWRITEIDLIST => {:type => ::Thrift::Types::STRING, :name => 'validWriteIdList', :optional => true}, - ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine'}, + ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine', :default => %q"hive", :optional => true}, ID => {:type => ::Thrift::Types::I64, :name => 'id', :default => -1, :optional => true} } @@ -3284,7 +3283,6 @@ class TableStatsRequest raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field dbName is unset!') unless @dbName raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field tblName is unset!') unless @tblName raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field colNames is unset!') unless @colNames - raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field engine is unset!') unless @engine end ::Thrift::Struct.generate_accessors self @@ -3307,7 +3305,7 @@ class PartitionsStatsRequest PARTNAMES => {:type => ::Thrift::Types::LIST, :name => 'partNames', :element => {:type => ::Thrift::Types::STRING}}, CATNAME => {:type => ::Thrift::Types::STRING, :name => 'catName', :optional => true}, VALIDWRITEIDLIST => {:type => ::Thrift::Types::STRING, :name => 'validWriteIdList', :optional => true}, - ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine'} + ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine', :default => %q"hive", :optional => true} } def struct_fields; FIELDS; end @@ -3317,7 +3315,6 @@ class PartitionsStatsRequest raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field tblName is unset!') unless @tblName raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field colNames is unset!') unless @colNames raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field partNames is unset!') unless @partNames - raise ::Thrift::ProtocolException.new(::Thrift::ProtocolException::UNKNOWN, 'Required field engine is unset!') unless @engine end ::Thrift::Struct.generate_accessors self @@ -3574,7 +3571,7 @@ class GetPartitionsByNamesRequest GET_COL_STATS => {:type => ::Thrift::Types::BOOL, :name => 'get_col_stats', :optional => true}, PROCESSORCAPABILITIES => {:type => ::Thrift::Types::LIST, :name => 'processorCapabilities', :element => {:type => ::Thrift::Types::STRING}, :optional => true}, PROCESSORIDENTIFIER => {:type => ::Thrift::Types::STRING, :name => 'processorIdentifier', :optional => true}, - ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine', :optional => true}, + ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine', :default => %q"hive", :optional => true}, VALIDWRITEIDLIST => {:type => ::Thrift::Types::STRING, :name => 'validWriteIdList', :optional => true}, GETFILEMETADATA => {:type => ::Thrift::Types::BOOL, :name => 'getFileMetadata', :optional => true}, ID => {:type => ::Thrift::Types::I64, :name => 'id', :default => -1, :optional => true}, @@ -5705,7 +5702,7 @@ class GetTableRequest GETCOLUMNSTATS => {:type => ::Thrift::Types::BOOL, :name => 'getColumnStats', :optional => true}, PROCESSORCAPABILITIES => {:type => ::Thrift::Types::LIST, :name => 'processorCapabilities', :element => {:type => ::Thrift::Types::STRING}, :optional => true}, PROCESSORIDENTIFIER => {:type => ::Thrift::Types::STRING, :name => 'processorIdentifier', :optional => true}, - ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine', :optional => true}, + ENGINE => {:type => ::Thrift::Types::STRING, :name => 'engine', :default => %q"hive", :optional => true}, ID => {:type => ::Thrift::Types::I64, :name => 'id', :default => -1, :optional => true} } diff --git a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java index 9b7cbb82df6..7d484bf44cd 100644 --- a/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java +++ b/standalone-metastore/metastore-common/src/main/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClient.java @@ -1272,7 +1272,8 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable { List<String> colNames, String engine, String validWriteIdList) throws NoSuchObjectException, MetaException, TException { PartitionsStatsRequest rqst = new PartitionsStatsRequest(dbName, tableName, colNames, - partNames == null ? new ArrayList<String>() : partNames, engine); + partNames == null ? new ArrayList<String>() : partNames); + rqst.setEngine(engine); rqst.setCatName(catName); rqst.setValidWriteIdList(validWriteIdList); return client.get_partitions_statistics_req(rqst).getPartStats(); @@ -1297,7 +1298,8 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable { LOG.debug("Columns is empty or partNames is empty : Short-circuiting stats eval on client side."); return new AggrStats(new ArrayList<>(), 0); // Nothing to aggregate } - PartitionsStatsRequest req = new PartitionsStatsRequest(dbName, tblName, colNames, partNames, engine); + PartitionsStatsRequest req = new PartitionsStatsRequest(dbName, tblName, colNames, partNames); + req.setEngine(engine); req.setCatName(catName); req.setValidWriteIdList(writeIdList); @@ -3446,7 +3448,8 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable { if (colNames.isEmpty()) { return Collections.emptyList(); } - TableStatsRequest rqst = new TableStatsRequest(dbName, tableName, colNames, engine); + TableStatsRequest rqst = new TableStatsRequest(dbName, tableName, colNames); + rqst.setEngine(engine); rqst.setCatName(catName); rqst.setEngine(engine); return getTableColumnStatisticsInternal(rqst).getTableStats(); @@ -3479,7 +3482,7 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable { if (colNames.isEmpty()) { return Collections.emptyList(); } - TableStatsRequest rqst = new TableStatsRequest(dbName, tableName, colNames, engine); + TableStatsRequest rqst = new TableStatsRequest(dbName, tableName, colNames); rqst.setEngine(engine); rqst.setCatName(catName); rqst.setValidWriteIdList(validWriteIdList); @@ -3505,8 +3508,8 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable { public Map<String, List<ColumnStatisticsObj>> getPartitionColumnStatistics( String catName, String dbName, String tableName, List<String> partNames, List<String> colNames, String engine) throws TException { - PartitionsStatsRequest rqst = new PartitionsStatsRequest(dbName, tableName, colNames, - partNames, engine); + PartitionsStatsRequest rqst = new PartitionsStatsRequest(dbName, tableName, colNames, partNames); + rqst.setEngine(engine); rqst.setCatName(catName); rqst.setValidWriteIdList(getValidWriteIdList(dbName, tableName)); return client.get_partitions_statistics_req(rqst).getPartStats(); @@ -4659,7 +4662,8 @@ public class HiveMetaStoreClient implements IMetaStoreClient, AutoCloseable { LOG.debug("Columns is empty or partNames is empty : Short-circuiting stats eval on client side."); return new AggrStats(new ArrayList<>(), 0); // Nothing to aggregate } - PartitionsStatsRequest req = new PartitionsStatsRequest(dbName, tblName, colNames, partNames, engine); + PartitionsStatsRequest req = new PartitionsStatsRequest(dbName, tblName, colNames, partNames); + req.setEngine(engine); req.setCatName(catName); req.setValidWriteIdList(getValidWriteIdList(dbName, tblName)); diff --git a/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift b/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift index 422f23fdfff..cbe1d5c96b3 100644 --- a/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift +++ b/standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift @@ -600,7 +600,7 @@ struct ColumnStatistics { 2: required list<ColumnStatisticsObj> statsObj, 3: optional bool isStatsCompliant, // Are the stats isolation-level-compliant with the // the calling query? -4: optional string engine +4: optional string engine = "hive" } // FileMetadata represents the table-level (in case of unpartitioned) or partition-level @@ -725,7 +725,7 @@ struct SetPartitionsStatsRequest { 2: optional bool needMerge, //stats need to be merged with the existing stats 3: optional i64 writeId=-1, // writeId for the current query that updates the stats 4: optional string validWriteIdList, // valid write id list for the table for which this struct is being sent -5: required string engine //engine creating the current request +5: optional string engine = "hive" //engine creating the current request } struct SetPartitionsStatsResponse { @@ -901,7 +901,7 @@ struct TableStatsRequest { 3: required list<string> colNames 4: optional string catName, 5: optional string validWriteIdList, // valid write id list for the table for which this struct is being sent - 6: required string engine, //engine creating the current request + 6: optional string engine = "hive", //engine creating the current request 7: optional i64 id=-1 // table id } @@ -912,7 +912,7 @@ struct PartitionsStatsRequest { 4: required list<string> partNames, 5: optional string catName, 6: optional string validWriteIdList, // valid write id list for the table for which this struct is being sent - 7: required string engine //engine creating the current request + 7: optional string engine = "hive" //engine creating the current request } // Return type for add_partitions_req @@ -993,7 +993,7 @@ struct GetPartitionsByNamesRequest { 4: optional bool get_col_stats, 5: optional list<string> processorCapabilities, 6: optional string processorIdentifier, - 7: optional string engine, + 7: optional string engine = "hive", 8: optional string validWriteIdList, 9: optional bool getFileMetadata, 10: optional i64 id=-1, // table id @@ -1710,7 +1710,7 @@ struct GetTableRequest { 7: optional bool getColumnStats, 8: optional list<string> processorCapabilities, 9: optional string processorIdentifier, - 10: optional string engine, + 10: optional string engine = "hive", 11: optional i64 id=-1 // table id } diff --git a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientPreCatalog.java b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientPreCatalog.java index 96695ee1eaa..07b4f25c3bc 100644 --- a/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientPreCatalog.java +++ b/standalone-metastore/metastore-server/src/test/java/org/apache/hadoop/hive/metastore/HiveMetaStoreClientPreCatalog.java @@ -1918,15 +1918,17 @@ public class HiveMetaStoreClientPreCatalog implements IMetaStoreClient, AutoClos public List<ColumnStatisticsObj> getTableColumnStatistics(String dbName, String tableName, List<String> colNames, String engine) throws NoSuchObjectException, MetaException, TException, InvalidInputException, InvalidObjectException { - return client.get_table_statistics_req( - new TableStatsRequest(dbName, tableName, colNames, engine)).getTableStats(); + TableStatsRequest tsr = new TableStatsRequest(dbName, tableName, colNames); + tsr.setEngine(engine); + return client.get_table_statistics_req(new TableStatsRequest(tsr)).getTableStats(); } @Override public List<ColumnStatisticsObj> getTableColumnStatistics( String dbName, String tableName, List<String> colNames, String engine, String validWriteIdList) throws NoSuchObjectException, MetaException, TException { - TableStatsRequest tsr = new TableStatsRequest(dbName, tableName, colNames, engine); + TableStatsRequest tsr = new TableStatsRequest(dbName, tableName, colNames); + tsr.setEngine(engine); tsr.setValidWriteIdList(validWriteIdList); return client.get_table_statistics_req(tsr).getTableStats(); @@ -1937,8 +1939,9 @@ public class HiveMetaStoreClientPreCatalog implements IMetaStoreClient, AutoClos public Map<String, List<ColumnStatisticsObj>> getPartitionColumnStatistics( String dbName, String tableName, List<String> partNames, List<String> colNames, String engine) throws NoSuchObjectException, MetaException, TException { - return client.get_partitions_statistics_req( - new PartitionsStatsRequest(dbName, tableName, colNames, partNames, engine)).getPartStats(); + PartitionsStatsRequest psr = new PartitionsStatsRequest(dbName, tableName, colNames, partNames); + psr.setEngine(engine); + return client.get_partitions_statistics_req(new PartitionsStatsRequest(psr)).getPartStats(); } @Override @@ -1946,7 +1949,8 @@ public class HiveMetaStoreClientPreCatalog implements IMetaStoreClient, AutoClos String dbName, String tableName, List<String> partNames, List<String> colNames, String engine, String validWriteIdList) throws NoSuchObjectException, MetaException, TException { - PartitionsStatsRequest psr = new PartitionsStatsRequest(dbName, tableName, colNames, partNames, engine); + PartitionsStatsRequest psr = new PartitionsStatsRequest(dbName, tableName, colNames, partNames); + psr.setEngine(engine); psr.setValidWriteIdList(validWriteIdList); return client.get_partitions_statistics_req( psr).getPartStats(); @@ -2945,7 +2949,8 @@ public class HiveMetaStoreClientPreCatalog implements IMetaStoreClient, AutoClos LOG.debug("Columns is empty or partNames is empty : Short-circuiting stats eval on client side."); return new AggrStats(new ArrayList<>(),0); // Nothing to aggregate } - PartitionsStatsRequest req = new PartitionsStatsRequest(dbName, tblName, colNames, partNames, engine); + PartitionsStatsRequest req = new PartitionsStatsRequest(dbName, tblName, colNames, partNames); + req.setEngine(engine); return client.get_aggr_stats_for(req); } @@ -2958,7 +2963,8 @@ public class HiveMetaStoreClientPreCatalog implements IMetaStoreClient, AutoClos LOG.debug("Columns is empty or partNames is empty : Short-circuiting stats eval on client side."); return new AggrStats(new ArrayList<>(),0); // Nothing to aggregate } - PartitionsStatsRequest req = new PartitionsStatsRequest(dbName, tblName, colNames, partName, engine); + PartitionsStatsRequest req = new PartitionsStatsRequest(dbName, tblName, colNames, partName); + req.setEngine(engine); req.setValidWriteIdList(writeIdList); return client.get_aggr_stats_for(req); }