New features:
- Users of
UnsafePtrare now required to callFunctionOptions::set_read_subtypeand/orFunctionOptions::set_return_subtypeas appropriate. SQLite 3.45.0 added some optimizations that may discard subtype information if they are not used. Consider migratingPassedRefinstead, if possible. FunctionOptions::set_n_argscan now accept values up to 32767, although attempting to use values higher than the limit (currently 1000 by default) will cause the function registration to fail.
Bug fixes:
- Replace
i8->c_charfor all C strings, by @h7x4. - Fix compilation on Windows, by @arianfarid.
Breaking changes:
VTabmust beSized. Also,VTabFunctionList's generic parameter must beSized, which is normally theVTab.VTab::DisconnectandVTab::destroynow return aDisconnectResult, allowing you to recover theVTabif the disconnection fails because the table is still in use.VTabCursormethods now receive&mut selfinstead of&self.VTabCursorandVTabTransactionno longer take a lifetime parameter. This has no change in functionality but makes implementations cleaner.- User-defined functions now receive
&mut Contextinstead of&Context. Context::aux_datanow returns&Tinstead of&mut T.Context::aux_data_mutallows retrieving a&mut T. Both methods now return aResultto differentiate missing data from incorrectTtype.DistinctModeis now a struct instead of an enum. This allows supporting the new return value provided by SQLite 3.39.0.
New features:
Connection::create_scalar_function_objectis an alternative toConnection::create_scalar_functionwhich allows using a lifetime smaller than'static.impl From<&str> for Errorallows easily setting arbitrary error messages.QueryResult::is_emptyandBlob::is_emptyas shorthand forlen() == 0.