Fix direct load fast heap table cmp funcs
This commit is contained in:
@ -202,6 +202,7 @@ int ObTableLoadTransStoreWriter::init_session_ctx_array()
|
||||
param.table_data_desc_ = *table_data_desc_;
|
||||
param.datum_utils_ = &(trans_ctx_->ctx_->schema_.datum_utils_);
|
||||
param.col_descs_ = &(trans_ctx_->ctx_->schema_.column_descs_);
|
||||
param.cmp_funcs_ = &(trans_ctx_->ctx_->schema_.cmp_funcs_);
|
||||
param.file_mgr_ = trans_ctx_->ctx_->store_ctx_->tmp_file_mgr_;
|
||||
param.is_multiple_mode_ = trans_ctx_->ctx_->store_ctx_->is_multiple_mode_;
|
||||
param.is_fast_heap_table_ = trans_ctx_->ctx_->store_ctx_->is_fast_heap_table_;
|
||||
|
@ -29,6 +29,7 @@ ObDirectLoadFastHeapTableBuildParam::ObDirectLoadFastHeapTableBuildParam()
|
||||
: snapshot_version_(0),
|
||||
datum_utils_(nullptr),
|
||||
col_descs_(nullptr),
|
||||
cmp_funcs_(nullptr),
|
||||
insert_table_ctx_(nullptr),
|
||||
fast_heap_table_ctx_(nullptr),
|
||||
dml_row_handler_(nullptr),
|
||||
@ -43,8 +44,8 @@ ObDirectLoadFastHeapTableBuildParam::~ObDirectLoadFastHeapTableBuildParam()
|
||||
bool ObDirectLoadFastHeapTableBuildParam::is_valid() const
|
||||
{
|
||||
return tablet_id_.is_valid() && snapshot_version_ > 0 && table_data_desc_.is_valid() &&
|
||||
nullptr != col_descs_ && nullptr != insert_table_ctx_ && nullptr != fast_heap_table_ctx_ &&
|
||||
nullptr != dml_row_handler_ && nullptr != datum_utils_;
|
||||
nullptr != col_descs_ && nullptr != cmp_funcs_ && nullptr != insert_table_ctx_ &&
|
||||
nullptr != fast_heap_table_ctx_ && nullptr != dml_row_handler_ && nullptr != datum_utils_;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -106,9 +107,8 @@ int ObDirectLoadFastHeapTableBuilder::collect_obj(const ObDatumRow &datum_row)
|
||||
for (int64_t i = 0; OB_SUCC(ret) && i < param_.table_data_desc_.column_count_; i++) {
|
||||
const ObStorageDatum &datum =
|
||||
datum_row.storage_datums_[i + extra_rowkey_cnt + 1];
|
||||
const common::ObCmpFunc &cmp_func = param_.datum_utils_->get_cmp_funcs().at(
|
||||
i + extra_rowkey_cnt + 1).get_cmp_func();
|
||||
const ObColDesc &col_desc = param_.col_descs_->at(i + 1);
|
||||
const ObCmpFunc &cmp_func = param_.cmp_funcs_->at(i + 1).get_cmp_func();
|
||||
ObOptOSGColumnStat *col_stat = column_stat_array_.at(i);
|
||||
bool is_valid = ObColumnStatParam::is_valid_opt_col_type(col_desc.col_type_.get_type());
|
||||
if (col_stat != nullptr && is_valid) {
|
||||
|
@ -32,14 +32,16 @@ public:
|
||||
ObDirectLoadFastHeapTableBuildParam();
|
||||
~ObDirectLoadFastHeapTableBuildParam();
|
||||
bool is_valid() const;
|
||||
TO_STRING_KV(K_(tablet_id), K_(snapshot_version), K_(table_data_desc), KP_(insert_table_ctx),
|
||||
KP_(fast_heap_table_ctx), KP_(dml_row_handler), K_(online_opt_stat_gather));
|
||||
TO_STRING_KV(K_(tablet_id), K_(snapshot_version), K_(table_data_desc), KP_(datum_utils),
|
||||
KP_(col_descs), KP_(cmp_funcs), KP_(insert_table_ctx), KP_(fast_heap_table_ctx),
|
||||
KP_(dml_row_handler), K_(online_opt_stat_gather));
|
||||
public:
|
||||
common::ObTabletID tablet_id_;
|
||||
int64_t snapshot_version_;
|
||||
ObDirectLoadTableDataDesc table_data_desc_;
|
||||
const blocksstable::ObStorageDatumUtils *datum_utils_;
|
||||
const common::ObIArray<share::schema::ObColDesc> *col_descs_;
|
||||
const blocksstable::ObStoreCmpFuncs *cmp_funcs_;
|
||||
ObDirectLoadInsertTableContext *insert_table_ctx_;
|
||||
ObDirectLoadFastHeapTableContext *fast_heap_table_ctx_;
|
||||
ObDirectLoadDMLRowHandler *dml_row_handler_;
|
||||
|
@ -27,6 +27,8 @@ using namespace table;
|
||||
ObDirectLoadTableStoreParam::ObDirectLoadTableStoreParam()
|
||||
: snapshot_version_(0),
|
||||
datum_utils_(nullptr),
|
||||
col_descs_(nullptr),
|
||||
cmp_funcs_(nullptr),
|
||||
file_mgr_(nullptr),
|
||||
is_multiple_mode_(false),
|
||||
is_fast_heap_table_(false),
|
||||
@ -45,7 +47,7 @@ ObDirectLoadTableStoreParam::~ObDirectLoadTableStoreParam()
|
||||
bool ObDirectLoadTableStoreParam::is_valid() const
|
||||
{
|
||||
return snapshot_version_ > 0 && table_data_desc_.is_valid() && nullptr != datum_utils_ &&
|
||||
nullptr != file_mgr_ &&
|
||||
nullptr != col_descs_ && nullptr != cmp_funcs_ && nullptr != file_mgr_ &&
|
||||
(!is_fast_heap_table_ ||
|
||||
(nullptr != insert_table_ctx_ && nullptr != fast_heap_table_ctx_)) &&
|
||||
nullptr != dml_row_handler_;
|
||||
@ -103,6 +105,7 @@ int ObDirectLoadTableStoreBucket::init(const ObDirectLoadTableStoreParam ¶m,
|
||||
fast_heap_table_build_param.table_data_desc_ = param.table_data_desc_;
|
||||
fast_heap_table_build_param.datum_utils_ = param.datum_utils_;
|
||||
fast_heap_table_build_param.col_descs_ = param.col_descs_;
|
||||
fast_heap_table_build_param.cmp_funcs_ = param.cmp_funcs_;
|
||||
fast_heap_table_build_param.insert_table_ctx_ = param.insert_table_ctx_;
|
||||
fast_heap_table_build_param.fast_heap_table_ctx_ = param.fast_heap_table_ctx_;
|
||||
fast_heap_table_build_param.dml_row_handler_ = param.dml_row_handler_;
|
||||
|
@ -28,13 +28,15 @@ public:
|
||||
~ObDirectLoadTableStoreParam();
|
||||
bool is_valid() const;
|
||||
TO_STRING_KV(K_(snapshot_version), K_(table_data_desc), KP_(datum_utils), KP_(col_descs),
|
||||
KP_(file_mgr), K_(is_multiple_mode), K_(is_fast_heap_table), KP_(insert_table_ctx),
|
||||
KP_(fast_heap_table_ctx), KP_(dml_row_handler), KP_(extra_buf), K_(extra_buf_size));
|
||||
KP_(cmp_funcs), KP_(file_mgr), K_(is_multiple_mode), K_(is_fast_heap_table),
|
||||
KP_(insert_table_ctx), KP_(fast_heap_table_ctx), KP_(dml_row_handler),
|
||||
KP_(extra_buf), K_(extra_buf_size));
|
||||
public:
|
||||
int64_t snapshot_version_;
|
||||
ObDirectLoadTableDataDesc table_data_desc_;
|
||||
const blocksstable::ObStorageDatumUtils *datum_utils_;
|
||||
const common::ObIArray<share::schema::ObColDesc> *col_descs_;
|
||||
const blocksstable::ObStoreCmpFuncs *cmp_funcs_;
|
||||
ObDirectLoadTmpFileManager *file_mgr_;
|
||||
bool is_multiple_mode_;
|
||||
bool is_fast_heap_table_;
|
||||
|
Reference in New Issue
Block a user