fix lob macro block logic id duplicate after direct load.
This commit is contained in:
@ -264,7 +264,9 @@ public:
|
||||
class ObDDLInsertRowIterator : public ObIStoreRowIterator
|
||||
{
|
||||
public:
|
||||
ObDDLInsertRowIterator(
|
||||
ObDDLInsertRowIterator();
|
||||
virtual ~ObDDLInsertRowIterator();
|
||||
int init(
|
||||
sql::ObPxMultiPartSSTableInsertOp *op,
|
||||
const bool is_slice_empty,
|
||||
const share::ObLSID &ls_id,
|
||||
@ -273,15 +275,14 @@ public:
|
||||
const int64_t snapshot_version,
|
||||
const int64_t context_id,
|
||||
const int64_t parallel_idx);
|
||||
virtual ~ObDDLInsertRowIterator();
|
||||
virtual int get_next_row(const blocksstable::ObDatumRow *&row) override
|
||||
{
|
||||
const bool skip_lob = false;
|
||||
return get_next_row(skip_lob, row);
|
||||
}
|
||||
int get_next_row(const bool skip_lob, const blocksstable::ObDatumRow *&row);
|
||||
TO_STRING_KV(K_(ls_id), K_(current_tablet_id), K_(current_row), K_(is_slice_empty), K_(is_next_row_cached), K_(rowkey_count), K_(snapshot_version),
|
||||
K_(lob_slice_id), K_(lob_id_cache), K_(context_id));
|
||||
TO_STRING_KV(K_(is_inited), K_(ls_id), K_(current_tablet_id), K_(current_row), K_(is_slice_empty), K_(is_next_row_cached), K_(rowkey_count), K_(snapshot_version),
|
||||
K_(lob_slice_id), K_(lob_id_cache), K_(context_id), K_(macro_seq));
|
||||
public:
|
||||
int switch_to_new_lob_slice();
|
||||
int close_lob_sstable_slice();
|
||||
@ -289,6 +290,7 @@ public:
|
||||
inline share::ObTabletCacheInterval &get_lob_id_cache() { return lob_id_cache_; }
|
||||
private:
|
||||
static const int64_t AUTO_INC_CACHE_SIZE = 5000000; // 500w.
|
||||
bool is_inited_;
|
||||
ObArenaAllocator lob_allocator_;
|
||||
sql::ObPxMultiPartSSTableInsertOp *op_;
|
||||
share::ObLSID ls_id_;
|
||||
@ -301,7 +303,7 @@ private:
|
||||
int64_t lob_slice_id_;
|
||||
share::ObTabletCacheInterval lob_id_cache_;
|
||||
int64_t context_id_;
|
||||
int64_t parallel_idx_;
|
||||
blocksstable::ObMacroDataSeq macro_seq_;
|
||||
};
|
||||
|
||||
class ObLobMetaRowIterator : public ObIStoreRowIterator
|
||||
@ -393,6 +395,7 @@ public:
|
||||
virtual int append_row(const blocksstable::ObDatumRow &datum_row) = 0;
|
||||
virtual int close() = 0;
|
||||
virtual int64_t get_row_count() const { return 0; } // dummy one
|
||||
virtual int64_t get_next_block_start_seq() const { return -1; } // invalid block start seq.
|
||||
DECLARE_PURE_VIRTUAL_TO_STRING;
|
||||
};
|
||||
|
||||
@ -438,6 +441,7 @@ public:
|
||||
const share::SCN &start_scn);
|
||||
virtual int append_row(const blocksstable::ObDatumRow &datum_row) override;
|
||||
virtual int close() override;
|
||||
virtual int64_t get_next_block_start_seq() const override { return macro_block_writer_.get_last_macro_seq(); }
|
||||
TO_STRING_KV(K(is_inited_), K(macro_block_writer_));
|
||||
private:
|
||||
bool is_inited_;
|
||||
@ -510,6 +514,7 @@ public:
|
||||
bool need_column_store() const { return need_column_store_; }
|
||||
ObTabletSliceStore *get_slice_store() const { return slice_store_; }
|
||||
void cancel() { ATOMIC_SET(&is_canceled_, true); }
|
||||
int64_t get_next_block_start_seq() const { return nullptr == slice_store_ ? 0 /*slice empty*/ : slice_store_->get_next_block_start_seq(); }
|
||||
TO_STRING_KV(K(is_inited_), K(need_column_store_), K(is_canceled_), K(start_seq_), KPC(slice_store_), K(row_offset_));
|
||||
private:
|
||||
int fill_lob_into_memtable( // for version < 4.3.0.0
|
||||
|
||||
Reference in New Issue
Block a user