Add write unprepared classes by inheriting from write prepared
This commit is contained in:
parent
6e08916eb3
commit
760d2e1b6c
@ -657,6 +657,8 @@ set(SOURCES
|
||||
utilities/transactions/transaction_util.cc
|
||||
utilities/transactions/write_prepared_txn.cc
|
||||
utilities/transactions/write_prepared_txn_db.cc
|
||||
utilities/transactions/write_unprepared_txn.cc
|
||||
utilities/transactions/write_unprepared_txn_db.cc
|
||||
utilities/ttl/db_ttl_impl.cc
|
||||
utilities/write_batch_with_index/write_batch_with_index.cc
|
||||
utilities/write_batch_with_index/write_batch_with_index_internal.cc
|
||||
|
2
TARGETS
2
TARGETS
@ -280,6 +280,8 @@ cpp_library(
|
||||
"utilities/transactions/transaction_util.cc",
|
||||
"utilities/transactions/write_prepared_txn.cc",
|
||||
"utilities/transactions/write_prepared_txn_db.cc",
|
||||
"utilities/transactions/write_unprepared_txn.cc",
|
||||
"utilities/transactions/write_unprepared_txn_db.cc",
|
||||
"utilities/ttl/db_ttl_impl.cc",
|
||||
"utilities/write_batch_with_index/write_batch_with_index.cc",
|
||||
"utilities/write_batch_with_index/write_batch_with_index_internal.cc",
|
||||
|
2
src.mk
2
src.mk
@ -208,6 +208,8 @@ LIB_SOURCES = \
|
||||
utilities/transactions/transaction_util.cc \
|
||||
utilities/transactions/write_prepared_txn.cc \
|
||||
utilities/transactions/write_prepared_txn_db.cc \
|
||||
utilities/transactions/write_unprepared_txn.cc \
|
||||
utilities/transactions/write_unprepared_txn_db.cc \
|
||||
utilities/ttl/db_ttl_impl.cc \
|
||||
utilities/write_batch_with_index/write_batch_with_index.cc \
|
||||
utilities/write_batch_with_index/write_batch_with_index_internal.cc \
|
||||
|
@ -26,6 +26,7 @@
|
||||
#include "utilities/transactions/pessimistic_transaction.h"
|
||||
#include "utilities/transactions/transaction_db_mutex_impl.h"
|
||||
#include "utilities/transactions/write_prepared_txn_db.h"
|
||||
#include "utilities/transactions/write_unprepared_txn_db.h"
|
||||
|
||||
namespace rocksdb {
|
||||
|
||||
@ -264,7 +265,9 @@ Status TransactionDB::WrapDB(
|
||||
std::unique_ptr<PessimisticTransactionDB> txn_db;
|
||||
switch (txn_db_options.write_policy) {
|
||||
case WRITE_UNPREPARED:
|
||||
return Status::NotSupported("WRITE_UNPREPARED is not implemented yet");
|
||||
txn_db.reset(new WriteUnpreparedTxnDB(
|
||||
db, PessimisticTransactionDB::ValidateTxnDBOptions(txn_db_options)));
|
||||
break;
|
||||
case WRITE_PREPARED:
|
||||
txn_db.reset(new WritePreparedTxnDB(
|
||||
db, PessimisticTransactionDB::ValidateTxnDBOptions(txn_db_options)));
|
||||
@ -297,7 +300,9 @@ Status TransactionDB::WrapStackableDB(
|
||||
|
||||
switch (txn_db_options.write_policy) {
|
||||
case WRITE_UNPREPARED:
|
||||
return Status::NotSupported("WRITE_UNPREPARED is not implemented yet");
|
||||
txn_db.reset(new WriteUnpreparedTxnDB(
|
||||
db, PessimisticTransactionDB::ValidateTxnDBOptions(txn_db_options)));
|
||||
break;
|
||||
case WRITE_PREPARED:
|
||||
txn_db.reset(new WritePreparedTxnDB(
|
||||
db, PessimisticTransactionDB::ValidateTxnDBOptions(txn_db_options)));
|
||||
|
19
utilities/transactions/write_unprepared_txn.cc
Normal file
19
utilities/transactions/write_unprepared_txn.cc
Normal file
@ -0,0 +1,19 @@
|
||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||
// This source code is licensed under both the GPLv2 (found in the
|
||||
// COPYING file in the root directory) and Apache 2.0 License
|
||||
// (found in the LICENSE.Apache file in the root directory).
|
||||
|
||||
#ifndef ROCKSDB_LITE
|
||||
|
||||
#include "utilities/transactions/write_unprepared_txn.h"
|
||||
|
||||
#ifndef __STDC_FORMAT_MACROS
|
||||
#define __STDC_FORMAT_MACROS
|
||||
#endif
|
||||
|
||||
namespace rocksdb {
|
||||
|
||||
|
||||
} // namespace rocksdb
|
||||
|
||||
#endif // ROCKSDB_LITE
|
21
utilities/transactions/write_unprepared_txn.h
Normal file
21
utilities/transactions/write_unprepared_txn.h
Normal file
@ -0,0 +1,21 @@
|
||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||
// This source code is licensed under both the GPLv2 (found in the
|
||||
// COPYING file in the root directory) and Apache 2.0 License
|
||||
// (found in the LICENSE.Apache file in the root directory).
|
||||
|
||||
#pragma once
|
||||
|
||||
#ifndef ROCKSDB_LITE
|
||||
|
||||
#include "utilities/transactions/write_prepared_txn.h"
|
||||
|
||||
namespace rocksdb {
|
||||
|
||||
class WriteUnpreparedTxn : public WritePreparedTxn {
|
||||
using WritePreparedTxn::WritePreparedTxn;
|
||||
|
||||
};
|
||||
|
||||
} // namespace rocksdb
|
||||
|
||||
#endif // ROCKSDB_LITE
|
29
utilities/transactions/write_unprepared_txn_db.cc
Normal file
29
utilities/transactions/write_unprepared_txn_db.cc
Normal file
@ -0,0 +1,29 @@
|
||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||
// This source code is licensed under both the GPLv2 (found in the
|
||||
// COPYING file in the root directory) and Apache 2.0 License
|
||||
// (found in the LICENSE.Apache file in the root directory).
|
||||
|
||||
#ifndef ROCKSDB_LITE
|
||||
|
||||
#ifndef __STDC_FORMAT_MACROS
|
||||
#define __STDC_FORMAT_MACROS
|
||||
#endif
|
||||
|
||||
#include "utilities/transactions/write_unprepared_txn_db.h"
|
||||
#include "rocksdb/utilities/transaction_db.h"
|
||||
|
||||
namespace rocksdb {
|
||||
|
||||
Transaction* WriteUnpreparedTxnDB::BeginTransaction(
|
||||
const WriteOptions& write_options, const TransactionOptions& txn_options,
|
||||
Transaction* old_txn) {
|
||||
if (old_txn != nullptr) {
|
||||
ReinitializeTransaction(old_txn, write_options, txn_options);
|
||||
return old_txn;
|
||||
} else {
|
||||
return new WriteUnpreparedTxn(this, write_options, txn_options);
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace rocksdb
|
||||
#endif // ROCKSDB_LITE
|
27
utilities/transactions/write_unprepared_txn_db.h
Normal file
27
utilities/transactions/write_unprepared_txn_db.h
Normal file
@ -0,0 +1,27 @@
|
||||
// Copyright (c) 2011-present, Facebook, Inc. All rights reserved.
|
||||
// This source code is licensed under both the GPLv2 (found in the
|
||||
// COPYING file in the root directory) and Apache 2.0 License
|
||||
// (found in the LICENSE.Apache file in the root directory).
|
||||
|
||||
#pragma once
|
||||
#ifndef ROCKSDB_LITE
|
||||
|
||||
#ifndef __STDC_FORMAT_MACROS
|
||||
#define __STDC_FORMAT_MACROS
|
||||
#endif
|
||||
|
||||
#include "utilities/transactions/write_prepared_txn_db.h"
|
||||
|
||||
#include "utilities/transactions/write_unprepared_txn.h"
|
||||
|
||||
namespace rocksdb {
|
||||
|
||||
class WriteUnpreparedTxnDB : public WritePreparedTxnDB {
|
||||
using WritePreparedTxnDB::WritePreparedTxnDB;
|
||||
|
||||
Transaction* BeginTransaction(const WriteOptions& write_options, const TransactionOptions& txn_options,
|
||||
Transaction* old_txn) override;
|
||||
};
|
||||
|
||||
} // namespace rocksdb
|
||||
#endif // ROCKSDB_LITE
|
Loading…
Reference in New Issue
Block a user