@@ -79,20 +79,20 @@ public protocol SQLiteType: Sendable {
7979
8080final public class SQLite : SQLiteType {
8181
82- nonisolated ( unsafe) public private( set) var dbPointer : OpaquePointer ?
83- nonisolated ( unsafe ) public private ( set ) var dbPath : String !
82+ nonisolated ( unsafe) public private( set) var pointer : OpaquePointer ?
83+ public let path : String
8484
8585 private let SQLITE_STATIC = unsafeBitCast ( 0 , to: sqlite3_destructor_type. self)
8686 private let SQLITE_TRANSIENT = unsafeBitCast ( - 1 , to: sqlite3_destructor_type. self)
8787
88- private let queue = DispatchQueue ( label: " SQLite Queue " )
88+ private let queue = DispatchQueue ( label: " com.sqlite.dispatch.queue " )
8989
9090 public let dateFormatter = DateFormatter ( )
9191
9292 public var lastInsertID : Int {
9393 var id = 0
9494 queue. sync {
95- id = Int ( sqlite3_last_insert_rowid ( dbPointer ) )
95+ id = Int ( sqlite3_last_insert_rowid ( pointer ) )
9696 }
9797 log ( " last inserted id: \( id) " )
9898 return id
@@ -102,7 +102,7 @@ final public class SQLite: SQLiteType {
102102 public var changes : Int {
103103 var changes = 0
104104 queue. sync {
105- changes = Int ( sqlite3_changes ( dbPointer ) )
105+ changes = Int ( sqlite3_changes ( pointer ) )
106106 }
107107 log ( " changes: \( changes) " )
108108 return changes
@@ -112,22 +112,22 @@ final public class SQLite: SQLiteType {
112112 public var totalChanges : Int {
113113 var totalChanges = 0
114114 queue. sync {
115- totalChanges = Int ( sqlite3_total_changes ( dbPointer ) )
115+ totalChanges = Int ( sqlite3_total_changes ( pointer ) )
116116 }
117117 log ( " total changes: \( totalChanges) " )
118118 return totalChanges
119119 }
120120
121- public init ( path: String , recreateDB: Bool = false ) throws {
122- if recreateDB {
123- try deleteDB ( path: path)
124- }
121+ /// - Parameter recreate: Set to `true` to have the sqlite file deleted and recreated. Defaults to `false`.
122+ public init ( path: String , recreate: Bool = false ) throws {
123+ self . path = path
124+
125+ if recreate { try deleteDB ( path: path) }
125126
126127 var db : OpaquePointer ?
127128
128129 if sqlite3_open ( path, & db) == SQLITE_OK {
129- dbPointer = db
130- dbPath = path
130+ pointer = db
131131 setUp ( )
132132 log ( " database opened successfully, path: \( path) " )
133133 } else {
@@ -136,15 +136,15 @@ final public class SQLite: SQLiteType {
136136 sqlite3_close ( db)
137137 }
138138 }
139- dbPointer = nil
140- throw SQLiteError . OpenDB ( getErrorMessage ( dbPointer : db ) )
139+ pointer = nil
140+ throw SQLiteError . OpenDB ( " SQLite can't be opened " )
141141 }
142142 }
143143
144144 deinit {
145- if dbPointer != nil {
146- sqlite3_close ( dbPointer )
147- dbPointer = nil
145+ if pointer != nil {
146+ sqlite3_close ( pointer )
147+ pointer = nil
148148 }
149149 }
150150
@@ -169,8 +169,8 @@ final public class SQLite: SQLiteType {
169169 #endif
170170 }
171171
172- private func getErrorMessage( dbPointer : OpaquePointer ? ) -> String {
173- if let errorPointer = sqlite3_errmsg ( dbPointer ) {
172+ private func getErrorMessage( pointer : OpaquePointer ? ) -> String {
173+ if let errorPointer = sqlite3_errmsg ( pointer ) {
174174 let errorMessage = String ( cString: errorPointer)
175175 return errorMessage
176176 }
@@ -179,8 +179,8 @@ final public class SQLite: SQLiteType {
179179
180180 private func prepareStatement( sql: String ) throws -> OpaquePointer ? {
181181 var queryStatement : OpaquePointer ?
182- guard sqlite3_prepare_v2 ( dbPointer , sql, - 1 , & queryStatement, nil ) == SQLITE_OK else {
183- throw SQLiteError . Prepare ( getErrorMessage ( dbPointer : dbPointer ) )
182+ guard sqlite3_prepare_v2 ( pointer , sql, - 1 , & queryStatement, nil ) == SQLITE_OK else {
183+ throw SQLiteError . Prepare ( getErrorMessage ( pointer : pointer ) )
184184 }
185185 return queryStatement
186186 }
@@ -191,7 +191,7 @@ final public class SQLite: SQLiteType {
191191 let paramsCount = sqlite3_bind_parameter_count ( sqlStatement)
192192 let count = params. count
193193 if paramsCount != Int32 ( count) {
194- throw SQLiteError . Bind ( getErrorMessage ( dbPointer : dbPointer ) )
194+ throw SQLiteError . Bind ( getErrorMessage ( pointer : pointer ) )
195195 }
196196
197197 for index in 0 ... ( count- 1 ) {
@@ -221,7 +221,7 @@ final public class SQLite: SQLiteType {
221221 }
222222
223223 guard statusCode == SQLITE_OK else {
224- throw SQLiteError . Bind ( getErrorMessage ( dbPointer : dbPointer ) )
224+ throw SQLiteError . Bind ( getErrorMessage ( pointer : pointer ) )
225225 }
226226 }
227227 }
@@ -238,10 +238,10 @@ final public class SQLite: SQLiteType {
238238 try bindPlaceholders ( sqlStatement: sqlStatement, params: params)
239239
240240 guard sqlite3_step ( sqlStatement) == SQLITE_DONE else {
241- throw SQLiteError . Step ( getErrorMessage ( dbPointer : dbPointer ) )
241+ throw SQLiteError . Step ( getErrorMessage ( pointer : pointer ) )
242242 }
243243
244- return Int ( sqlite3_changes ( dbPointer ) )
244+ return Int ( sqlite3_changes ( pointer ) )
245245 }
246246 }
247247
@@ -413,7 +413,7 @@ final public class SQLite: SQLiteType {
413413 sqlite3_finalize ( sqlStatement)
414414 }
415415 guard sqlite3_step ( sqlStatement) == SQLITE_ROW else {
416- throw SQLiteError . Step ( getErrorMessage ( dbPointer : dbPointer ) )
416+ throw SQLiteError . Step ( getErrorMessage ( pointer : pointer ) )
417417 }
418418 count = sqlite3_column_int ( sqlStatement, 0 )
419419 log ( " successfully got a row count in \( table. name) : \( count) " )
@@ -435,7 +435,7 @@ final public class SQLite: SQLiteType {
435435 try bindPlaceholders ( sqlStatement: sqlStatement, params: params)
436436
437437 guard sqlite3_step ( sqlStatement) == SQLITE_ROW else {
438- throw SQLiteError . Step ( getErrorMessage ( dbPointer : dbPointer ) )
438+ throw SQLiteError . Step ( getErrorMessage ( pointer : pointer ) )
439439 }
440440 count = sqlite3_column_int ( sqlStatement, 0 )
441441 log ( " successfully got a row count with condition: \( count) , sql: \( sql) " )
@@ -463,7 +463,7 @@ final public class SQLite: SQLiteType {
463463 var rowValues : SQLValues = SQLValues ( [ ] )
464464
465465 guard let resultColumns = try ? getResultColumns ( table, sqlStatement: sqlStatement) else {
466- throw SQLiteError . Column ( getErrorMessage ( dbPointer : dbPointer ) )
466+ throw SQLiteError . Column ( getErrorMessage ( pointer : pointer ) )
467467 }
468468
469469 while sqlite3_step ( sqlStatement) == SQLITE_ROW {
@@ -542,10 +542,10 @@ final public class SQLite: SQLiteType {
542542 if let validatedColumnName = String ( validatingCString: columnName) {
543543 columnNamesToReturn. append ( validatedColumnName)
544544 } else {
545- throw SQLiteError . Column ( getErrorMessage ( dbPointer : dbPointer ) )
545+ throw SQLiteError . Column ( getErrorMessage ( pointer : pointer ) )
546546 }
547547 } else {
548- throw SQLiteError . Column ( getErrorMessage ( dbPointer : dbPointer ) )
548+ throw SQLiteError . Column ( getErrorMessage ( pointer : pointer ) )
549549 }
550550 }
551551 var resultColumns : SQLTableColums = [ ]
0 commit comments