schema: Add migration 0002_schema.up.sql#14
Merged
ValuedMammal merged 2 commits intobitcoindevkit:masterfrom Jan 31, 2026
Merged
schema: Add migration 0002_schema.up.sql#14ValuedMammal merged 2 commits intobitcoindevkit:masterfrom
0002_schema.up.sql#14ValuedMammal merged 2 commits intobitcoindevkit:masterfrom
Conversation
`0002_schema.up.sql` changes the PRIMARY KEY of `block` table from `(height, hash)` to `height` only, in order to prevent multiple rows from contending for the same height. **NOTE** this operation is potentially destructive. If two or more rows existed at the same height, they'll now be missing from the database since we can't reliably determine which block hash is the correct one. Additionally, the anchor `block_hash` column previously had the type INTEGER, and this was a mistake in the schema, since block hashes are typically represented as a hex string. Thus we change the type of the `block_hash` column to TEXT.
Now that the schema has a unique constraint on block height, we can remove the extra select query.
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.
0002_schema.up.sqlchanges theblocktable's PRIMARY KEY from(height, hash)toheightonly, in order to prevent multiple rows from contending for the same height. Note that this operation is potentially destructive. If two or more rows existed at the same height, they will be removed from the database since we can't reliably determine which block hash is the correct one.Additionally, the anchor
block_hashcolumn previously had the type INTEGER, and this was a mistake in the schema, since block hashes are typically represented as a hex string. Thus we change the type of theblock_hashcolumn to TEXT.fix #8
fix #12