-
Notifications
You must be signed in to change notification settings - Fork 716
Description
Minor release
Mandatory
ADDITIONAL (GENERAL):
-
Workaround solutions for iOS/macOS data loss risk issues:DONE-
compile withDONESQLITE_THREADSAFE=2again ref: Database malformation #703 -
workaround solution for iOS threading issue reported in iOS threading issue with openDatabase? #716DONE
-
- Deal with Windows app store issue discussed in Open Database fails on Windows 10 Release Build [Store -> Create app packages] #563 in documentation and maybe build.
-
AddDONE/SAFESHas described in:
Documentation
- Pitfalls of using WAL ref: WAL pitfalls cordova-sqlite-storage-help#10
- Use with https://github.com/dpa99c/cordova-sqlite-porter ref: Prepopulated database documentation fix [options] cordova-sqlite-storage-help#26
- Other prepopulated database documentation items ref: Prepopulated database documentation fix [options] cordova-sqlite-storage-help#26
ADDITIONAL:
-
Note that standard transaction mechanism is no longer recommended and to be deprecated ref: Deprecate standard transaction mechanism in next major release? #690DONE -
Document "multiple sqlite problem risk" ref: Possible "Multiple SQLite problem" (corruption problem) on multiple platforms #626DONE - TBD Document safest settings to use for database on Android ref: Safer Android defaults #671
Feature(s)
UPDATE: Moved to major release ref: #687 due to time/schedule constraint:
-
Function to get database directory path ref: Function to get [default] database directory path #680 (may be affected by Database storage in arbitrary path (Android/iOS/macOS/Windows) #681: Database storage in arbitrary path Android/iOS/macOS/Windows)
Highly desired
Documentation
- Document why Windows AnyCPU target is not possible ref: Document why Windows AnyCPU target is not possible cordova-sqlite-storage-help#19
- Documentation of single-statement API ref: Documentation of single-statement API cordova-sqlite-storage-help#17
- Statement of compliance to Web SQL Database DRAFT API ref: Statement of compliance to Web SQL Database DRAFT API #553
Testing
- Extremely large/small values ref: Extremely large/small values #627
ADDITIONAL:
- Test with advanced features such as JOIN & VIEW ref: Test with advanced features such as JOIN & VIEW #658
Fixes & features
UPDATE: these updates are expected to come in the major release ref: #687
- CREATE database if it does not exist should be optional ref: CREATE database if it does not exist should be optional #212
- Database storage in arbitrary path (Android/iOS/macOS/Windows) ref: Database storage in arbitrary path (Android/iOS/macOS/Windows) #681
- Deprecate other iOS database locations ref: Deprecate other iOS database locations #682
ADDITIONAL, HIGHLY DESIRED before major release now expected to come in the major release ref: #687
-
Use UTF-8 encoding for Windows ref: Use UTF-8 encoding for Windows? #652
-
TBD better cleanup of "new transaction is waiting for open operation" log messages ref: new transaction is waiting for open operation - before open #679 -
SQLite3 compile options such as HAVE_USLEEP & NDEBUG for closer match to sqlcipher version
-
Integrate fix contributed in (Windows) added fix to preserve embedded nulls within text data #709 to handle NULL (
u0000) characters on Windows platform -
Should refuse to open new database files after
onDestroyon Android has been called, equivalent on iOS ref: PR Fix ProGuard issue with map.keySet() on Java 8 #697 -
Update needed to work with cordova-android@7 ref: Update to work with [email protected] #729
-
builtin android.database end transaction if active before closing (8192bc8) ref:Cordova sqlite express EXPERIMENTAL WIP #730DONE -
Bind all numbers as REAL numbers ref: Bind all numbers as REAL values #684 possibly before major release
-
TBD (possibly related to Bind all numbers as REAL values #684): builtin android.database implementation seems to treat numeric parameter argument values as string values, needs investigation ref: Cordova sqlite express EXPERIMENTAL WIP #730 (comment)
-
TBD for investigation: PRAGMA journal_mode should be same value on builtin android.database implementation, default Android-sqlite-connector implementation, and other platforms ref: Cordova sqlite express EXPERIMENTAL WIP #730 (comment)WILL NOT BE CHANGED: PRAGMA journal_mode reportsdeletein case of default android.database implementation (same as other platform implementations) on Android 8.1 -
Fix broken Circle/Travis CI or remove
-
JavaScript remove qid no longer needed & other cleanup
-
Fix for builtin android.database implementation on Turkish and other foreign locales in PR Fix for turkish locale #713
-
PR Add plugin typings from DefinitelyTyped #657: Add plugin typings from DefinitelyTyped
-
address iOS/macOS resource leak when deleting database without closing first
-
Use extra durable build option as described in EXTRA DURABLE build setting to improve robustness against corruption #736 (comment)
-
review any other possible causes of database corruption
ref: EXTRA DURABLE build setting to improve robustness against corruption #736TBD -
iOS/macOS platform version openDatabase checks from https://github.com/brodybits/cordova-sqlite-evmax-legacy-exp-free
-
Resolve issue with PSPDFKit ref: Duplicated symbols [iOS platform version] cordova-sqlcipher-adapter#59
-
Windows implementation should include an error object when signaling a close error
-
Resolve INCORRECT error code / INCONSISTENT error messages on Windows
-
TBD include actual error code, perhaps in error message (already done on builtin android.database implementation in case of androidDatabaseImplementation: 2 on Android)
-
Include info about prepare statement error vs execute statement error, as done on Windows
-
testing with PRAGMA foreign_keys ref: PRAGMA foreign_keys not working cordova-sqlite-evcore-extbuild-free#23
-
test/document issue with Unicode column name ref: Query result contains wrong key when column name is CJK character #641.
-
improve testing & documentation related to Unicode characters on Android ref: Unicode issues (Android) #739
-
document existence of spatialite fork
-
pointer to https://github.com/Crypho/cordova-plugin-secure-storage
ADDITIONAL DOCUMENTATION:
- https://devdactic.com/ionic-sqlite-queries-database/ - using cordova-sqlite-storage with sqlite-porter
- https://www.thepolyglotdeveloper.com/2014/11/use-sqlite-instead-local-storage-ionic-framework/
- https://www.thepolyglotdeveloper.com/2015/01/deploy-ionic-framework-app-pre-filled-sqlite-db/ - using an-rahulpandey / cordova-plugin-dbcopy with cordova-sqlite-storage
- https://github.com/nolanlawson/cordova-prepopulated-database-demo (pre-populated demo with sqlite plugin 2)
- https://codesundar.com/lesson/cordova-sqlite-storage/
- http://blog.bradleygore.com/2015/09/25/cordova-sqlite-migrations/
- http://blog.bradleygore.com/2015/08/24/getting-started-with-cordova-sqlite/
- Additional items from prepopulated database documentation updates in Prepopulated database documentation fix [options] cordova-sqlite-storage-help#26
- https://www.thepolyglotdeveloper.com/2014/11/use-sqlite-instead-local-storage-ionic-framework/
- https://devdactic.com/ionic-sqlite-queries-database/ - using cordova-sqlite-storage with sqlite-porter
- possible Android content provider solution ref: Android content provider solution cordova-sqlite-storage-help#9
MAJOR DOCUMENTATION CLEANUP NEEDED here or in NEXT MAJOR RELEASE (#687) ref: storesafe/cordova-sqlite-storage-help#33 & #596 (comment)
Timeline
4-6 weeks due to existing backlog