Use returning *
when doing inserts for sqlite
#10
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.
When running
db/insert
you expect to get back what you have inserted or updated. But since the return value is currently based onsqlite3/last-insert-rowid
there is a case where the return value is unexpected. This edge case has been captured in the added tests.You first insert two rows.
And then run another insert with
on conflict
where you only end up updating the first row you inserted. You expect to get back the row you modified, but before this change you will get back the second row.There is one breaking change here, which is that if you do an insert where nothing is modified, you will get back
nil
. I think that makes sense.