sqlite3 3.0.0-beta.0
sqlite3: ^3.0.0-beta.0 copied to clipboard
Provides lightweight yet convenient bindings to SQLite by using dart:ffi
3.0.0-beta.0 #
- Breaking change: Use build hooks to load
SQLite instead of
DynamicLibrary.- The SQLite library can only be customized with user defines.
- You should drop your dependencies on
sqlite3_flutter_libsandsqlcipher_flutter_libswhen upgrading.
- Breaking change: Parameters to
SqliteExceptions are now named.
2.9.2 #
- Fix a bug introduced in version
2.9.1where the SQLite framework provided bysqlite3_flutter_libswould not load correctly on iOS.
2.9.1 #
- Check for error codes when binding values to prepared statements.
- Flutter: Fix loading SwiftPM libraries from
sqlite3_flutter_libs.
2.9.0 #
- Add
CommonDatabase.updatesSync, a synchronous variant of the updates stream.
2.8.0 #
- Support creating changesets and patchsets via the session extension.
- Add the
SubtypedValueextension type to allow returning values with a subtype. - Add the
subtypeOfmethod to theSqliteArgumentsinterface passed to user-defined functions. It returns the subtype assigned to an argument. - Web: Refactor SQLite bindings to make them easier for compilers to optimize.
2.7.7 #
jsonbcodec: Refuse to encode NaN values since recent SQLite versions reject them.
2.7.6 #
- Export
package:sqlite3/native_assets.dart, making it easier for libraries to support both the regularsqlite3getter and the upcomingsqlite3NativeAssetsvariant. - Fix dereferencing null pointer when reading file names for temporary files in native VFS implementation.
2.7.5 #
- On Windows, try loading
winsqlite3.dllas a fallback if loadingsqlite3.dllfails.
2.7.4 #
- Prepare support for accessing SQLite through native assets. This is available
as a preview through
package:sqlite3_native_assets.
2.7.3 #
- Web: Support
localtimedatetime modifier in SQLite. - Introduce topics to dartdoc documentation.
- Report locations of syntax errors in
SqliteException.
2.7.2 #
- Web: Fix update events not being delivered in some shared worker setups.
2.7.1 #
- Web: Fix a crash when using version
2.7.0of this package with an older WebAssembly bundle. Note: Version2.7.0has been retracted from pub.dev for this reason.
2.7.0 #
- Add support for commit and rollback hooks as well as a predicate that can revert transactions. Thanks to @jackd!
2.6.1 #
- Fix out-of-bound reads in the
xWriteimplementation of the OPFS-locks based file-system implementation when writing more than 64 KiB in one operation. - Support SQLite libraries compiled with
SQLITE_OMIT_AUTOINIT.
2.6.0 #
- Add
SimpleOpfsFileSystem.deleteFromStorageto delete OPFS-based file systems. - Add
jsonb, a DartCodecconverting Dart object from and to SQLiteJSONBvalues. - Experimentally support encryption on the web through SQLite Multiple Ciphers. The readme provides more information on how to use encryption on the web.
2.5.0 #
- Allow registering custom virtual file systems on all platforms. Previously, this was only supported on the web.
- IndexedDB file system: Store
ArrayBuffers instead ofBlobs when it looks like storing blobs would cause issues.
2.4.7 #
- Web: Improve performance of in-memory and IndexedDB file system implementations.
2.4.6 #
- WebAssembly: Call
_initializefunction of sqlite3 module if one is present. - Support version 1.0.0 of
package:web.
2.4.5 #
- Fix a bug in the OPFS-locks implementation causing a deadlock when the
xSleepVFS call is issued. - Fix selecting large integers (being represented as a
BigIntin Dart) not working when compiled with dartdevc.
2.4.4 #
- Add a temporary workaround for a Dart bug causing spurious exceptions when databases are closed and a debugger is attached.
2.4.3 #
- Migrate away from legacy web APIs:
dart:html,dart:js,dart:indexeddbandpackage:jsare no longer imported from this package. - Experimentally support being compiled to WebAssembly. Strong caveats apply, please check #230 before relying on this!
2.4.1+1 #
- Allow version
0.7.xof thejspackage. - Reduce size of
sqlite3.wasmbundle by removing symbols not referenced in Dart.
2.4.0 #
- Add
isReadOnlyandisExplaingetters to prepared statements. - Set
NativeCallable.keepIsolateAlivetofalsefor callables managed by this package.
2.3.0 #
- Add the
autocommitgetter on databases wrappingsqlite3_get_autocommit. - Improve the error message in the exception when opening a database fails.
2.2.0 #
- Add
updatedRowsgetter to eventually replacegetUpdatedRows()method. - Clarify documentation on
lastInsertRowIdandupdatedRows. - Allow customizing the amount of pages to lock at a time in
backup. A larger amount will result in better backup performance. - Use
NativeCallables for user-defined functions, collations and update streams.
2.1.0 #
- Add
configgetter toCommonDatabaseto accesssqlite3_db_config.
2.0.0 #
- Breaking: The WASM implementation no longer registers a default virtual
file system. Instead,
registerVirtualFileSystemneeds to be used to add desired file system implementations. - Breaking: Fix a typo,
CommmonSqlite3is now calledCommonSqlite3. - Breaking: Introduce class modifiers on classes of this package that aren't meant to be extended or implemented by users.
- Add
PreparedStatement.reset(). - Add the
CustomStatementParameterclass which can be passed as a statement parameter with a customsqlite3_bind_*call. - Add the
StatementParametersclass andexecuteWith/selectWithmethods onCommonPreparedStatement. They can be used to control whether values are bound by index or by name. TheselectMapandexecuteMapmethods have been deprecated.
1.11.2 #
- Report correct column names for statements that have been re-compiled due to schema changes.
1.11.1 #
- Fix user-defined functions returning text not supporting multi-byte utf8 characters.
1.11.0 #
- Add
WasmSqlite3.loadFromUrlwhich uses a streamingfetch()request to load the sqlite3 WASM binary. - Add
OpfsFileSystem, a file system implementation for the WASM library that is based on the synchronous File System Access API. - The WASM version of sqlite3 used by this library is now compiled with
-Ozinstead of-Ofast.
1.10.1 #
- Fix a regression introduced in 1.10.0 causing crashes when SQL statements containing non-ASCII characters are prepared.
1.10.0 #
- Rewrite the implementation to allow more code reuse between
dart:ffiand the WASM-based web implementation.
1.9.3 #
- Provide more information about the source of sqlite exceptions.
- Fix prepared statements without parameters not being reused properly.
1.9.2 #
- Include parameters when throwing an exception in prepared statements.
1.9.1 #
- Change
Row.keysandRow.valuesto return a list.
1.9.0 #
- Add an API for sqlite3's backup API via
Database.backup(). - Add an API to load extensions via
sqlite3.ensureExtensionLoaded.
1.8.0 #
- Use a
Finalizerto automatically dispose databases and statements. As finalizers in Dart aren't reliable, you should still make sure to calldisposemanually after you're done with a database or a statement. - Avoid using generative constructors on
@staticInteropclasses.
1.7.2 #
- Optimizations in the wasm-based file system.
- Fix the
mutexparameter not doing anything in the FFI-based implementation.
1.7.1 #
- Allow binding
BigInts to statements and functions. They must still be representable as a 64-bit int, but this closes a compatibility gap between the web and the native implementations. - Use ABI-specific integer types internally.
1.7.0 #
- Add support for application-defined window functions. To register a custom
window function, implement
WindowFunctionand register your function withdatabase.registerAggregateFunction. - Breaking (For the experimental
package:sqlite3/wasm.dartlibrary):- The IndexedDB implementation now stores data in 4k blocks instead of full files.
- Removed
IndexedDbFileSystem.load. UseIndexedDbFileSystem.openinstead. - An
IndexedDbFileSystemnow stores all files, the concept of a persistence root has been removed. To access independent databases, use twoIndexedDbFileSystems with a different database name.
1.6.4 #
- Add
FileSystem.listFiles()to list all files in a virtual WASM file system.
1.6.3 #
- Support running
sqlite3/wasm.dartin web workers.
1.6.2 #
- Fix
CURRENT_TIMESTAMPnot working with the WebAssembly backend.
1.6.1 #
- Better support loading sqlite3 on Linux when using
sqlite3_flutter_libs.
1.6.0 #
- Very experimental web support, based on compiling sqlite3 to web assembly with a custom file system implementation.
1.5.1 #
- Fix
checkNoTailthrowing for harmless whitespace or comments following a SQL statement. - Fix a native null-pointer dereference when calling
preparewith a statement exclusively containing whitespace or comments. - Fix a potential out-of-bounds read when preparing statements.
1.5.0 #
- Add
prepareMultiplemethod to prepare multiple statements from one SQL string. - Add
selectMapandexecuteMaponPreparedStatementto bind SQL parameters by their name instead of their index. - Add support for custom collations with
createCollation.
1.4.0 #
- Report writes on the database through the
Database.updatesstream - Internal: Use
ffigento generate native bindings
1.3.1 #
- Fix a crash with common iOS and macOS configurations.
The crash has been introduced in version 1.3.0, which should be avoided.
Please consider adding
sqlite3: ^1.3.1to your pubspec to avoid getting the broken version
1.3.0 #
- Add
Cursor.tableNamesandRow.toTableColumnMap()to obtain tables involved in a result set. Thanks to @juancastillo0!
1.2.0 #
- Add the
selectCursorAPI onPreparedStatementto step through a result set row by row. - Report the causing SQL statement in exceptions
- Use a new Dart API to determine whether symbols are available
1.1.2 #
- Attempt opening sqlite3 from
DynamicLibrary.process()on macOS
1.1.1 #
- Fix memory leak when preparing statements!
- Don't allow
executewith arguments when the provided sql string contains more than one argument.
1.1.0 #
- Add optional parameters to
execute.
1.0.1 #
- Don't throw when
PreparedStatement.executeis used on a statement returning rows.
1.0.0 #
- Support version
1.0.0ofpackage:ffi
0.1.10-nullsafety.0 #
- Support version
0.3.0ofpackage:ffi - Migrate library to support breaking ffi changes in Dart 2.13:
- Use
Opaqueinstead of empty structs - Use
Allocatorapi
- Use
0.1.9-nullsafety.2 #
- Fix loading sqlite3 on iOS
0.1.9-nullsafety.1 #
- Migrate package to null safety
0.1.8 #
- Added the
mutexparameter to control the serialization mode when opening databases.
0.1.7 #
- Expose the
sqlite3_temp_directoryglobal variable
0.1.6 #
- Expose underlying database and statement handles
- Support opening databases from uris
0.1.5 #
- Use
sqlite3_versionto determine ifsqlite3_prepare_v3is available instead of catching an error.
0.1.4 #
- Use
sqlite3_prepare_v2ifsqlite3_prepare_v3is not available
0.1.3 #
- Lower minimum version requirement on
collectionto^1.14.0
0.1.2 #
- Enable extended result codes
- Expose raw rows from a
ResultSet
0.1.1 #
- Expose the
ResultSetclass
0.1.0 #
- Initial version