Files
oceanbase/unittest/storage/mock_ob_partition.h

331 lines
8.2 KiB
C++

/**
* Copyright (c) 2021 OceanBase
* OceanBase CE is licensed under Mulan PubL v2.
* You can use this software according to the terms and conditions of the Mulan PubL v2.
* You may obtain a copy of Mulan PubL v2 at:
* http://license.coscl.org.cn/MulanPubL-2.0
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
* See the Mulan PubL v2 for more details.
*/
#ifndef OCEANBASE_STORAGE_MOCK_OB_PARTITION_H_
#define OCEANBASE_STORAGE_MOCK_OB_PARTITION_H_
#include "storage/ob_i_partition_group.h"
#include "storage/transaction/ob_trans_define.h"
#include "storage/ob_i_partition_storage.h"
#include "common/ob_partition_key.h"
#include "storage/ob_base_storage_info.h"
#include "common/ob_role.h"
#include "storage/ob_replay_status.h"
namespace oceanbase {
namespace clog {
class ObIPartitionLogService;
}
namespace share {
namespace schema {
class ObMultiVersionSchemaService;
}
} // namespace share
using namespace common;
namespace storage {
class ObIPartitionComponentFactory;
class ObIPartitionStorage;
class ObReplayStatus;
class MockObPartition : public ObIPartition {
public:
int init(const common::ObPartitionKey& key, ObIPartitionComponentFactory* cp_fty,
share::schema::ObMultiVersionSchemaService* schema_service, ObBaseStorage* base_storage,
clog::ObIPartitionLogService* pls, transaction::ObTransService* txs)
{
UNUSED(key);
UNUSED(cp_fty);
UNUSED(schema_service);
UNUSED(base_storage);
UNUSED(pls);
UNUSED(txs);
return OB_NOT_SUPPORTED;
}
void destroy()
{
;
}
int replay_base_storage_log(
const int64_t log_seq_num, const int64_t subcmd, const char* buf, const int64_t len, int64_t& pos)
{
UNUSED(log_seq_num);
UNUSED(subcmd);
UNUSED(buf);
UNUSED(len);
UNUSED(pos);
return OB_NOT_SUPPORTED;
}
// get partition log service
const clog::ObIPartitionLogService* get_log_service() const
{
return NULL;
}
clog::ObIPartitionLogService* get_log_service()
{
return NULL;
}
const common::ObPartitionKey& get_partition_key() const
{
return partition_key_;
}
int get_pg_partition(const common::ObPartitionKey& pkey, ObPGPartitionGuard& guard)
{
UNUSED(pkey);
UNUSED(guard);
return OB_SUCCESS;
}
int retire_warmup_store(const bool is_disk_full)
{}
int enable_write_log()
{}
int table_scan(const ObStoreCtx& ctx, ObTableScanParam& param, common::ObNewRowIterator*& result)
{
UNUSED(ctx);
UNUSED(param);
UNUSED(result);
return OB_NOT_SUPPORTED;
}
int table_scan(const ObStoreCtx& ctx, ObTableScanParam& param, common::ObNewIterIterator*& result)
{
UNUSED(ctx);
UNUSED(param);
UNUSED(result);
return OB_NOT_SUPPORTED;
}
int revert_scan_iter(common::ObNewRowIterator* iter)
{
UNUSED(iter);
return OB_NOT_SUPPORTED;
}
int revert_scan_iter(common::ObNewIterIterator* iter)
{
UNUSED(iter);
return OB_NOT_SUPPORTED;
}
int delete_rows(const ObStoreCtx& ctx, const int64_t timeout, const common::ObIArray<uint64_t>& column_ids,
common::ObNewRowIterator* row_iter, int64_t& affected_rows)
{
UNUSED(ctx);
UNUSED(timeout);
UNUSED(column_ids);
UNUSED(row_iter);
UNUSED(affected_rows);
return OB_NOT_SUPPORTED;
}
int insert_rows(const ObStoreCtx& ctx, const int64_t timeout, const common::ObIArray<uint64_t>& column_ids,
common::ObNewRowIterator* row_iter, int64_t& affected_rows)
{
UNUSED(ctx);
UNUSED(timeout);
UNUSED(column_ids);
UNUSED(row_iter);
UNUSED(affected_rows);
return OB_NOT_SUPPORTED;
}
int insert_row(const ObStoreCtx& ctx, const int64_t timeout, const common::ObIArray<uint64_t>& column_ids,
const common::ObIArray<uint64_t>& duplicated_column_ids, const common::ObNewRow& row, const ObInsertFlag flag,
int64_t& affected_rows, common::ObNewRowIterator*& duplicated_rows)
{
UNUSED(ctx);
UNUSED(timeout);
UNUSED(column_ids);
UNUSED(duplicated_column_ids);
UNUSED(row);
UNUSED(flag);
UNUSED(affected_rows);
UNUSED(duplicated_rows);
return OB_NOT_SUPPORTED;
}
int revert_insert_iter(const common::ObPartitionKey& pkey, common::ObNewRowIterator* iter)
{
UNUSED(pkey);
UNUSED(iter);
return OB_NOT_SUPPORTED;
}
int update_rows(const ObStoreCtx& ctx, const int64_t timeout, const common::ObIArray<uint64_t>& column_ids,
const common::ObIArray<uint64_t>& updated_column_ids, common::ObNewRowIterator* row_iter, int64_t& affected_rows)
{
UNUSED(ctx);
UNUSED(timeout);
UNUSED(column_ids);
UNUSED(updated_column_ids);
UNUSED(row_iter);
UNUSED(affected_rows);
return OB_NOT_SUPPORTED;
}
int lock_rows(const ObStoreCtx& ctx, const int64_t timeout, common::ObNewRowIterator* row_iter,
const ObLockFlag lock_flag, int64_t& affected_rows)
{
UNUSED(ctx);
UNUSED(timeout);
UNUSED(row_iter);
UNUSED(lock_flag);
UNUSED(affected_rows);
return OB_NOT_SUPPORTED;
}
int lock_rows(const ObStoreCtx& ctx, const int64_t timeout, const common::ObNewRow& row, ObLockFlag lock_flag)
{
UNUSED(ctx);
UNUSED(timeout);
UNUSED(row);
UNUSED(lock_flag);
return OB_NOT_SUPPORTED;
}
void set_valid(bool valid)
{
UNUSED(valid);
return;
}
bool is_valid() const
{
return true;
}
int rdlock()
{
return OB_NOT_SUPPORTED;
}
int wrlock()
{
return OB_NOT_SUPPORTED;
}
int try_rdlock()
{
return OB_NOT_SUPPORTED;
}
int try_wrlock()
{
return OB_NOT_SUPPORTED;
}
int unlock()
{
return OB_NOT_SUPPORTED;
}
int save_base_storage_info(const common::ObBaseStorageInfo& info)
{
UNUSED(info);
return OB_NOT_SUPPORTED;
}
int get_base_storage_info(common::ObBaseStorageInfo& info)
{
UNUSED(info);
return OB_NOT_SUPPORTED;
}
int get_saved_storage_info(ObSavedStorageInfo& info)
{
UNUSED(info);
return OB_NOT_SUPPORTED;
}
// leader or follower
int get_role(common::ObRole& role) const
{
UNUSED(role);
return OB_NOT_SUPPORTED;
}
int get_leader_curr_member_list(common::ObMemberList &member_list) const
{
UNUSED(member_list);
return OB_NOT_SUPPORTED;
}
ObReplayStatus& get_replay_status()
{
return relay_ststus_;
}
int set_frozen_version(const int64_t frozen_version, const int64_t frozen_timestamp)
{
UNUSED(frozen_version);
UNUSED(frozen_timestamp);
return OB_NOT_SUPPORTED;
}
int set_freeze_status(const int64_t frozen_version, const int64_t frozen_timestamp, const int64_t status)
{
UNUSED(frozen_version);
UNUSED(frozen_timestamp);
UNUSED(status);
return OB_NOT_SUPPORTED;
}
int adjust_freeze_status()
{
return OB_SUCCESS;
}
int64_t get_frozen_version() const
{
return 0;
}
int64_t get_frozen_timestamp() const
{
return 0;
}
int64_t get_freeze_status() const
{
return 0;
}
// write ssstore objects @version tree to data file , used by write_check_point
int serialize(char* buf, const int64_t buf_len, int64_t& pos) const
{
UNUSED(buf);
UNUSED(buf_len);
UNUSED(pos);
return OB_NOT_SUPPORTED;
}
// read ssstore objects from data file to construct partition storage's version tree.
int deserialize(const char* buf, const int64_t buf_len, int64_t& pos)
{
UNUSED(buf);
UNUSED(buf_len);
UNUSED(pos);
return OB_NOT_SUPPORTED;
}
int64_t get_serialize_size()
{
return 0;
}
virtual int64_t get_c2r_timestamp()
{
return OB_INVALID_TIMESTAMP;
}
virtual void set_c2r_timestamp(int64_t timestamp)
{
UNUSED(timestamp);
}
virtual int set_replica_type(const ObReplicaType& replica_type, const bool write_redo_log)
{
UNUSED(replica_type);
UNUSED(write_redo_log);
return OB_SUCCESS;
}
virtual ObPartitionLoopWorker* get_partition_loop_worker()
{
return NULL;
}
protected:
common::ObPartitionKey partition_key_;
ObReplayStatus relay_ststus_;
ObPartitionMCState partition_mc_state_;
private:
// disallow copy
// DISALLOW_COPY_AND_ASSIGN(ObIPartition);
};
} // namespace storage
} // namespace oceanbase
#endif // OCEANBASE_STORAGE_MOCK_OB_PARTITION_H_