Skip to content

upstream of 0.22.5 changes (#1429)#1430

Merged
gilescope merged 1 commit into
release/node-1.0.0from
giles-backport-0.22.5-fixes
Apr 27, 2026
Merged

upstream of 0.22.5 changes (#1429)#1430
gilescope merged 1 commit into
release/node-1.0.0from
giles-backport-0.22.5-fixes

Conversation

@gilescope

@gilescope gilescope commented Apr 27, 2026

Copy link
Copy Markdown
Contributor

Same as #1429 but for node-1.0 branch.

  • Increase performance of cNight db-sync queries.

First query for coarse bounds of tx, tx_out and ma_tx_out tables and use them in the 'business' queries to reduce size of tables before joins are made.

  • Add tx_in indexes as well

  • refactor: use sqlx::query_as! macro for cNight observation queries

Convert the runtime query_as form back to the compile-time macro form for all queries in cnight_observation.rs. This restores static query verification against the db-sync schema via the .sqlx prepared cache.

  • chore: replace sqlx::query_as! macro with runtime form in get_block_by_hash

Needed because cherry-pick landed in a branch whose .sqlx prepared cache does not include this query (cached key changed after trailing-whitespace normalisation). Using the runtime form avoids the compile-time DB check entirely and matches the pattern used elsewhere in #934.

  • feat: add changefile

  • fix: should be debug not warn

  • refactor: introduce PagedQuery to consolidate cNight observation query args

Replaces the seven repeated arguments (start, end, limit, offset, low_bound, high_bound + per-call locals) on the four cNight observation query helpers with a single PagedQuery<'a> struct.

Squashed from PR #1365 fixup commits b9497e8 + b146dc2 + b1ffce6 (originally landed as "fix: cargo clippy" / "Apply suggestion"). Also drops the now-unused QueryBounds import in the data_source module.


Overview

🗹 TODO before merging

  • Ready

📌 Submission Checklist

  • All commits are signed off (git commit -s) for the DCO
  • Changes are backward-compatible (or flagged if breaking)
  • Pull request description explains why the change is needed
  • Self-reviewed the diff
  • I have included a change file, or skipped for this reason:
  • If the changes introduce a new feature, I have bumped the node minor version
  • Update documentation (if relevant)
  • Updated AGENTS.md if build commands, architecture, or workflows changed
  • No new todos introduced

🧪 Testing Evidence

Please describe any additional testing aside from CI:

  • Additional tests are provided (if possible)

🔱 Fork Strategy

  • Node Runtime Update
  • Node Client Update
  • Other:
  • N/A

Links

#1430

* Increase performance of cNight db-sync queries.

First query for coarse bounds of tx, tx_out and ma_tx_out tables and use
them in the 'business' queries to reduce size of tables before joins are
made.

Signed-off-by: Giles Cope <gilescope@gmail.com>

* Add tx_in indexes as well

Signed-off-by: Giles Cope <gilescope@gmail.com>

* refactor: use sqlx::query_as! macro for cNight observation queries

Convert the runtime query_as form back to the compile-time macro form
for all queries in cnight_observation.rs. This restores static query
verification against the db-sync schema via the .sqlx prepared cache.

Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Giles Cope <gilescope@gmail.com>

* chore: replace sqlx::query_as! macro with runtime form in get_block_by_hash

Needed because cherry-pick landed in a branch whose .sqlx prepared cache
does not include this query (cached key changed after trailing-whitespace
normalisation). Using the runtime form avoids the compile-time DB check
entirely and matches the pattern used elsewhere in #934.

Signed-off-by: Giles Cope <gilescope@gmail.com>

* feat: add changefile

Signed-off-by: Giles Cope <gilescope@gmail.com>

* fix: should be debug not warn

Signed-off-by: Giles Cope <gilescope@gmail.com>

* refactor: introduce PagedQuery to consolidate cNight observation query args

Replaces the seven repeated arguments (start, end, limit, offset, low_bound,
high_bound + per-call locals) on the four cNight observation query helpers
with a single `PagedQuery<'a>` struct.

Squashed from PR #1365 fixup commits b9497e8 + b146dc2 + b1ffce6
(originally landed as "fix: cargo clippy" / "Apply suggestion").
Also drops the now-unused `QueryBounds` import in the data_source module.

Signed-off-by: Giles Cope <gilescope@gmail.com>

* fix: clippy needless borrow in get_block_by_hash bind

Signed-off-by: Giles Cope <gilescope@gmail.com>

* fix: fixed compilation for try-runtime feature (#1427)

Signed-off-by: Tomasz Bartos <tomasz.bartos@shielded.io>
Signed-off-by: Giles Cope <gilescope@gmail.com>

---------

Signed-off-by: Giles Cope <gilescope@gmail.com>
Signed-off-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Signed-off-by: Tomasz Bartos <tomasz.bartos@shielded.io>
Co-authored-by: Lech Głowiak <lech.glowiak@iohk.io>
Co-authored-by: Lech Głowiak <lech.glowiak@shielded.io>
Co-authored-by: Oscar Bailey <79094698+ozgb@users.noreply.github.com>
Co-authored-by: Klapeyron <11329616+Klapeyron@users.noreply.github.com>
Signed-off-by: Giles Cope <gilescope@gmail.com>
@gilescope gilescope requested a review from a team as a code owner April 27, 2026 15:59
@gilescope gilescope merged commit be5b1c4 into release/node-1.0.0 Apr 27, 2026
29 of 33 checks passed
@gilescope gilescope deleted the giles-backport-0.22.5-fixes branch April 27, 2026 20:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants