15class SequenceCatalogEntry;
16struct SequenceRollbackData;
28struct VectorUpdateInfo;
29class ChunkedNodeGroup;
30class VersionRecordHandler;
33class TransactionManager;
37class LocalCacheManager;
44 std::string
getKey()
const {
return key; }
58 std::unique_lock lck{mtx};
59 return cachedObjects.contains(key);
62 std::unique_lock lck{mtx};
63 return *cachedObjects.at(key);
65 bool put(std::unique_ptr<LocalCacheObject>
object);
67 void remove(
const std::string& key) {
68 std::unique_lock lck{mtx};
69 cachedObjects.erase(key);
73 std::unordered_map<std::string, std::unique_ptr<LocalCacheObject>> cachedObjects;
126 return nodeOffset - getMinUncommittedNodeOffset(tableID);
130 return getMinUncommittedNodeOffset(tableID) + localRowIdx;
134 catalog::CatalogEntry& catalogEntry,
bool isInternal,
bool skipLoggingToWAL =
false);
136 const binder::BoundAlterInfo& alterInfo);
138 const catalog::SequenceRollbackData& data);
140 common::row_idx_t numRows,
const storage::VersionRecordHandler* versionRecordHandler)
const;
142 common::row_idx_t numRows,
const storage::VersionRecordHandler* versionRecordHandler)
const;
144 storage::VectorUpdateInfo& vectorUpdateInfo)
const;
156 std::unique_ptr<storage::LocalStorage> localStorage;
157 std::unique_ptr<storage::UndoBuffer> undoBuffer;
158 std::unique_ptr<storage::LocalWAL> localWAL;
160 bool forceCheckpoint;
161 std::atomic<bool> hasCatalogChanges;
#define KUZU_API
Definition api.h:25
#define KU_ASSERT(condition)
Definition assert.h:24
Contain client side configuration. We make profiler associated per query, so the profiler is not main...
Definition client_context.h:69
Definition transaction.h:55
void remove(const std::string &key)
Definition transaction.h:67
LocalCacheObject & at(const std::string &key)
Definition transaction.h:61
bool put(std::unique_ptr< LocalCacheObject > object)
bool contains(const std::string &key)
Definition transaction.h:57
Definition transaction.h:38
std::string getKey() const
Definition transaction.h:44
virtual ~LocalCacheObject()=default
LocalCacheObject(std::string key)
Definition transaction.h:40
T * cast()
Definition transaction.h:47
Definition transaction.h:77
void commit(storage::WAL *wal)
bool shouldForceCheckpoint() const
storage::LocalStorage * getLocalStorage() const
Definition transaction.h:121
common::transaction_t getStartTS() const
Definition transaction.h:101
common::row_idx_t getLocalRowIdx(common::table_id_t tableID, common::offset_t nodeOffset) const
Definition transaction.h:124
Transaction(TransactionType transactionType) noexcept
Transaction(main::ClientContext &clientContext, TransactionType transactionType, common::transaction_t transactionID, common::transaction_t startTS)
bool isRecovery() const
Definition transaction.h:99
Transaction(TransactionType transactionType, common::transaction_t ID, common::transaction_t startTS) noexcept
bool isUnCommitted(common::table_id_t tableID, common::offset_t nodeOffset) const
common::transaction_t getCommitTS() const
Definition transaction.h:102
void pushAlterCatalogEntry(catalog::CatalogSet &catalogSet, catalog::CatalogEntry &catalogEntry, const binder::BoundAlterInfo &alterInfo)
bool shouldAppendToUndoBuffer() const
Definition transaction.h:106
bool isWriteTransaction() const
Definition transaction.h:97
bool shouldLogToWAL() const
static constexpr common::transaction_t DUMMY_TRANSACTION_ID
Definition transaction.h:81
TransactionType getType() const
Definition transaction.h:95
common::offset_t getUncommittedOffset(common::table_id_t tableID, common::row_idx_t localRowIdx) const
Definition transaction.h:128
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:122
storage::LocalWAL & getLocalWAL() const
Definition transaction.h:111
static constexpr common::transaction_t DUMMY_START_TIMESTAMP
Definition transaction.h:82
void pushSequenceChange(catalog::SequenceCatalogEntry *sequenceEntry, int64_t kCount, const catalog::SequenceRollbackData &data)
common::transaction_t getID() const
Definition transaction.h:100
void setForceCheckpoint()
Definition transaction.h:105
friend class TransactionManager
Definition transaction.h:78
bool isReadOnly() const
Definition transaction.h:96
static constexpr common::transaction_t START_TRANSACTION_ID
Definition transaction.h:83
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:103
bool isDummy() const
Definition transaction.h:98
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
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:35
@ CHECKPOINT
Definition transaction.h:35
@ READ_ONLY
Definition transaction.h:35
@ RECOVERY
Definition transaction.h:35
@ DUMMY
Definition transaction.h:35
@ WRITE
Definition transaction.h:35
KUZU_API Transaction DUMMY_CHECKPOINT_TRANSACTION
KUZU_API Transaction DUMMY_TRANSACTION
Definition array_utils.h:7