@@ -39,8 +39,9 @@ public final class ApolloSQLiteDatabase: SQLiteDatabase {
3939
4040 private func openConnection( ) throws {
4141 let flags = SQLITE_OPEN_CREATE | SQLITE_OPEN_READWRITE | SQLITE_OPEN_FULLMUTEX | SQLITE_OPEN_URI
42- if sqlite3_open_v2 ( dbURL. path, & db, flags, nil ) != SQLITE_OK {
43- throw SQLiteError . open ( path: dbURL. path)
42+ let result = sqlite3_open_v2 ( dbURL. path, & db, flags, nil )
43+ if result != SQLITE_OK {
44+ throw SQLiteError . open ( path: dbURL. path, resultCode: result)
4445 }
4546 }
4647
@@ -56,15 +57,16 @@ public final class ApolloSQLiteDatabase: SQLiteDatabase {
5657 private func exec( _ sql: String , errorMessage: @autoclosure ( ) -> String ) throws -> Int32 {
5758 let result = sqlite3_exec ( db, sql, nil , nil , nil )
5859 if result != SQLITE_OK {
59- throw SQLiteError . execution ( message: " \( errorMessage ( ) ) : \( sqliteErrorMessage ( ) ) " )
60+ throw SQLiteError . execution ( message: " \( errorMessage ( ) ) : \( sqliteErrorMessage ( ) ) " , resultCode : result )
6061 }
6162 return result
6263 }
6364
6465 private func prepareStatement( _ sql: String , errorMessage: @autoclosure ( ) -> String ) throws -> OpaquePointer ? {
6566 var stmt : OpaquePointer ?
66- if sqlite3_prepare_v2 ( db, sql, - 1 , & stmt, nil ) != SQLITE_OK {
67- throw SQLiteError . prepare ( message: " \( errorMessage ( ) ) : \( sqliteErrorMessage ( ) ) " )
67+ let result = sqlite3_prepare_v2 ( db, sql, - 1 , & stmt, nil )
68+ if result != SQLITE_OK {
69+ throw SQLiteError . prepare ( message: " \( errorMessage ( ) ) : \( sqliteErrorMessage ( ) ) " , resultCode: result)
6870 }
6971 return stmt
7072 }
@@ -118,7 +120,7 @@ public final class ApolloSQLiteDatabase: SQLiteDatabase {
118120 rows. append ( DatabaseRow ( cacheKey: key, storedInfo: record) )
119121 } else if result != SQLITE_DONE {
120122 let errorMsg = String ( cString: sqlite3_errmsg ( db) )
121- throw SQLiteError . step ( message: " Failed to step raw row select: \( errorMsg) " )
123+ throw SQLiteError . step ( message: " Failed to step raw row select: \( errorMsg) " , resultCode : result )
122124 }
123125 } while result != SQLITE_DONE
124126
@@ -149,10 +151,11 @@ public final class ApolloSQLiteDatabase: SQLiteDatabase {
149151 for (key, record) in records {
150152 sqlite3_bind_text ( stmt, 1 , key, - 1 , SQLITE_TRANSIENT)
151153 sqlite3_bind_text ( stmt, 2 , record, - 1 , SQLITE_TRANSIENT)
152-
153- if sqlite3_step ( stmt) != SQLITE_DONE {
154+
155+ let result = sqlite3_step ( stmt)
156+ if result != SQLITE_DONE {
154157 rollbackTransaction ( )
155- throw SQLiteError . step ( message: " Insert/update failed: \( sqliteErrorMessage ( ) ) " )
158+ throw SQLiteError . step ( message: " Insert/update failed: \( sqliteErrorMessage ( ) ) " , resultCode : result )
156159 }
157160
158161 sqlite3_reset ( stmt)
@@ -175,8 +178,9 @@ public final class ApolloSQLiteDatabase: SQLiteDatabase {
175178 defer { sqlite3_finalize ( stmt) }
176179
177180 sqlite3_bind_text ( stmt, 1 , cacheKey, - 1 , SQLITE_TRANSIENT)
178- if sqlite3_step ( stmt) != SQLITE_DONE {
179- throw SQLiteError . step ( message: " Delete failed: \( sqliteErrorMessage ( ) ) " )
181+ let result = sqlite3_step ( stmt)
182+ if result != SQLITE_DONE {
183+ throw SQLiteError . step ( message: " Delete failed: \( sqliteErrorMessage ( ) ) " , resultCode: result)
180184 }
181185 }
182186 }
@@ -191,8 +195,9 @@ public final class ApolloSQLiteDatabase: SQLiteDatabase {
191195 defer { sqlite3_finalize ( stmt) }
192196
193197 sqlite3_bind_text ( stmt, 1 , wildcardPattern, - 1 , SQLITE_TRANSIENT)
194- if sqlite3_step ( stmt) != SQLITE_DONE {
195- throw SQLiteError . step ( message: " Pattern delete failed: \( sqliteErrorMessage ( ) ) " )
198+ let result = sqlite3_step ( stmt)
199+ if result != SQLITE_DONE {
200+ throw SQLiteError . step ( message: " Pattern delete failed: \( sqliteErrorMessage ( ) ) " , resultCode: result)
196201 }
197202 }
198203 }
0 commit comments