[DO NOT MERGE] ETCM-9835 tx out consumed query #914
Closed
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.
Description
Showcase of changes to the queries required to make use of the
tx_out.value = "consumed"
option in db-sync configuration. When this option is set:tx_out
table has an additional columnconsumed_by_tx_id
which references the transaction intx
table that consumed given outputtx_in
does not existIn practice this means we can use a single join between
tx
andtx_out
when we need to determine inputs to a transaction instead of two joins going throughtx_in
, which also makes the queries easier to understand.Next steps
If we decide to support this option, I see three ways to go about it:
tx_out.value = "consumed"
a. let the user control which queries are run by some
TX_OUT_STYLE
environment variableb. automatically detect the setting by checking for existence of
tx_in
I lean towards option 1
Testing
I run two nodes compiled from this branch and
master
and they synced each other's blocks without issues.Checklist
changelog.md
for affected crate