Expand support for update metadata and tracking old values #69
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a follow-up for #60 to:
include_old
forDELETE
statements.include_old_only_when_changed
).include_old
to a JSON array string).include_metadata
for inserts.include_metadata
for deletes with a specialUPDATE <table> SET _deleted = TRUE
syntax (we can't attach data to the delete otherwise).It also refactors some of the implementation details, in particular:
sqlite-rs
version, and then applies our fork that makesResultCode
implementClone
andCopy
.TableInfo
struct.columns
array of a schema table into a shared struct utilizing thestreaming_iterator
create. This makes it easier to pass custom iterators tojson_object_fragment
, which is used to restrictinclude_old
to a list of columns.format!
logic to create triggers by using inline references, making it easier to understand. (Eventually, I want to spend some time eventually to that further by e.g. usingwrite!
, we're using lots of small allocations and duplicate logic here.)