Repository navigation
refactor: port planner change detection and strategy, progress reporters and compiler glue to the native extension - #1105
Merged
Merged
Conversation
Callers use the native resolve_cursor_intrinsics, validated_model_cursor_intrinsics and cursor_intrinsics_analysis_sql bindings; the Rust glue calls the shared helpers directly and owns the reserved executor cursor markers.
Template data, effective vars, early model templates, template read recording and run ids now run in the Rust glue; Python callers use the native expand_template_data, expand_effective_vars, record_template_reads and resolve_run_id bindings.
Declaration scope resolvers, per-path declaration contexts, constant and enum member rendering, project var substitution and authored SQL expansion with spans now run in the Rust glue. The Python wrappers and the unused raw interpolation, declaration scan and declaration expansion bindings go.
The native assemble_native_project_resources binding reads the compile inputs, renders opaque vars, looks up template environment names and materialises NativeProjectResources itself. The Python request and resource helpers, their constants and row types, and the reviewed handler entry for the removed opaque var renderer go.
Target name and config, effective adapter name, collection rendering, scenario config and dialect overrides, loader destination parts and dynamic family matching are native bindings. The spec/contracts main and _helpers wrappers and the NamePattern class go; Rust callers use sqlbuild._native.
Origin and destination compilation, source deferral targets and the ClonePipelineResult are assembled by the native run_clone_pipeline_with_options binding, which the clone command calls directly.
The scope-lookup handoff to NativeDeclarationContexts moves into the Rust declaration resolver, removing the last model_loop module. Loader namespace and warehouse templates call the Rust template expansion directly.
Unit-test selector splitting, configured-rule and analysis model selection, and the static command compile/scope/relation phases are native bindings; Rust callers use sqlbuild._native.
…ppers into native bindings
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.
Why
Rust-hosted SQLBuild port (CHI-585), sixth combined PR: Phase 4 (CHI-593) planner slices with a new planner differential, Phase 3 (CHI-592) progress reporters, and Phase 1 (CHI-589) glue, with user-code and public-API modules marked as staying Python.
Changes
make planner-differential: builds projects through 18 change steps and compares plan text/JSON, full plan output and state rows.stays(user code or public API), recorded on CHI-589.Intentional differences: TTY spinner bytes; traceback frames; internal Python APIs removed or renamed.
Verification
make check-ci.