You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit ecc31b7
Browse filesBrowse the repository at this point in the historyBrowse files
refactor: hold planner contexts natively and call native helpers directly (#1121)
* refactor(planner): hold planner scope, identity, relation and entry contexts in Rust
PlannerScopeResolution, PlannerIdentityContext, PlannerRelationsContext,
ModelPlanContext and PlanEntryBuildInputs are frozen native classes with
typed fields instead of generic native records. Plan entry construction,
SQL resolution and cursor bound computation read their fields directly.
Constructors take the same keywords; the classes no longer support
dataclasses.replace.
* refactor(migrations): plan model migrations over Rust requests
Model migration requests, declarations, discovery results and
compatibility results are Rust structs. Discovery, fingerprint matching,
origin resolution, compatibility checks, decisions, execution choices,
redirected cursor inspection and the live-state inspection are called
directly instead of through the native module. Removes the
corresponding native records and pyfunctions, none of which had a
Python caller.
* refactor(planner): call native planner helpers directly
Planner resolution, entry, migration, scenario, warehouse, audit and
command-plan code calls the native helpers it needs as Rust functions
instead of looking them up on the native module and calling them with
keyword dictionaries. Keyword-only helpers receive their arguments
directly; signature helpers receive typed values. SQL code scanning in
reference resolution uses the scanner directly, and the migration
fingerprint cache default is constructed natively.
Calls that tests deliberately replace on the native module stay module
lookups: SQL test planning, migration fingerprint computation, table
type planning, and the compile pipeline's execution plan and Python run
outputs. The stale-identity unit test now supplies the project fields
change detection reads instead of replacing it.
* refactor(commands): call native helpers directly in freshness, janitor, check and diff
The freshness, janitor, check, diff and deferred-target code calls the
native discovery, graph, selection, connection, target, progress, state
and output helpers it uses as Rust functions instead of looking them up
on the native module. SQL test chain resolution is called directly; SQL
test planning stays a module lookup because tests observe it there.
Native classes the commands construct (progress reporters, the event
writer, the cost context and freshness errors) are still created through
the module.
0 commit comments