15class SequenceCatalogEntry;
16struct SequenceRollbackData;
27struct VectorUpdateInfo;
28class ChunkedNodeGroup;
29class VersionRecordHandler;
32class TransactionManager;
36class LocalCacheManager;
43 std::string
getKey()
const {
return key; }
57 std::unique_lock lck{mtx};
58 return cachedObjects.contains(key);
61 std::unique_lock lck{mtx};
62 return *cachedObjects.at(key);
64 bool put(std::unique_ptr<LocalCacheObject>
object);
66 void remove(
const std::string& key) {
67 std::unique_lock lck{mtx};
68 cachedObjects.erase(key);
72 std::unordered_map<std::string, std::unique_ptr<LocalCacheObject>> cachedObjects;
108 forceCheckpoint =
true;
140 return minUncommittedNodeOffsets.contains(tableID) ? minUncommittedNodeOffsets.at(tableID) :
144 catalog::CatalogEntry& catalogEntry,
bool isInternal,
bool skipLoggingToWAL =
false);
146 const binder::BoundAlterInfo& alterInfo);
148 const catalog::SequenceRollbackData& data);
150 common::row_idx_t numRows,
const storage::VersionRecordHandler* versionRecordHandler)
const;
152 common::row_idx_t numRows,
const storage::VersionRecordHandler* versionRecordHandler)
const;
154 storage::VectorUpdateInfo& vectorUpdateInfo)
const;
161 std::unordered_map<common::table_id_t, common::offset_t> minUncommittedNodeOffsets);
170 std::unique_ptr<storage::LocalStorage> localStorage;
171 std::unique_ptr<storage::UndoBuffer> undoBuffer;
173 bool forceCheckpoint;
174 bool hasCatalogChanges;
179 std::unordered_map<common::table_id_t, common::offset_t> minUncommittedNodeOffsets;
#define KUZU_API
Definition api.h:25
#define KU_ASSERT(condition)
Definition assert.h:19
Contain client side configuration. We make profiler associated per query, so profiler is not maintain...
Definition client_context.h:68
Definition transaction.h:54
void remove(const std::string &key)
Definition transaction.h:66
LocalCacheObject & at(const std::string &key)
Definition transaction.h:60
bool put(std::unique_ptr< LocalCacheObject > object)
bool contains(const std::string &key)
Definition transaction.h:56
Definition transaction.h:37
std::string getKey() const
Definition transaction.h:43
virtual ~LocalCacheObject()=default
LocalCacheObject(std::string key)
Definition transaction.h:39
T * cast()
Definition transaction.h:46
Definition transaction.h:76
bool shouldForceCheckpoint() const
storage::LocalStorage * getLocalStorage() const
Definition transaction.h:122
void checkForceCheckpoint(common::StatementType statementType)
Definition transaction.h:105
common::transaction_t getStartTS() const
Definition transaction.h:100
common::row_idx_t getLocalRowIdx(common::table_id_t tableID, common::offset_t nodeOffset) const
Definition transaction.h:127
Transaction(TransactionType transactionType) noexcept
Transaction(main::ClientContext &clientContext, TransactionType transactionType, common::transaction_t transactionID, common::transaction_t startTS)
bool isRecovery() const
Definition transaction.h:98
Transaction(TransactionType transactionType, common::transaction_t ID, common::transaction_t startTS) noexcept
common::offset_t getMinUncommittedNodeOffset(common::table_id_t tableID) const
Definition transaction.h:136
bool isUnCommitted(common::table_id_t tableID, common::offset_t nodeOffset) const
Definition transaction.h:124
common::transaction_t getCommitTS() const
Definition transaction.h:101
void pushAlterCatalogEntry(catalog::CatalogSet &catalogSet, catalog::CatalogEntry &catalogEntry, const binder::BoundAlterInfo &alterInfo)
bool shouldAppendToUndoBuffer() const
Definition transaction.h:111
bool isWriteTransaction() const
Definition transaction.h:96
bool shouldLogToWAL() const
static constexpr common::transaction_t DUMMY_TRANSACTION_ID
Definition transaction.h:80
TransactionType getType() const
Definition transaction.h:94
common::offset_t getUncommittedOffset(common::table_id_t tableID, common::row_idx_t localRowIdx) const
Definition transaction.h:132
void pushVectorUpdateInfo(storage::UpdateInfo &updateInfo, common::idx_t vectorIdx, storage::VectorUpdateInfo &vectorUpdateInfo) const
void pushInsertInfo(common::node_group_idx_t nodeGroupIdx, common::row_idx_t startRow, common::row_idx_t numRows, const storage::VersionRecordHandler *versionRecordHandler) const
LocalCacheManager & getLocalCacheManager()
Definition transaction.h:123
static constexpr common::transaction_t DUMMY_START_TIMESTAMP
Definition transaction.h:81
main::ClientContext * getClientContext() const
Definition transaction.h:103
void pushSequenceChange(catalog::SequenceCatalogEntry *sequenceEntry, int64_t kCount, const catalog::SequenceRollbackData &data)
common::transaction_t getID() const
Definition transaction.h:99
friend class TransactionManager
Definition transaction.h:77
bool isReadOnly() const
Definition transaction.h:95
KUZU_API void commit(storage::WAL *wal)
static constexpr common::transaction_t START_TRANSACTION_ID
Definition transaction.h:82
static Transaction getDummyTransactionFromExistingOne(const Transaction &other)
void pushDeleteInfo(common::node_group_idx_t nodeGroupIdx, common::row_idx_t startRow, common::row_idx_t numRows, const storage::VersionRecordHandler *versionRecordHandler) const
void rollback(storage::WAL *wal)
void pushCreateDropCatalogEntry(catalog::CatalogSet &catalogSet, catalog::CatalogEntry &catalogEntry, bool isInternal, bool skipLoggingToWAL=false)
int64_t getCurrentTS() const
Definition transaction.h:102
bool isDummy() const
Definition transaction.h:97
uint64_t getEstimatedMemUsage() const
Definition bind_input.h:12
uint32_t idx_t
Definition types.h:45
uint64_t node_group_idx_t
Definition types.h:55
uint64_t transaction_t
Definition types.h:66
oid_t table_id_t
Definition types.h:72
uint64_t offset_t
Definition types.h:79
uint64_t row_idx_t
Definition types.h:52
StatementType
Definition statement_type.h:8
@ COPY_FROM
Definition statement_type.h:14
TO ku_dynamic_cast(FROM *old)
Definition cast.h:11
Definition bind_input.h:16
Definition copy_from_error.h:17
TransactionType
Definition transaction.h:34
@ CHECKPOINT
Definition transaction.h:34
@ READ_ONLY
Definition transaction.h:34
@ RECOVERY
Definition transaction.h:34
@ DUMMY
Definition transaction.h:34
@ WRITE
Definition transaction.h:34
KUZU_API Transaction DUMMY_CHECKPOINT_TRANSACTION
KUZU_API Transaction DUMMY_TRANSACTION
Definition array_utils.h:7