Fix upsert for WITHOUT ROWID tables with an INTEGER primary key - #1879
Open
nesevis wants to merge 3 commits into
Open
Fix upsert for WITHOUT ROWID tables with an INTEGER primary key#1879nesevis wants to merge 3 commits into
nesevis wants to merge 3 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
As part of testing my testing library against GRDB, this state machine test failed when upserting into a table that was created with a single integer primary key, but without rowid, with the following error:
I've tried to follow the established convention here of commits of failing tests followed by a fix for said tests, so checking out the first commit and running the new tests will reproduce the issue.
I believe this is related to the issue in #1855 from earlier this year, but the fix here is in
Database+Schema.swift, which treated an integer primary key as a rowid alias without checking whether its table had one.Pull Request Checklist
developmentbranch.make smokeTestterminal command runs without failure.