From 1a2f80568a9252d61944a0f753f8fd7f906f6bb0 Mon Sep 17 00:00:00 2001 From: chaoyli Date: Fri, 21 Jun 2019 10:21:02 +0800 Subject: [PATCH] Set version for base_compaction Upon base compaction, delete handler use version to init del_pred_array, So the version should be set. --- be/src/olap/merger.cpp | 4 ++++ be/src/olap/merger.h | 1 - be/src/olap/reader.cpp | 1 + be/src/olap/reader.h | 7 +++++++ 4 files changed, 12 insertions(+), 1 deletion(-) diff --git a/be/src/olap/merger.cpp b/be/src/olap/merger.cpp index 44027f76007673..610bfee55147ee 100644 --- a/be/src/olap/merger.cpp +++ b/be/src/olap/merger.cpp @@ -49,6 +49,10 @@ OLAPStatus Merger::merge(const vector& rs_readers, reader_params.reader_type = _reader_type; reader_params.rs_readers = rs_readers; + if (_reader_type == READER_BASE_COMPACTION) { + reader_params.version = _rs_writer->version(); + } + if (OLAP_SUCCESS != reader.init(reader_params)) { LOG(WARNING) << "fail to initiate reader. tablet=" << _tablet->full_name(); return OLAP_ERR_INIT_FAILED; diff --git a/be/src/olap/merger.h b/be/src/olap/merger.h index b057eba9cae48c..946a2086455cbf 100644 --- a/be/src/olap/merger.h +++ b/be/src/olap/merger.h @@ -49,7 +49,6 @@ class Merger { RowsetWriterSharedPtr _rs_writer; ReaderType _reader_type; uint64_t _row_count; - Version _simple_merge_version; DISALLOW_COPY_AND_ASSIGN(Merger); }; diff --git a/be/src/olap/reader.cpp b/be/src/olap/reader.cpp index 5abb24770f6785..464b4ba2c50964 100644 --- a/be/src/olap/reader.cpp +++ b/be/src/olap/reader.cpp @@ -560,6 +560,7 @@ OLAPStatus Reader::_capture_rs_readers(const ReaderParams& read_params) { } OLAPStatus Reader::_init_params(const ReaderParams& read_params) { + read_params.check_validation(); OLAPStatus res = OLAP_SUCCESS; _aggregation = read_params.aggregation; _reader_type = read_params.reader_type; diff --git a/be/src/olap/reader.h b/be/src/olap/reader.h index 21c67641a016d6..2ae14ccfef2295 100644 --- a/be/src/olap/reader.h +++ b/be/src/olap/reader.h @@ -69,6 +69,7 @@ struct ReaderParams { ReaderParams() : reader_type(READER_QUERY), aggregation(false), + version(-1, 0), profile(NULL), runtime_state(NULL) { start_key.clear(); @@ -77,6 +78,12 @@ struct ReaderParams { rs_readers.clear(); } + void check_validation() const { + if (version.first == -1) { + LOG(FATAL) << "verison is not set. tablet=" << tablet->full_name(); + } + } + std::string to_string() { std::stringstream ss;