support for :memory: path
This commit is contained in:
parent
0295eca07d
commit
83383a8117
@ -50,17 +50,22 @@ SqliteDb::~SqliteDb() = default;
|
||||
Status SqliteDb::init(CSlice path, bool *was_created) {
|
||||
// If database does not exist, delete all other files which may left
|
||||
// from older database
|
||||
bool is_db_exists = stat(path).is_ok();
|
||||
if (!is_db_exists) {
|
||||
TRY_STATUS(destroy(path));
|
||||
|
||||
if (path != ":memory:") {
|
||||
bool is_db_exists = stat(path).is_ok();
|
||||
|
||||
if (!is_db_exists) {
|
||||
TRY_STATUS(destroy(path));
|
||||
}
|
||||
|
||||
if (was_created != nullptr) {
|
||||
*was_created = !is_db_exists;
|
||||
}
|
||||
}
|
||||
|
||||
if (was_created != nullptr) {
|
||||
*was_created = !is_db_exists;
|
||||
}
|
||||
sqlite3 *db;
|
||||
CHECK(sqlite3_threadsafe() != 0);
|
||||
int rc = sqlite3_open_v2(path.c_str(), &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE /*| SQLITE_OPEN_SHAREDCACHE*/,
|
||||
int rc = sqlite3_open_v2(path.c_str(), &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE | SQLITE_OPEN_SHAREDCACHE,
|
||||
nullptr);
|
||||
if (rc != SQLITE_OK) {
|
||||
auto res = Status::Error(PSLICE() << "Failed to open database: " << detail::RawSqliteDb::last_error(db));
|
||||
|
Reference in New Issue
Block a user