8#include <pthread/qos.h>
31class ExtensionManager;
32class TransformerExtension;
34class PlannerExtension;
39class StorageExtension;
78 uint32_t threadQos = QOS_CLASS_DEFAULT
125 std::unique_ptr<storage::StorageExtension> storageExtension);
131 std::unique_ptr<extension::TransformerExtension> transformerExtension);
136 std::unique_ptr<extension::BinderExtension> transformerExtension);
141 std::unique_ptr<extension::PlannerExtension> plannerExtension);
158 using construct_bm_func_t =
159 std::function<std::unique_ptr<storage::BufferManager>(
const Database&)>;
161 struct QueryIDGenerator {
162 uint64_t queryID = 0;
163 std::mutex queryIDLock;
166 static std::unique_ptr<storage::BufferManager> initBufferManager(
const Database& db);
167 void initMembers(std::string_view dbPath, construct_bm_func_t initBmFunc = initBufferManager);
171 construct_bm_func_t constructBMFunc);
173 void validatePathInReadOnly()
const;
176 std::string databasePath;
178 std::unique_ptr<common::VirtualFileSystem> vfs;
179 std::unique_ptr<storage::BufferManager> bufferManager;
180 std::unique_ptr<storage::MemoryManager> memoryManager;
181 std::unique_ptr<processor::QueryProcessor> queryProcessor;
182 std::unique_ptr<catalog::Catalog>
catalog;
183 std::unique_ptr<storage::StorageManager> storageManager;
184 std::unique_ptr<transaction::TransactionManager> transactionManager;
185 std::unique_ptr<common::FileInfo> lockFile;
186 std::unique_ptr<DatabaseManager> databaseManager;
187 std::unique_ptr<extension::ExtensionManager> extensionManager;
188 QueryIDGenerator queryIDGenerator;
189 std::shared_ptr<common::DatabaseLifeCycleManager> dbLifeCycleManager;
190 std::vector<std::unique_ptr<extension::TransformerExtension>> transformerExtensions;
191 std::vector<std::unique_ptr<extension::BinderExtension>> binderExtensions;
192 std::vector<std::unique_ptr<extension::PlannerExtension>> plannerExtensions;
193 std::vector<std::unique_ptr<extension::MapperExtension>> mapperExtensions;
#define KUZU_API
Definition api.h:25
Database class is the main class of Kuzu. It manages all database components.
Definition database.h:98
KUZU_API void addPlannerExtension(std::unique_ptr< extension::PlannerExtension > plannerExtension)
std::vector< extension::TransformerExtension * > getTransformerExtensions()
std::vector< extension::BinderExtension * > getBinderExtensions()
std::vector< storage::StorageExtension * > getStorageExtensions()
friend class testing::PrivateGraphTest
Definition database.h:104
KUZU_API void addTransformerExtension(std::unique_ptr< extension::TransformerExtension > transformerExtension)
friend class Connection
Definition database.h:101
friend struct extension::ExtensionUtils
Definition database.h:106
KUZU_API void registerStorageExtension(std::string name, std::unique_ptr< storage::StorageExtension > storageExtension)
const DBConfig & getConfig() const
Definition database.h:151
friend class StorageDriver
Definition database.h:102
KUZU_API void addExtensionOption(std::string name, common::LogicalTypeID type, common::Value defaultValue, bool isConfidential=false)
friend class EmbeddedShell
Definition database.h:99
KUZU_API ~Database()
Destructs the database object.
uint64_t getNextQueryID()
std::vector< extension::PlannerExtension * > getPlannerExtensions()
KUZU_API void addMapperExtension(std::unique_ptr< extension::MapperExtension > mapperExtension)
std::vector< extension::MapperExtension * > getMapperExtensions()
friend class testing::BaseGraphTest
Definition database.h:103
KUZU_API Database(std::string_view databasePath, SystemConfig systemConfig=SystemConfig())
Creates a database object.
friend class ClientContext
Definition database.h:100
KUZU_API catalog::Catalog * getCatalog()
Definition database.h:149
KUZU_API void addBinderExtension(std::unique_ptr< extension::BinderExtension > transformerExtension)
KUZU_API void registerFileSystem(std::unique_ptr< common::FileSystem > fs)
Definition transaction_context.h:33
Definition array_utils.h:7
LogicalTypeID
Definition types.h:177
Definition binary_function_executor.h:6
Definition bind_input.h:16
Definition copy_from_error.h:17
Definition array_utils.h:7
Definition db_config.h:57
Definition db_config.h:48
Stores runtime configuration for creating or opening a Database.
Definition database.h:49
SystemConfig(uint64_t bufferPoolSize=-1u, uint64_t maxNumThreads=0, bool enableCompression=true, bool readOnly=false, uint64_t maxDBSize=-1u, bool autoCheckpoint=true, uint64_t checkpointThreshold=16777216, bool forceCheckpointOnClose=true)
Creates a SystemConfig object.
bool readOnly
Definition database.h:85
uint64_t maxNumThreads
Definition database.h:83
bool forceCheckpointOnClose
Definition database.h:89
uint64_t checkpointThreshold
Definition database.h:88
bool autoCheckpoint
Definition database.h:87
uint64_t bufferPoolSize
Definition database.h:82
uint64_t maxDBSize
Definition database.h:86
bool enableCompression
Definition database.h:84