This is an automated email from the ASF dual-hosted git repository.
alexey pushed a commit to branch branch-1.11.x
in repository https://gitbox.apache.org/repos/asf/kudu.git
The following commit(s) were added to refs/heads/branch-1.11.x by this push:
new 6afb57d [common] Use EncodeKeyImpl() to handle different RowType
6afb57d is described below
commit 6afb57d04e1e29de74682cb5492cc721670c82d8
Author: lingbin <[email protected]>
AuthorDate: Wed Oct 16 15:38:25 2019 +0800
[common] Use EncodeKeyImpl() to handle different RowType
For different RowType, the processing logic in two overloaded
EncodeRow() is duplicated.
Change-Id: I5daf09a09c8916da1307b598be708588aa842803
Reviewed-on: http://gerrit.cloudera.org:8080/14461
Reviewed-by: Adar Dembo <[email protected]>
Tested-by: Adar Dembo <[email protected]>
(cherry picked from commit eedcbb1bffa32ee25573673ae55db27118d1d732)
Reviewed-on: http://gerrit.cloudera.org:8080/14492
Reviewed-by: Grant Henke <[email protected]>
Tested-by: Kudu Jenkins
---
src/kudu/common/partition.cc | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)
diff --git a/src/kudu/common/partition.cc b/src/kudu/common/partition.cc
index f406965..7bcfd34 100644
--- a/src/kudu/common/partition.cc
+++ b/src/kudu/common/partition.cc
@@ -198,7 +198,8 @@ void PartitionSchema::ToPB(PartitionSchemaPB* pb) const {
SetColumnIdentifiers(range_schema_.column_ids,
pb->mutable_range_schema()->mutable_columns());
}
-Status PartitionSchema::EncodeKey(const KuduPartialRow& row, string* buf)
const {
+template<typename Row>
+Status PartitionSchema::EncodeKeyImpl(const Row& row, string* buf) const {
const KeyEncoder<string>& hash_encoder =
GetKeyEncoder<string>(GetTypeInfo(UINT32));
for (const HashBucketSchema& hash_bucket_schema : hash_bucket_schemas_) {
@@ -210,16 +211,12 @@ Status PartitionSchema::EncodeKey(const KuduPartialRow&
row, string* buf) const
return EncodeColumns(row, range_schema_.column_ids, buf);
}
-Status PartitionSchema::EncodeKey(const ConstContiguousRow& row, string* buf)
const {
- const KeyEncoder<string>& hash_encoder =
GetKeyEncoder<string>(GetTypeInfo(UINT32));
-
- for (const HashBucketSchema& hash_bucket_schema : hash_bucket_schemas_) {
- int32_t bucket;
- RETURN_NOT_OK(BucketForRow(row, hash_bucket_schema, &bucket));
- hash_encoder.Encode(&bucket, buf);
- }
+Status PartitionSchema::EncodeKey(const KuduPartialRow& row, string* buf)
const {
+ return EncodeKeyImpl(row, buf);
+}
- return EncodeColumns(row, range_schema_.column_ids, buf);
+Status PartitionSchema::EncodeKey(const ConstContiguousRow& row, string* buf)
const {
+ return EncodeKeyImpl(row, buf);
}
Status PartitionSchema::EncodeRangeKey(const KuduPartialRow& row,