Skip to content

chore(executor): mount as src/sql/executor/ directory (#116 step 1)#511

Merged
ujeenet merged 1 commit into
developfrom
chore/116-executor-reorg-step1-mount-as-dir
May 22, 2026
Merged

chore(executor): mount as src/sql/executor/ directory (#116 step 1)#511
ujeenet merged 1 commit into
developfrom
chore/116-executor-reorg-step1-mount-as-dir

Conversation

@ujeenet
Copy link
Copy Markdown
Owner

@ujeenet ujeenet commented May 22, 2026

Summary

Step 1 of the executor reorg (#116). Pure file move, zero content change: `src/sql/executor.rs` → `src/sql/executor/mod.rs`.

Unblocks subsequent steps that extract sub-modules per the sql-executor-reorg plan:

  • step 2: extract `traits.rs`
  • step 3: extract `bind.rs`
  • step 4: extract `pg.rs` + `row_to_json.rs`
  • step 5: extract `pool.rs` + `tx.rs` + `values.rs` + `prefetch.rs` + `iter.rs` + `get_or_create.rs` + `page.rs`

Plan's trigger condition — empty open-PR queue between parity batches — was hit after PR #510 merged.

Closes

#116 (partial — step 1 of 5)

Test plan

  • `cargo check --no-default-features --features sqlite,tenancy` clean.
  • `cargo check --all-features` clean.
  • `cargo test --lib sql::` — 44 passing (unchanged).
  • No public API change; `use rustango::sql::*` paths resolve identically.

Why incremental?

The plan estimates 1-2 days for the full reorg. Splitting into reviewable steps lets each one ship + bake on `develop` independently; if any step regresses, only that step rolls back.

…ep 1)

First step of the executor reorg (#116). Pure file move:
src/sql/executor.rs → src/sql/executor/mod.rs. Zero content change.

This unblocks future steps that extract sub-modules (traits.rs,
bind.rs, pg.rs, row_to_json.rs, pool.rs, tx.rs, values.rs,
prefetch.rs, iter.rs, get_or_create.rs, page.rs) per the
sql-executor-reorg.md plan.

The plan's trigger condition — empty open-PR queue between parity
batches — was hit after PR #510 merged.

No public API change; rustango::sql::* surface unchanged.
@ujeenet ujeenet merged commit 44d8f6c into develop May 22, 2026
8 checks passed
ujeenet added a commit that referenced this pull request May 23, 2026
## Summary

Rolls 11 PRs from \`develop\` into \`main\`.

## Features (5)
- **#507** \`i18n::middleware::LocaleMiddleware\` — tower layer (cookie
+ Accept-Language) + documented \`Router::nest(\"/<lang>\", ...)\`
pattern for URL-prefix locales. Closes #406, #424.
- **#508** \`Translator::with_fallback_chain(&[...])\` — explicit
fallback locale chain. Closes #425.
- **#509** \`notifications::slack::webhook_callback(url)\` — Slack
incoming-webhook provider for the \`broadcast\` channel. Closes #418.
Also bumps \`free-disk-space\` reclaim (\`large-packages: true\`).
- **#510** Notifications fix — gate the \`database\` channel behind the
\`postgres\` feature so non-PG builds compile.

## Refactor: executor reorg (#116, 7 PRs)
Pulled \`crates/rustango/src/sql/executor.rs\` (4830 LOC) apart into
\`crates/rustango/src/sql/executor/\` with 9 sibling files.

- **#511** Mount as dir.
- **#512** \`page.rs\` + \`iter.rs\` + \`get_or_create.rs\`.
- **#513** \`values.rs\` (Django \`.values()\` / \`.values_list()\`).
- **#514** \`atomic.rs\` (\`transaction.atomic\` + \`on_commit\`) +
\`tx.rs\` (\`PoolTx\`).
- **#515** \`explain.rs\` (tri-dialect \`EXPLAIN\`).
- **#516** \`prefetch.rs\` (tri-dialect \`_pool\` prefetch).
- **#517** \`row_to_json.rs\` (per-dialect dynamic row → JSON).

mod.rs is now at 2923 LOC (-1907, **-39%**). Zero public-API change
throughout — every symbol still reachable from \`use rustango::sql::*\`.

## Test plan
Every constituent PR landed with sqlite_litmus + sqlite_live +
mysql_live + postgres_test all green. The merge itself is a no-conflict
fast-forward — no new code lands beyond what's already merged into
develop. Re-running CI on the merged main confirms the integration
shape.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant