Skip to content

Latest commit

 

History

History
243 lines (156 loc) · 6.82 KB

CHANGELOG.md

File metadata and controls

243 lines (156 loc) · 6.82 KB

2.2.0-dev

  • Add updatedRows getter to eventually replace getUpdatedRows() method.
  • Clarify documentation on lastInsertRowId and updatedRows.
  • Use NativeCallables for user-defined functions, collations and update streams.

2.1.0

  • Add config getter to CommonDatabase to access sqlite3_db_config.

2.0.0

  • Breaking: The WASM implementation no longer registers a default virtual file system. Instead, registerVirtualFileSystem needs to be used to add desired file system implementations.
  • Breaking: Fix a typo, CommmonSqlite3 is now called CommonSqlite3.
  • 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 CustomStatementParameter class which can be passed as a statement parameter with a custom sqlite3_bind_* call.
  • Add the StatementParameters class and executeWith/selectWith methods on CommonPreparedStatement. They can be used to control whether values are bound by index or by name. The selectMap and executeMap methods 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.loadFromUrl which uses a streaming fetch() 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 -Oz instead 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:ffi and 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.keys and Row.values to 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 Finalizer to automatically dispose databases and statements. As finalizers in Dart aren't reliable, you should still make sure to call dispose manually after you're done with a database or a statement.
  • Avoid using generative constructors on @staticInterop classes.

1.7.2

  • Optimizations in the wasm-based file system.
  • Fix the mutex parameter 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 WindowFunction and register your function with database.registerAggregateFunction.
  • Breaking (For the experimental package:sqlite3/wasm.dart library):
    • The IndexedDB implementation now stores data in 4k blocks instead of full files.
    • Removed IndexedDbFileSystem.load. Use IndexedDbFileSystem.open instead.
    • An IndexedDbFileSystem now stores all files, the concept of a persistence root has been removed. To access independent databases, use two IndexedDbFileSystems 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.dart in web workers.

1.6.2

  • Fix CURRENT_TIMESTAMP not 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 checkNoTail throwing for harmless whitespace or comments following a SQL statement.
  • Fix a native null-pointer dereference when calling prepare with a statement exclusively containing whitespace or comments.
  • Fix a potential out-of-bounds read when preparing statements.

1.5.0

  • Add prepareMultiple method to prepare multiple statements from one SQL string.
  • Add selectMap and executeMap on PreparedStatement to 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.updates stream
  • Internal: Use ffigen to 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.1 to your pubspec to avoid getting the broken version

1.3.0

  • Add Cursor.tableNames and Row.toTableColumnMap() to obtain tables involved in a result set. Thanks to @juancastillo0!

1.2.0

  • Add the selectCursor API on PreparedStatement to 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 execute with 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.execute is used on a statement returning rows.

1.0.0

  • Support version 1.0.0 of package:ffi

0.1.10-nullsafety.0

  • Support version 0.3.0 of package:ffi
  • Migrate library to support breaking ffi changes in Dart 2.13:
    • Use Opaque instead of empty structs
    • Use Allocator api

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 mutex parameter to control the serialization mode when opening databases.

0.1.7

  • Expose the sqlite3_temp_directory global variable

0.1.6

  • Expose underlying database and statement handles
  • Support opening databases from uris

0.1.5

  • Use sqlite3_version to determine if sqlite3_prepare_v3 is available instead of catching an error.

0.1.4

  • Use sqlite3_prepare_v2 if sqlite3_prepare_v3 is not available

0.1.3

  • Lower minimum version requirement on collection to ^1.14.0

0.1.2

  • Enable extended result codes
  • Expose raw rows from a ResultSet

0.1.1

  • Expose the ResultSet class

0.1.0

  • Initial version