@capacitor-community/sqlite 4.1.0-4 → 4.1.0-7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -5
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/CapacitorSQLite.java +160 -92
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/CapacitorSQLitePlugin.java +41 -21
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/Database.java +92 -107
- package/android/src/main/java/com/getcapacitor/community/database/sqlite/SQLite/UtilsUpgrade.java +36 -319
- package/dist/esm/definitions.d.ts +32 -15
- package/dist/esm/definitions.js +191 -105
- package/dist/esm/definitions.js.map +1 -1
- package/dist/plugin.cjs.js +191 -105
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js +191 -105
- package/dist/plugin.js.map +1 -1
- package/electron/dist/plugin.js +47 -332
- package/electron/dist/plugin.js.map +1 -1
- package/ios/Plugin/CapacitorSQLite.swift +123 -59
- package/ios/Plugin/CapacitorSQLitePlugin.swift +53 -20
- package/ios/Plugin/Database.swift +15 -11
- package/ios/Plugin/Utils/UtilsUpgrade.swift +36 -369
- package/package.json +2 -2
|
@@ -11,404 +11,71 @@ import SQLCipher
|
|
|
11
11
|
|
|
12
12
|
enum UtilsUpgradeError: Error {
|
|
13
13
|
case onUpgradeFailed(message: String)
|
|
14
|
-
case backupTablesFailed(message: String)
|
|
15
|
-
case backupTableFailed(message: String)
|
|
16
|
-
case getTableColumnNamesFailed(message: String)
|
|
17
14
|
case updateDatabaseVersionFailed(message: String)
|
|
18
|
-
case
|
|
19
|
-
case arrayIntersectionFailed(message: String)
|
|
20
|
-
case updateNewTablesDataFailed(message: String)
|
|
21
|
-
case executeStatementProcessFailed(message: String)
|
|
22
|
-
case executeSetProcessFailed(message: String)
|
|
15
|
+
case executeStatementsProcessFailed(message: String)
|
|
23
16
|
}
|
|
24
|
-
// swiftlint:disable file_length
|
|
25
|
-
// swiftlint:disable type_body_length
|
|
26
17
|
class UtilsUpgrade {
|
|
27
|
-
let utilsDrop: UtilsDrop = UtilsDrop()
|
|
28
|
-
var alterTables: [String: [String]] = [:]
|
|
29
|
-
var commonColumns: [String: [String]] = [:]
|
|
30
|
-
|
|
31
18
|
// MARK: - onUpgrade
|
|
32
19
|
|
|
33
|
-
// swiftlint:disable cyclomatic_complexity
|
|
34
|
-
// swiftlint:disable function_body_length
|
|
35
|
-
// swiftlint:disable function_parameter_count
|
|
36
20
|
func onUpgrade(mDB: Database,
|
|
37
21
|
upgDict: [Int: [String: Any]],
|
|
38
|
-
|
|
22
|
+
currentVersion: Int,
|
|
39
23
|
targetVersion: Int,
|
|
40
|
-
databaseLocation: String) throws
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
throw UtilsUpgradeError.onUpgradeFailed(message: message)
|
|
49
|
-
}
|
|
50
|
-
guard let toVersion = upgrade["toVersion"] as? Int else {
|
|
51
|
-
let msg: String = "Error: onUpgrade toVersion not given"
|
|
52
|
-
throw UtilsUpgradeError.onUpgradeFailed(message: msg)
|
|
53
|
-
}
|
|
54
|
-
guard let statement = upgrade["statement"] as? String else {
|
|
55
|
-
let msg: String = "Error: onUpgrade statement not given"
|
|
56
|
-
throw UtilsUpgradeError.onUpgradeFailed(message: msg)
|
|
57
|
-
}
|
|
58
|
-
var set: [[String: Any]] = [[:]]
|
|
59
|
-
if (upgrade["set"] as? [[String: Any]]) != nil {
|
|
60
|
-
if let set1: [[String: Any]] =
|
|
61
|
-
upgrade["set"] as? [[String: Any]] {
|
|
62
|
-
set = set1
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
if targetVersion < toVersion {
|
|
66
|
-
var message: String = "Error: version mistmatch Upgrade "
|
|
67
|
-
message.append("Statement would upgrade to version ")
|
|
68
|
-
message.append("\(toVersion) , but target version is ")
|
|
69
|
-
message.append("\(targetVersion) for database \(dbName) ")
|
|
70
|
-
message.append("and version \(currentVersion)")
|
|
71
|
-
throw UtilsUpgradeError.onUpgradeFailed(message: message)
|
|
72
|
-
}
|
|
73
|
-
do {
|
|
74
|
-
// Set pragma FOREIGN KEY OFF
|
|
75
|
-
try UtilsSQLCipher
|
|
76
|
-
.setForeignKeyConstraintsEnabled(mDB: mDB,
|
|
77
|
-
toggle: false)
|
|
78
|
-
// backup the database
|
|
79
|
-
_ = try UtilsFile.copyFile(fileName: dbName,
|
|
80
|
-
toFileName: "backup-\(dbName)",
|
|
81
|
-
databaseLocation: databaseLocation)
|
|
82
|
-
|
|
83
|
-
let initChanges = UtilsSQLCipher.dbChanges(mDB: mDB.mDb)
|
|
84
|
-
|
|
85
|
-
// Here we assume all the tables schema are given in
|
|
86
|
-
// the upgrade statement
|
|
87
|
-
if statement.count > 0 {
|
|
88
|
-
_ = try executeStatementProcess(mDB: mDB,
|
|
89
|
-
statement: statement)
|
|
90
|
-
// -> Drop _temp_tables
|
|
91
|
-
_ = try UtilsDrop
|
|
92
|
-
.dropTempTables(mDB: mDB,
|
|
93
|
-
alterTables: self.alterTables)
|
|
94
|
-
// -> Do some cleanup
|
|
95
|
-
self.alterTables = [:]
|
|
96
|
-
self.commonColumns = [:]
|
|
97
|
-
|
|
98
|
-
// here we assume that the Set contains only
|
|
99
|
-
// - the data for new tables as INSERT statements
|
|
100
|
-
// - the data for new columns in existing tables
|
|
101
|
-
// as UPDATE statements
|
|
102
|
-
if set.count > 0 {
|
|
103
|
-
_ = try executeSetProcess(mDB: mDB, set: set,
|
|
104
|
-
toVersion: toVersion)
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
// Set pragma FOREIGN KEY ON
|
|
108
|
-
try UtilsSQLCipher
|
|
109
|
-
.setForeignKeyConstraintsEnabled(mDB: mDB,
|
|
110
|
-
toggle: true)
|
|
111
|
-
// get the number of changes
|
|
112
|
-
changes = UtilsSQLCipher.dbChanges(mDB: mDB.mDb) -
|
|
113
|
-
initChanges
|
|
114
|
-
return changes
|
|
115
|
-
} catch UtilsFileError.copyFileFailed {
|
|
116
|
-
let msg: String = "Failed in copy file"
|
|
117
|
-
throw UtilsUpgradeError.onUpgradeFailed(message: msg)
|
|
118
|
-
} catch UtilsSQLCipherError
|
|
119
|
-
.setForeignKeyConstraintsEnabled(let message) {
|
|
120
|
-
var msg: String = "Failed in "
|
|
121
|
-
msg.append("setForeignKeyConstraintsEnabled \(message)")
|
|
122
|
-
throw UtilsUpgradeError.onUpgradeFailed(message: msg)
|
|
123
|
-
} catch UtilsUpgradeError.executeStatementProcessFailed(
|
|
124
|
-
let message) {
|
|
125
|
-
var msg: String = message
|
|
126
|
-
do {
|
|
127
|
-
// -> Drop _temp_tables
|
|
128
|
-
_ = try UtilsDrop
|
|
129
|
-
.dropTempTables(mDB: mDB,
|
|
130
|
-
alterTables: self.alterTables)
|
|
131
|
-
// -> Do some cleanup
|
|
132
|
-
self.alterTables = [:]
|
|
133
|
-
self.commonColumns = [:]
|
|
134
|
-
|
|
135
|
-
} catch UtilsDropError.dropTempTablesFailed(let message) {
|
|
136
|
-
msg += ": \(message)"
|
|
137
|
-
throw UtilsUpgradeError.onUpgradeFailed(
|
|
138
|
-
message: message)
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
throw UtilsUpgradeError.onUpgradeFailed(
|
|
142
|
-
message: message)
|
|
143
|
-
} catch UtilsDropError.dropTempTablesFailed(let message) {
|
|
144
|
-
throw UtilsUpgradeError.onUpgradeFailed(
|
|
145
|
-
message: message)
|
|
146
|
-
} catch UtilsUpgradeError.executeSetProcessFailed(
|
|
147
|
-
let message) {
|
|
148
|
-
throw UtilsUpgradeError.onUpgradeFailed(
|
|
149
|
-
message: message)
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
// swiftlint:enable function_parameter_count
|
|
153
|
-
// swiftlint:enable function_body_length
|
|
154
|
-
// swiftlint:enable cyclomatic_complexity
|
|
155
|
-
|
|
156
|
-
// MARK: - ExecuteSetProcess
|
|
157
|
-
|
|
158
|
-
// swiftlint:disable function_body_length
|
|
159
|
-
func executeSetProcess(mDB: Database, set: [[String: Any]],
|
|
160
|
-
toVersion: Int) throws {
|
|
161
|
-
var msg: String = "Error: executeSetProcess "
|
|
162
|
-
do {
|
|
163
|
-
// -> load new data
|
|
164
|
-
let changesDict: [String: Int64] = try mDB.execSet(set: set)
|
|
165
|
-
if let changes = changesDict["changes"] {
|
|
166
|
-
if changes < 0 {
|
|
167
|
-
msg.append("changes < 0")
|
|
168
|
-
throw UtilsUpgradeError.executeSetProcessFailed(
|
|
169
|
-
message: msg)
|
|
24
|
+
databaseLocation: String) throws {
|
|
25
|
+
print("UtilsUpgrade.onUpgrade: \(currentVersion) => \(targetVersion)")
|
|
26
|
+
|
|
27
|
+
for (versionKey, upgrade) in Array(upgDict).sorted(by: {$0.0 < $1.0}) {
|
|
28
|
+
if versionKey > currentVersion && versionKey <= targetVersion {
|
|
29
|
+
guard let statements = upgrade["statements"] as? [String] else {
|
|
30
|
+
let msg: String = "Error: onUpgrade statements not given"
|
|
31
|
+
throw UtilsUpgradeError.onUpgradeFailed(message: msg)
|
|
170
32
|
}
|
|
171
|
-
}
|
|
172
33
|
|
|
173
|
-
|
|
174
|
-
|
|
34
|
+
do {
|
|
35
|
+
_ = try executeStatementsProcess(mDB: mDB, statements: statements)
|
|
175
36
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
let date = Date()
|
|
182
|
-
let syncTime: Int =
|
|
183
|
-
Int(date.timeIntervalSince1970)
|
|
184
|
-
var stmt: String = "UPDATE sync_table SET "
|
|
185
|
-
stmt.append("sync_date = \(syncTime) ")
|
|
186
|
-
stmt.append("WHERE id = 1;")
|
|
187
|
-
let retRun: [String: Int64] = try mDB.runSQL(
|
|
188
|
-
sql: stmt, values: [])
|
|
189
|
-
guard let lastId: Int64 = retRun["lastId"] else {
|
|
190
|
-
msg.append("Update Sync Date lastId not returned")
|
|
191
|
-
throw UtilsUpgradeError.executeSetProcessFailed(
|
|
192
|
-
message: msg)
|
|
193
|
-
}
|
|
194
|
-
if lastId == -1 {
|
|
195
|
-
msg.append("Update Sync Date lastId < 0")
|
|
196
|
-
throw UtilsUpgradeError.executeSetProcessFailed(
|
|
197
|
-
message: msg)
|
|
37
|
+
try UtilsSQLCipher.setVersion(mDB: mDB, version: versionKey)
|
|
38
|
+
} catch UtilsSQLCipherError.setVersion(let message) {
|
|
39
|
+
throw UtilsUpgradeError.onUpgradeFailed(message: "Error: onUpgrade update version: \(message)")
|
|
40
|
+
} catch UtilsUpgradeError.executeStatementsProcessFailed(let message) {
|
|
41
|
+
throw UtilsUpgradeError.onUpgradeFailed(message: "Error: onUpgrade executeStatementProcess: \(message)")
|
|
198
42
|
}
|
|
199
43
|
}
|
|
200
|
-
} catch DatabaseError.execSet(let message) {
|
|
201
|
-
throw UtilsUpgradeError.executeSetProcessFailed(
|
|
202
|
-
message: message)
|
|
203
|
-
} catch UtilsSQLCipherError.setVersion(let message) {
|
|
204
|
-
throw UtilsUpgradeError.executeSetProcessFailed(
|
|
205
|
-
message: message)
|
|
206
|
-
} catch UtilsJsonError.tableNotExists(let message) {
|
|
207
|
-
throw UtilsUpgradeError.executeSetProcessFailed(
|
|
208
|
-
message: message)
|
|
209
|
-
} catch DatabaseError.runSQL(let message) {
|
|
210
|
-
throw UtilsUpgradeError.executeSetProcessFailed(
|
|
211
|
-
message: message)
|
|
212
44
|
}
|
|
213
45
|
}
|
|
214
|
-
// swiftlint:enable function_body_length
|
|
215
46
|
|
|
216
47
|
// MARK: - ExecuteStatementProcess
|
|
217
48
|
|
|
218
|
-
func
|
|
49
|
+
func executeStatementsProcess(mDB: Database, statements: [String])
|
|
219
50
|
throws {
|
|
220
|
-
var changes: Int = -1
|
|
221
51
|
do {
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
// -> Drop all Indexes
|
|
228
|
-
_ = try UtilsDrop.dropIndexes(mDB: mDB)
|
|
229
|
-
// -> Drop all Triggers
|
|
230
|
-
_ = try UtilsDrop.dropTriggers(mDB: mDB)
|
|
231
|
-
|
|
232
|
-
// -> Create new tables from upgrade.statement
|
|
233
|
-
changes = try mDB.executeSQL(sql: statement)
|
|
234
|
-
if changes < 0 {
|
|
235
|
-
throw UtilsUpgradeError.executeStatementProcessFailed(
|
|
236
|
-
message: "Create new tables failed")
|
|
52
|
+
do {
|
|
53
|
+
try UtilsSQLCipher.beginTransaction(mDB: mDB)
|
|
54
|
+
} catch UtilsSQLCipherError.beginTransaction(let message) {
|
|
55
|
+
throw DatabaseError.executeSQL(message: "Error: onUpgrade: \(message)")
|
|
237
56
|
}
|
|
238
57
|
|
|
239
|
-
// ->
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
// -> Update the new table's data from old table's data
|
|
243
|
-
_ = try updateNewTablesData(mDB: mDB)
|
|
244
|
-
|
|
245
|
-
} catch UtilsUpgradeError.backupTablesFailed(let message) {
|
|
246
|
-
throw UtilsUpgradeError.executeStatementProcessFailed(
|
|
247
|
-
message: message)
|
|
248
|
-
} catch UtilsDropError.dropIndexesFailed(let message) {
|
|
249
|
-
throw UtilsUpgradeError.executeStatementProcessFailed(
|
|
250
|
-
message: message)
|
|
251
|
-
} catch UtilsDropError.dropTriggersFailed(let message) {
|
|
252
|
-
throw UtilsUpgradeError.executeStatementProcessFailed(
|
|
253
|
-
message: message)
|
|
254
|
-
} catch DatabaseError.executeSQL(let message) {
|
|
255
|
-
throw UtilsUpgradeError.executeStatementProcessFailed(
|
|
256
|
-
message: message)
|
|
257
|
-
} catch UtilsUpgradeError.findCommonColumnsFailed(
|
|
258
|
-
let message) {
|
|
259
|
-
throw UtilsUpgradeError.executeStatementProcessFailed(
|
|
260
|
-
message: message)
|
|
261
|
-
} catch UtilsUpgradeError.updateNewTablesDataFailed(
|
|
262
|
-
let message) {
|
|
263
|
-
throw UtilsUpgradeError.executeStatementProcessFailed(
|
|
264
|
-
message: message)
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
}
|
|
268
|
-
|
|
269
|
-
// MARK: - backupTables
|
|
270
|
-
|
|
271
|
-
func backupTables(mDB: Database) throws {
|
|
272
|
-
do {
|
|
273
|
-
let tables: [String] = try UtilsDrop
|
|
274
|
-
.getTablesNames(mDB: mDB)
|
|
275
|
-
for table in tables {
|
|
276
|
-
try backupTable(mDB: mDB, tableName: table)
|
|
58
|
+
// -> Excecute statements
|
|
59
|
+
for (statement) in statements {
|
|
60
|
+
_ = try mDB.executeSQL(sql: statement, transaction: false)
|
|
277
61
|
}
|
|
278
|
-
} catch UtilsDropError.getTablesNamesFailed(let message) {
|
|
279
|
-
throw UtilsUpgradeError.backupTablesFailed(message: message)
|
|
280
|
-
} catch UtilsUpgradeError.backupTableFailed(let message) {
|
|
281
|
-
throw UtilsUpgradeError.backupTablesFailed(message: message)
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
// MARK: - backupTable
|
|
286
62
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
// get the column's name
|
|
292
|
-
columnNames = try getTableColumnNames(mDB: mDB,
|
|
293
|
-
tableName: tableName)
|
|
294
|
-
alterTables["\(tableName)"] = columnNames
|
|
295
|
-
let tmpTable = "_temp_\(tableName)"
|
|
296
|
-
let delStmt: String = "DROP TABLE IF EXISTS \(tmpTable);"
|
|
297
|
-
_ = try mDB.runSQL(sql: delStmt, values: [])
|
|
298
|
-
// prefix the table with _temp_
|
|
299
|
-
var stmt: String = "ALTER TABLE \(tableName) RENAME "
|
|
300
|
-
stmt.append("TO \(tmpTable);")
|
|
301
|
-
let retRun: [String: Int64] = try mDB.runSQL(
|
|
302
|
-
sql: stmt, values: [])
|
|
303
|
-
guard let changes: Int64 = retRun["changes"] else {
|
|
304
|
-
msg.append("changes not returned")
|
|
305
|
-
throw UtilsUpgradeError.backupTableFailed(
|
|
306
|
-
message: msg)
|
|
307
|
-
}
|
|
308
|
-
if changes < 0 {
|
|
309
|
-
msg.append("changes < 0")
|
|
310
|
-
throw UtilsUpgradeError.backupTableFailed(
|
|
311
|
-
message: msg)
|
|
63
|
+
do {
|
|
64
|
+
try UtilsSQLCipher.commitTransaction(mDB: mDB)
|
|
65
|
+
} catch UtilsSQLCipherError.commitTransaction(let message) {
|
|
66
|
+
throw DatabaseError.executeSQL(message: "Error: onUpgrade: \(message)")
|
|
312
67
|
}
|
|
313
68
|
|
|
314
|
-
} catch
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
}
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
// MARK: - getTableColumnNames
|
|
323
|
-
|
|
324
|
-
func getTableColumnNames(mDB: Database, tableName: String)
|
|
325
|
-
throws -> [String] {
|
|
326
|
-
var retNames: [String] = []
|
|
327
|
-
let query: String = "PRAGMA table_info('\(tableName)');"
|
|
328
|
-
do {
|
|
329
|
-
var resColumns: [[String: Any]] = try
|
|
330
|
-
mDB.selectSQL(sql: query, values: [])
|
|
331
|
-
if resColumns.count > 0 {
|
|
332
|
-
resColumns.removeFirst()
|
|
333
|
-
for rColumn in resColumns {
|
|
334
|
-
guard let columnName: String = rColumn["name"] as?
|
|
335
|
-
String else {
|
|
336
|
-
throw
|
|
337
|
-
UtilsUpgradeError.getTableColumnNamesFailed(
|
|
338
|
-
message: "Error did not find column name")
|
|
339
|
-
}
|
|
340
|
-
retNames.append(columnName)
|
|
341
|
-
}
|
|
69
|
+
} catch DatabaseError.executeSQL(let message) {
|
|
70
|
+
do {
|
|
71
|
+
try UtilsSQLCipher.rollbackTransaction(mDB: mDB)
|
|
72
|
+
} catch UtilsSQLCipherError.rollbackTransaction(let message2) {
|
|
73
|
+
throw DatabaseError.executeSQL(message: "Error: onUpgrade: \(message) \(message2)")
|
|
342
74
|
}
|
|
343
|
-
return retNames
|
|
344
|
-
} catch DatabaseError.selectSQL(let message) {
|
|
345
|
-
throw UtilsUpgradeError.getTableColumnNamesFailed(
|
|
346
|
-
message: "Error get column's names failed : \(message)")
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
75
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
func findCommonColumns(mDB: Database) throws {
|
|
353
|
-
var columnNames: [String] = []
|
|
354
|
-
do {
|
|
355
|
-
let tables: [String] = try UtilsDrop
|
|
356
|
-
.getTablesNames(mDB: mDB)
|
|
357
|
-
for table in tables {
|
|
358
|
-
columnNames = try getTableColumnNames(mDB: mDB,
|
|
359
|
-
tableName: table)
|
|
360
|
-
if alterTables["\(table)"] != nil {
|
|
361
|
-
if let array1: [String] = alterTables["\(table)"] {
|
|
362
|
-
commonColumns["\(table)"] =
|
|
363
|
-
arrayIntersection(array1: array1,
|
|
364
|
-
array2: columnNames)
|
|
365
|
-
}
|
|
366
|
-
}
|
|
367
|
-
}
|
|
368
|
-
} catch UtilsDropError.getTablesNamesFailed(let message) {
|
|
369
|
-
throw UtilsUpgradeError.findCommonColumnsFailed(
|
|
370
|
-
message: message)
|
|
371
|
-
} catch UtilsUpgradeError.getTableColumnNamesFailed(
|
|
372
|
-
let message) {
|
|
373
|
-
throw UtilsUpgradeError.findCommonColumnsFailed(
|
|
374
|
-
message: message)
|
|
375
|
-
}
|
|
376
|
-
}
|
|
377
|
-
func arrayIntersection( array1: [String], array2: [String])
|
|
378
|
-
-> [String] {
|
|
379
|
-
let array1Set = Set(array1)
|
|
380
|
-
let array2Set = Set(array2)
|
|
381
|
-
return Array(array1Set.intersection(array2Set))
|
|
382
|
-
}
|
|
383
|
-
func updateNewTablesData(mDB: Database) throws {
|
|
384
|
-
var msg: String = "Error: updateNewTablesData "
|
|
385
|
-
var changes: Int = -1
|
|
386
|
-
do {
|
|
387
|
-
var statements: [String] = []
|
|
388
|
-
let keys: [String] = Array(commonColumns.keys)
|
|
389
|
-
for key in keys {
|
|
390
|
-
if let values = commonColumns["\(key)"] {
|
|
391
|
-
let columns: String = values.joined(separator: ",")
|
|
392
|
-
var stmt: String = "INSERT INTO \(key) "
|
|
393
|
-
stmt.append("(\(columns)) SELECT ")
|
|
394
|
-
stmt.append("\(columns) FROM _temp_\(key);")
|
|
395
|
-
statements.append(stmt)
|
|
396
|
-
}
|
|
397
|
-
}
|
|
398
|
-
if statements.count > 0 {
|
|
399
|
-
let joined = statements.joined(separator: "\n")
|
|
400
|
-
changes = try mDB.executeSQL(sql: joined)
|
|
401
|
-
if changes < 0 {
|
|
402
|
-
msg.append("changes < 0")
|
|
403
|
-
throw UtilsUpgradeError.updateNewTablesDataFailed(
|
|
404
|
-
message: msg)
|
|
405
|
-
}
|
|
406
|
-
}
|
|
407
|
-
} catch DatabaseError.executeSQL(let message) {
|
|
408
|
-
throw UtilsUpgradeError.updateNewTablesDataFailed(
|
|
409
|
-
message: message)
|
|
76
|
+
throw UtilsUpgradeError.executeStatementsProcessFailed(message: message)
|
|
410
77
|
}
|
|
78
|
+
|
|
411
79
|
}
|
|
412
80
|
}
|
|
413
81
|
// swiftlint:enable type_body_length
|
|
414
|
-
// swiftlint:enable file_length
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capacitor-community/sqlite",
|
|
3
|
-
"version": "4.1.0-
|
|
3
|
+
"version": "4.1.0-7",
|
|
4
4
|
"description": "Community plugin for native & electron SQLite databases",
|
|
5
5
|
"main": "dist/plugin.cjs.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -93,6 +93,6 @@
|
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
95
|
"dependencies": {
|
|
96
|
-
"jeep-sqlite": "^1.5.
|
|
96
|
+
"jeep-sqlite": "^1.5.8"
|
|
97
97
|
}
|
|
98
98
|
}
|