Cordova-sqlite-storage: Major release with possible enhancements & breaking changes

Created on 19 Apr 2018  路  5Comments  路  Source: storesafe/cordova-sqlite-storage

Major

__Under consideration, as of February 2019:__

  • browser platform support using kripken / sql.js as discussed in #576
  • combine this plugin version together with cordova-sqlite-ext, no more separate version to get pre-populated databases and other extra/extended features (#529)
  • will likely be moved to a new organization name due to personal rebranding (#770)

__Highly desired (not promised):__

Breaking changes

  • _SQLITE_DBCONFIG_DEFENSIVE database option (#838) - to be part of a special major release in January or February 2019_
  • drop support for old Android versions as discussed in #771:

    • definite: Android pre-4.0

    • extremely likely: Android 4.0

    • very likely: Android 4.1-4.3

    • planned (open for feedback and discussion): Android 4.4, old armeabi CPU (seems to be replaced by armeabi and arm64-v8a, does not seem to be supported by Android 5.0 and greater)

  • _error code going away, will be set to 0 in the coming major release (#821)_
  • drop support for iOS 8.x (was already dropped by [email protected])
  • drop Android NDK build for x86_64 (#772, open for discussion; x86 NDK build will also work on x86_64 device, if no other plugins have NDK build for x86_64)
  • _legacy location: 0-2 values will no longer be supported; please use location: 'default' or iosDatabaseLocation setting in openDatabase as documented_

Possibly breaking changes

  • Use of databases with multi-byte UTF-8 characters, control characters, and other special characters may be broken by changes for UTF-8 internal encoding (#652) on Windows (already NOT RECOMMENDED in the existing documentation)
  • iOS/macOS remove workaround for missing objc_arc feature & remove extra @synchronized blocks no longer needed (#769; risk of actual breakage is expected to be very low)
  • _iOS/macOS signal error result in case of attempt to open database with no name in internal JSON interface (internal plugin error) - already done_
  • _Update default page size ref: #781_

Other

Time permitting:

  • SQL result rows with array index access ([...]) in addition to .item(...) member function (https://github.com/litehelpers/cordova-sqlite-ext/issues/71)
  • _more sensical androidDatabaseImplementation value such as 'system' to select use of system builtin android.database.sqlite access implementation instead of default NDK sqlite-native-driver implementation_
  • _resolve crash issue on Android in case of SELECT X'FFD1FFD2'_
  • _remove internal qid from JavaScript (no longer needed)_
  • _use coffeescript@2 to compile SQLitePlugin.coffee.md_
  • _clarify use of SQLite3 NDK build on Android in documentation_
  • _fix git repo URL in package.json ref: #701_
  • _non-static db runner map on Android ref: https://github.com/litehelpers/Cordova-sqlite-storage/pull/763#issuecomment-384500230_
  • _Fix CoffeeScript/JavaScript to handle backgroundExecuteSqlBatch error callback as an internal error ref: #763_
  • _Fix Android implementation to block attempts to open database after onDestroy is called ref: #697_
  • _try to fix Travis CI / Circle CI_
  • _check U+0000 behavior on iOS vs Android, Windows, Web SQL, ..._
  • _consistent whole number bindings on all platforms_
  • other major release changes listed in #687
enhancement doc-todo testing discussion doc-pitfall doc-general bug-data-loss-risk

Most helpful comment

@sithwarrior I see a tag for 3.2.0 already.
@brodybits For these breaking changes, the new version would be 4 onwards?

I am planning on integrating this plugin, but I am not sure if I should wait for the new release!

All 5 comments

I just added the bug-data-loss-risk label since this release will include #838 (SQLITE_DBCONFIG_DEFENSIVE flag) which is a defense against a potential data loss issue.

@brodybits Hi Brody. Im a little confused about the versioning, and the breaking changes. is v3 the version with the changes?

Im currently on v2.4, and want to update the plugin, should I currently use v2.6 or do the transition to v3?

@sithwarrior I see a tag for 3.2.0 already.
@brodybits For these breaking changes, the new version would be 4 onwards?

I am planning on integrating this plugin, but I am not sure if I should wait for the new release!

I suggest you guys use the updated version since it has the defense against the possible data loss issue.

I suggest you guys use the updated version since it has the defence against the possible data loss issue.

Hi Chris,
Could you please let us know which is the correct 'updated version'?
Thank you in advance!

Was this page helpful?
0 / 5 - 0 ratings

Related issues

TommyQu picture TommyQu  路  3Comments

TommyQu picture TommyQu  路  4Comments

prevostc picture prevostc  路  5Comments

tuanbs picture tuanbs  路  3Comments

reconka picture reconka  路  5Comments