|
|
@@ -38,7 +38,7 @@ + (instancetype)databasePoolWithPath:(NSString*)aPath flags:(int)openFlags {
|
|
|
return FMDBReturnAutoreleased([[self alloc] initWithPath:aPath flags:openFlags]);
|
|
|
}
|
|
|
|
|
|
-- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags {
|
|
|
+- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags vfs:(NSString *)vfsName {
|
|
|
|
|
|
self = [super init];
|
|
|
|
|
|
@@ -48,11 +48,16 @@ - (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags {
|
|
|
_databaseInPool = FMDBReturnRetained([NSMutableArray array]);
|
|
|
_databaseOutPool = FMDBReturnRetained([NSMutableArray array]);
|
|
|
_openFlags = openFlags;
|
|
|
+ _vfsName = [vfsName copy];
|
|
|
}
|
|
|
|
|
|
return self;
|
|
|
}
|
|
|
|
|
|
+- (instancetype)initWithPath:(NSString*)aPath flags:(int)openFlags {
|
|
|
+ return [self initWithPath:aPath flags:openFlags vfs:nil];
|
|
|
+}
|
|
|
+
|
|
|
- (instancetype)initWithPath:(NSString*)aPath
|
|
|
{
|
|
|
// default flags for sqlite3_open
|
|
|
@@ -63,6 +68,9 @@ - (instancetype)init {
|
|
|
return [self initWithPath:nil];
|
|
|
}
|
|
|
|
|
|
++ (Class)databaseClass {
|
|
|
+ return [FMDatabase class];
|
|
|
+}
|
|
|
|
|
|
- (void)dealloc {
|
|
|
|
|
|
@@ -128,13 +136,13 @@ - (FMDatabase*)db {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- db = [FMDatabase databaseWithPath:self->_path];
|
|
|
+ db = [[[self class] databaseClass] databaseWithPath:self->_path];
|
|
|
shouldNotifyDelegate = YES;
|
|
|
}
|
|
|
|
|
|
//This ensures that the db is opened before returning
|
|
|
#if SQLITE_VERSION_NUMBER >= 3005000
|
|
|
- BOOL success = [db openWithFlags:self->_openFlags];
|
|
|
+ BOOL success = [db openWithFlags:self->_openFlags vfs:self->_vfsName];
|
|
|
#else
|
|
|
BOOL success = [db open];
|
|
|
#endif
|