master
Add the --enablefk option to the "changeset apply" command of the changeset program.
Fix harmless compiler warnings seen with MSVC.
Get rid of "-encoding binary" across all test cases, as that is no longer supported in Tcl9. Use "-translation binary" instead.
Add an explicit db close to fix a file-is-opened failure in session1.test in cygwin.
Add the SQLITE_CHANGESETAPPLY_IGNORENOOP flag, which may be passed to sqlite3changeset_apply_v2() to have it ignore changes that would be no-ops if applied to the database (e.g. deleting a row that has already been deleted), instead of considering them conflicts.
Allow a session object to generate a changeset, even if columns were added to one of the tables using ALTER TABLE ADD COLUMN while the changeset was being collected.
Fix trivial buffer overreads in the sessions module that could occur when parsing changeset blobs.
Change the names of the stream interface APIs to be of the form "_strm" instead of "_str". In other words, added an "m" to the end, to try to make it clear that we are talking about a "stream" and not a "string.
Fix the zeroblob() function and related APIs so that they work with SQLITE_OMIT_INCRBLOB builds.
Fix test cases so that they all still work even with -DSQLITE_DQS=0.
Add experimental API sqlite3_set_errmsg(). Use this in sqlite3changeset_apply() to return any error code and error message via the SQLite handle.
Reformat the white-space in a few test cases so that the tests work with Tcl 8.6.9.
Fix an infinite loop in the sessions module that could occur when processing a corrupt changeset blob.
Fix a memory leak in sqlite3session_diff().
Add the SQLITE_DEFAULT_DEFENSIVE compile-time option. Fix up test cases so that they work with DEFENSIVE enabled.
Add new sessions function sqlite3changeset_apply_v3() and its streaming equivalent. This allows changesets to be filtered on a per-change basis, not just per-table.
Fix sessions module handling of tables with generated columns.
Add a missing "db2 close" to the ext/session/session_gen.test test module.
Use 64-bit math to compute the sizes of memory allocations in extensions.
Fix the preupdate hook so that it works when the "old.*" row has a column with a non-NULL default value that was added by ALTER TABLE ADD COLUMN after the current record was created.
Avoid loading the entire record into memory for an sqlite3_preupdate_old() call that retrieves an IPK value.
Fix a problem with using streaming iterators with sqlite3changegroup_add_change().
Add some explicit db close calls to work around a process-reaping timing problem on cygwin builds.
Adjustments to test cases for session so that they work with Tcl9.
Correct part of [505d9e49f7] and [7126a51ed8] to get sessioninvert tests working on cygwin.
Add tests for sqlite3session_memory_used() interface.
Fix bug in sessions handling of FK constraints introduced by [e09a0c02] (released in 3.48.0). Bug was preventing a changeset containing FK violations from being applied even when the xConflict(CHANGESET_FOREIGN_KEY) returned OMIT.
Reinstate some test cases accidentally removed by [cb023fe28560ce0f].
Avoid attempting to delete a file that is still open in sessionnoop2.test.
Allow the sessions module to be configured to capture changes from tables with no explicit PRIMARY KEY.
Fix windows-specific problems in test scripts sessionnoop2.test and sessionrowid.test.
If a table has one or more rows and it has a partial index has zero rows, still make an entry in the sqlite_stat1 table for the partial index, so that we know that "PRAGMA optimize" does not need to redo the whole table.
Ensure that the pre-update hook is invoked for INSERT operations on WITHOUT ROWID tables that use the xfer optimization.
Add sqlite3_set_errmsg(). Use this in sqlite3changeset_apply() to return any error code and error message via the SQLite handle.
Update session module test code to correctly use Tcl_Size instead of int.