Repository navigation
Commit 0964666
authored
feat!: remove virtual data environments and validate models at compile time (#852)
* feat: validate semantic SQL bindings and project metadata
* feat: enable dialect-aware semantic type diagnostics
* fix: retain semantic warnings with Polyglot 0.13.0
* fix: integrate Polyglot 0.13.1 semantic corrections
* fix: explain semantic diagnostics and recover downstream cascades
Add code-owned help, authored spans, schema and operand notes, SQL-test snippets, and detailed cold/warm partial-check notices. Preserve independent downstream errors with column-specific recovery.
Avoid all-project schema construction per model and reuse identical SQL-test body analysis. The 1000-model guard measures 12.14s versus 8.73s on bc9a5fc, within the unchanged 14s budget.
Update the dense JSON golden explicitly for the intentional empty semantic_checks_partial field: 99f2f5c6 becomes 1a9ce1be. Fingerprint normalization and time/RSS thresholds remain unchanged.
* fix: honor target semantics and recover poisoned output types
Accept temporal cursor families and honor Snowflake quoted-identifier session settings in offline and physical binding, including cache identity.
Replace repeated character-level diagnostic alignment with lazy cached token maps. Reuse native root diagnostics while propagating unknown types through output lineage; retain independent downstream errors and avoid cascading contract warnings.
Add synthetic integration coverage for temporal types, target settings, physical rebinding, repetitive SQL spans, transitive recovery, and warm-cache parity. Preserve the existing performance thresholds and semantic golden.
* perf: reuse parsed SQL and guard diagnostic-heavy compilation
Fuse full semantic validation with compact native analysis when input schemas are unchanged. Preserve required rebinding and cache identity, skip empty batches, and batch SQL-test interface inference.
Add CI-wired guards for large diagnostic-heavy models, position-mapping scaling, and deep poisoned DAGs. Match repeated diagnostic messages by occurrence and attribute cascades through the failing output's lineage.
Verify cold fusion, unchanged warm-cache reuse, and schema invalidation with synthetic integration tests. Keep existing dense performance ceilings and semantic fingerprints unchanged.
* fix: integrate Polyglot 0.13.2 Snowflake semantics
* fix: report resources that Rules cannot evaluate
* fix: group unevaluated Rules by resource and cause
* fix: preserve the custom Rule host wire contract
* feat: add native binding catalogs and authored position maps
* perf: move compiler binding work behind native catalogs
* perf: reuse parsed ASTs during catalog validation
* perf: reuse fused bindings and batch SQL normalization
* test: verify target-controlled semantic cache reuse
* docs: explain compiler cache bypass and warm measurement
* feat!: remove virtual data environments
BREAKING CHANGE: Projects run only in direct mode. Virtual commands, flags, configuration keys, state backends, and prepare_version hooks are removed. Concurrent microbatch event IDs changed; drop existing _sqlbuild_microbatches tables before the next concurrent run. Sequential runs never use this table.
* test: retain direct-mode coverage and remove virtual CI paths
* docs: describe direct mode and regenerate bundled references
* refactor: prune orphaned virtual compiler entrypoints
Remove unused public facades and their exclusive planning helpers, models, and tests. Preserve live direct-mode sibling interfaces as compiler-internal entrypoints and route direct identity hashing to its existing implementation.
* docs: require real-project verification and worst-case performance guards
* fix: keep supplemental clause checks partial for open inputs
* fix: reject the removed clone skip-locked option
* fix: reject removed unchanged-run policy and drop dead planning output
* fix: preserve exact binding shapes and validate physical downstreams
Compose nested normalization edits and translate native unwinds to named compiler errors. Preserve inferred and physical column identity, apply dialect-aware metadata coercion and field matching, and rebind affected downstream shapes before execution.
* test: refresh dense guard fingerprints for partial-check reporting
Compared normalized CLI JSON and every compiled artifact between release base 7b710a9 (0.119.1) and the combined branch for 3000, 5000 and 10000 models. The sole JSON difference is the intentional empty semantic_checks_partial field; compiled artifact paths and content hashes are identical. Base fingerprints match the former expectations in all three cases. The 1000 entry already accounts for this field. No time or RSS budgets changed.
* fix: retain completed star analysis across partial cache hits
Fingerprint comparisons exposed stale compact projections replacing completed derived-star output on unrelated edits, and CTE star projections losing their syntactic has_star flag. Reuse completed entry results for partial as well as complete batch hits, retain root-star identity, and invalidate older analysis cache records. Real CLI regressions compare edited cached output with an uncached oracle.
* test: reconcile fresh and cached guard fingerprints with complete analysis
Compared normalized base 7b710a9 and HEAD JSON plus SHA-256 maps of every compiled artifact for fresh and cached 3000/5000/10000 projects and all varied-1000 edits. Varied output differs only by the intentional empty semantic_checks_partial field. Fresh/cache differences are that field plus CHI-373 inferred-schema completion: 150/250/500 formerly zero-column derived-star shapes and 185/312/628 recovered lineage edge counts. SQL, dependency lists, all other output fields, and compiled artifact maps agree between engines in every phase.
Repair invalid benchmark SQL first by qualifying input.id in projections, predicates and macro arguments. DuckDB rejects the previous unqualified id when a seed is joined. Both engines used this same corrected fixture for comparison. Partial-cache projection drift and the conflation of syntactic stars with unresolved expansion were fixed separately. Leaf edits now change only their authored query, matching the uncached result. No time, RSS or cache-size budget changed.
* fix: distinguish resolved star facts from pending lineage expansion
Carry native bound-star completeness through compact analysis and entry caches separately from the syntactic has_star flag. Preserve native EXCLUDE and REPLACE provenance instead of appending excluded source columns during Python fallback. Verified the real CLI/DuckDB bound projection regressions and cached-versus-uncached shape regressions.
* perf: reuse the model-name set during binding graph construction
Construct the immutable available-name set once rather than rebuilding all N names for each of N models. Dependency membership and ordering are unchanged. This removes quadratic Python allocation work; it does not bypass semantic validation or relax performance budgets.
* test: align guard assertions with resolved-star metadata
Update the compact-boundary expectation and keep the new regression fixtures compliant with repository static checks. Formatting preserves generated SQL and all measured semantic fingerprints.
* fix: adopt polyglot 0.13.3 for prefix predicate parsing
Pin Python 0.13.3 and Rust merge revision 76b494021afff9115e013789018b2c999ae85041. Replace the obsolete opaque-prefix-predicate expectation with real CLI coverage proving prefix NOT LIKE evaluates in WHERE and CASE, including cached Rules execution. Corpus and focused binding regressions pass; aggregate private validation confirms the unevaluated-resource fault disappears with no new diagnostics.
* perf: memoize expression source shapes within the compile catalog
Reuse immutable source-shape results by expression and inference policy within a catalog, including open results. Physical catalog copies preserve the memo without sharing caller-mutable result dictionaries. A CLI regression verifies shared expressions are analyzed once and changed content invalidates binding.
Using the same native binary for paired CPU counters: dense 3000 source analysis falls from 720 calls / 2.066 CPU-s to 12 / 0.108; fresh 3000 falls from 2852 / 0.990 to 1426 / 0.480. Normalized JSON and the existing dense/fresh 3000 semantic fingerprints are unchanged. No budgets changed.
* perf: bind model inputs in dependency-ready analysis waves
Analyze open model inputs in topological waves, preserving parallel native batches within each wave. Publish completed producer shapes before consumers run, invalidate cached consumers when producer signatures change, and reuse completed cache entries across waves. Exact quoted-name binding retains its catalog-specific path.
Fresh 3000 deferred requests fall from 2630 to zero. Same-binary process CPU counters: binding 7.712 to 0.002 CPU-s; total model analysis 27.049 to 18.796 CPU-s. The 150 derived-star enrichments remain separately visible for the next change. Existing fresh-3000 and all cache-3000 cold/warm/edit fingerprints are unchanged; warm keeps 3000 hits and leaf/scoped-macro edits keep 2999 hits plus one miss. Focused CLI binding/cache regressions pass.
* perf: complete derived star projections during native model analysis
Use the compatibility resolver for bound derived-star outputs in the first native pass, preserving the expression lineage previously recovered by enrichment. Extend the cache regression through an inferred producer.
Fresh 3000 enrichment calls fall from 150 to zero with identical normalized JSON. Model-analysis CPU is 18.254 versus 18.796 seconds after dependency waves: most resolver cost moves into the first pass rather than disappearing. Native analysis is 16.569 CPU-s; deferred binding remains zero. No fingerprints or budgets changed.
* perf: reuse fixture eligibility across built-in Rules
Memoize supported and unsupported fixture parsing by SQL content for one fixed-dialect Rules evaluation. Preserve per-Rule unevaluated findings, suppression and grouping.
On an identical dense-3000 captured Rules request, isolated native process CPU falls from 2.939 to 1.687 seconds and built_in_ms from 2226 to 808. All non-timing response fields are identical. CPU samples identify fixture eligibility parsing rather than semantic result reads; concurrent test-planning samples were excluded from attribution. Existing unevaluated CLI regressions pass.
* perf: bound wave catalog preparation to referenced tables
Avoid rescanning the complete accumulated catalog for each analysis wave. Validate fixed-width native lineage index triples without allocating a generator per source; retain rejection of booleans and noninteger indexes.
Py-spy attributes the residual Python work to compact lineage decoding and repeated catalog preparation, while the former enrichment interval also included native work. Fresh-3000 preparation CPU changes from 0.328 to 0.274 seconds and projection CPU from 0.371 to 0.217 seconds. Overall model CPU is unchanged within sampling variability (18.254 versus 18.325); normalized output remains identical. Focused binding and cache regressions pass.
* fix: preserve restored shape invalidation across analysis waves
Propagate signature invalidation through the full dependent closure, including producer cache entries restored from an older compile. Complete each wave once and restrict shape completion to its participating relations. Preserve compact and entry cache probe accounting. Extend the CLI regression through restoring the producer; align unit batch expectations with dependency-ready scheduling.
Focused binding, identifier and cache regressions pass. Fresh-3000 deferred binding and derived-star enrichment remain zero, and every cache-3000 cold/warm/edit fingerprint matches. Static CI checks pass after aligning import order and the repository's comment/comprehension rules.
* perf: reuse parsed expressions for exact identifier binding
Complete catalog-specific quoted-name validation within the native model pass, consuming the expression already returned by compilation. Preserve the existing SQL fallback when no parsed expression is available. No ASTs are retained beyond their model work item. Remove Python's forced quoted-name deferred round and assert zero deferred requests in the dialect-identity CLI regressions.
A synthetic 200-model quoted chain keeps identical normalized output: deferred binding requests fall from 398 to zero, model-analysis CPU from 0.387 to 0.264 seconds. Focused schema, semantic, quoted-binding and real compiled-fact tests pass. The exact Rust 1.98 gate still reports the six pre-existing Clippy findings assigned to the separate CI-fix worker.
* fix: preserve bound projections during quoted catalog validation
Keep the existing borrowed-projection eligibility decision when applying parsed catalog validation. Real-project validation caught lineage drift when the quoted path skipped that decision; retain its original projection result and separately validate the saved unannotated AST.
All 1016 real-project resource records and diagnostics now match the pre-optimization output. Add synthetic quoted-policy type-error and bound CASE-lineage regressions. Focused quoted/catalog checks pass (32 tests), the semantic corpus passes (227 passed, 7 expected failures), and make check-ci passes.
* test: print dense compiler timings before budget assertions
Emit the dense guard measurement with flushed stdout so pytest includes phase timings in captured failure output regardless of logging configuration. Keep subprocess timeouts and all wall, memory and fingerprint assertions unchanged.
* test: record CPU utilization in dense compile guards
Collect child user and system CPU time with GNU time and include their sum and CPU/wall ratio in the dense guard's flushed measurement output. Preserve every budget, timeout and semantic fingerprint assertion.
Verified the updated measurement helper against the real CLI and replayed a recorded over-budget dense result to confirm CPU and compiler timings are printed before the existing assertion. Matching Python 3.12.13 / Rust 1.98.1 comparisons did not establish a repeatable loss of dense parallelism, so no speculative runtime scheduler change is included.
* test: report compile measurements before helper failures
Print wall time, user+system CPU, utilisation, peak RSS, major/minor page faults and full compiler timings from the fresh-process helper's finally block. Report unavailable fields explicitly for interrupted output. Keep every budget and subprocess timeout unchanged.
Bound the measurement result's failure repr to metrics instead of rendering the entire compiled project. Verified real CLI success and semantic-failure paths emit metrics before helper assertions, plus incomplete-output and large-payload reporting. Raw hosted job logs confirm the previous caller print did execute; the aggregate failed-log view omitted its captured-output tail.
* test: centralize benchmark measurement reporting
Keep interrupted/completed result parsing in the benchmark infrastructure, following the repository boundary that local test helpers remain branch-free. Preserve the helper's pre-assertion reporting and bounded failure representation.
make test: 7585 passed. Full static CI target, real-CLI reporting checks and public hygiene scan passed. Real 4 GiB scopes and the complete eight-commit capped sweep retained fingerprints with no memory-limit hits or major faults; no production scheduler or memory changes were justified by those measurements.
* fix: satisfy clippy 1.98 lints in the native rules crate
Rust 1.98 clippy rejects type_complexity, collapsible_if, manual_ok_err,
manual_unwrap_or_default and needless_range_loop findings introduced by
the semantic compile work. Reuse the DiagnosticRow alias for the binding
signature, collapse the let chain, iterate tokens directly, bind fixture
parse results with let-else, and cache the Snowflake reparse as a Result
so a parse failure explicitly leaves the diagnostic unproven.
* fix: test native panic conversion without an embedded interpreter
cargo test runs with --all-features, which enables pyo3's
extension-module feature and therefore does not link libpython. The new
panic test initialised an interpreter, so the test binary failed to link
once clippy stopped masking it. Extract the unwind capture and panic
classification into interpreter-free helpers and test those directly.
* test: give the microbatch cursor-window fixture its cursor output column
CHI-373 validates model cursor metadata against the known output shape
(B300), matching the documented contract that cursor is an output
column. The hourly_orders fixture declared cursor order_hour without
selecting it, so it could never build (delete_insert deletes by the
cursor column). Select order_hour while keeping one aggregate row so the
test still proves the microbatch model runs in one pass.
* fix: keep unresolved star outputs open in semantic shapes
A model whose root projection has a star was treated as a closed shape
whenever every input had a shape, but its inferred columns only include
the star expansion when native binding resolved the star against
authoritative relations. A qualified star over an inferred upstream
therefore produced an incomplete closed shape and false B302 errors on
valid SQL-test expected columns. Require the resolved-star fact before
closing such shapes; unresolved stars stay open and are reported as
partial semantic checks.
* fix: accept DuckDB keyword timestamp functions in semantic checks
Polyglot parses CURRENT_TIMESTAMP, CURRENT_TIME, LOCALTIMESTAMP and
LOCALTIME as no-paren function calls, but its DuckDB function catalogue
does not list them, so valid DuckDB models failed compile with B101.
Drop that unknown-function diagnostic only when every call to the name
is the keyword form; the invalid parenthesized form is still rejected.
* test: align SQL-test fixture cases with semantic compile validation
CHI-373 makes enforced model contracts authoritative closed shapes and
validates SQL-test mock and expected column names at compile time (B302).
- The open star-model fixture declared an enforced contract, which the
runtime contract check also treats as exact; use a partial schema
without enforcement so the case still exercises an open star model.
- Misspelled mock and unknown expected columns are now reported as B302
compile errors with exact positions before any connection, instead of
planner fixture messages. Exit code and no-connection behaviour are
unchanged.
* fix: omit the semantic coverage notice when SQL validation is disabled
With --no-sql-validation the compiler skips model analysis, yet compile
still reported partial semantic checks, naming unselected upstream
models as open inputs and advising users to declare shapes. Skip the
text notice and report an empty semantic_checks_partial map when
validation was disabled for the run.
* fix: expand stars over inferred inputs before publishing binding shapes
Binding completion published a star model's inferred columns as a closed
shape once every input had a shape, but only re-analyzed the query when
the star produced no columns at all. A qualified star beside explicit
columns therefore published only the explicit columns, and downstream
readers of the expanded columns failed with false B002 errors.
Re-analyze any unresolved star once its inputs are complete, record the
expansion as a resolved star, and publish star shapes only when
resolved. Cached and uncached compiles report the same diagnostics.
* fix: include snapshot validity columns in semantic shapes
Snapshot relations add valid_from and valid_to (or their configured
names) to the query output, but semantic shapes only carried the query
columns. Downstream models and snapshot audits that read the validity
columns failed compile with false B002 errors. Add the validity columns,
with unknown types, wherever binding and metadata shapes are published,
and share the default names with the snapshot executor.
* test: expect compile-time B300 for invalid unique_key and cursor_inputs
CHI-373 validates unique_key and cursor_inputs names against known
output shapes at compile time. A snapshot unique_key missing from the
query output and a cursor_inputs column absent from an enforced upstream
contract are now reported as B300 compile errors with source positions,
before planning or execution. Exit codes are unchanged.
* test: use a runtime-only failure for the local scenario error case
CHI-373 rejects unknown functions at compile time (B101), so the local
scenario model calling an undefined function no longer reaches
execution. Use a value conversion that only fails when DuckDB runs the
model, keeping the case focused on reporting a local execution ERROR.
* fix: normalize package-qualified dbt references for semantic binding
Analysis normalization only recognised single-argument reference
intrinsics, so __dbt_ref("package", "model") stayed in the binding SQL
and planner source-binding checks reported false B002/B101 errors. In
sqb dbt build that planner error fell back to a display-only plan and
executed the unresolved marker. Accept the optional package argument and
bind the model relation name, matching the reference's binding name.
* test: cover compile lineage for a star over a joined derived table
The star fix in "fix: expand stars over inferred inputs before publishing
binding shapes" marks a star as resolved once its columns are known. Before
that, the unresolved flag made fast lineage append a textual star expansion
over every input relation, so a star over a derived table that joins a seed
reported an extra edge for the seed's unprojected label column. Pin the
corrected edge count on cold and warm compiles.
* test: update semantic compile fingerprints for corrected star lineage
"fix: expand stars over inferred inputs before publishing binding shapes"
marks a star resolved once its columns are known, so fast lineage no longer
appends a textual star expansion over every input. In the generated
semantic projects this removes one bogus edge from each star over a nested
query that joins a seed: the seed's unprojected label column. Payload
comparison against the release branch shows edge_count as the only change
(2 models at 3000, 7 at 10000). Compiled SQL, diagnostics and summaries are
unchanged.
Update the fresh-process 3000/5000/10000 fingerprints and the cache
3000/5000/10000 cold, leaf-edit, macro-edit and project-config
fingerprints. Dense and varied cache fingerprints are unchanged.
* fix: adopt polyglot 0.13.4 for engine-verified DuckDB and PostgreSQL types
DuckDB division is DOUBLE, so plan no longer reports a false schema change for models that divide integers; bare USER and DuckDB keyword time functions resolve as functions.
* feat: enforce implicit type conversions as compile errors
Native W210-W216 findings are implicit conversions that the warehouse
accepts but that fail or match unintended rows depending on the data.
Report each as a blocking error under the SQLBuild code of the
incompatibility it risks (comparisons B217, arithmetic B212, assignments
B214, casts and coercible literals B218, set-operation branches B215,
predicates B211, function arguments B213), with the explicit-conversion
remedy. Declared UDF argument mismatches become B301 errors. Unemitted
W217-W219 codes are dropped, and there is no per-model suppression.
Cover star-sourced type conflicts without set operations in the E2E
semantic corpus.
* docs: add performance and native SQL change rules to agent instructions
* feat: isolate scenario artifacts with optional run namespaces
* fix: use warehouse SQL statement size limits for tests
* fix: isolate chained SQL test CTE namespaces
* docs: move semantic compilation and upgrade notes to the website
The legacy docs folder was retired in favour of the website docs. Port
the semantic compilation reference and the direct-mode and
implicit-conversion upgrade notes to website pages, add them to the
sidebar, drop the branch's remaining legacy docs files, and regenerate
the bundled skill references from the website.
* ci: add a same-runner compile performance ratio guard
Absolute compile budgets must absorb large hosted-runner variance, so
real regressions of 30-50% passed or failed depending on the runner.
Build the pull request's base and head in one job, generate the dense
or fresh 3,000-model project once, warm both builds, then alternate
three cold compiles each. Fail when the head's median wall or CPU time
exceeds the base's by more than 10%, and report medians, ratios, the
runner CPU and per-phase timings in the job summary.
Refs CHI-403.
* fix: adopt polyglot 0.13.6 for star-sourced type checks
Polyglot 0.13.5 type-checks star-sourced columns in every query through
ordered CTE and source star expansion instead of requalifying only
statements with a set operation; 0.13.6 skips requalification for
stars no scope consumes.
* fix: align semantic SQL normalization with compiler dollar-quote scanning
The rebase onto main added the dollar_quotes quote-policy field. SQL
analysis normalization already skips $$ literals itself; opt into the
compiler's dollar-quote handling so tagged literals are skipped the same
way, and cover a tagged literal containing an apostrophe end to end.
* test: cover direct-mode janitor completion wording
* docs: drop the upgrading page
The removed configuration keys already fail with explicit errors, and
the implicit-conversion guidance lives on the semantic compilation page,
which applies to new and existing projects alike.
* fix: satisfy fensu rules in star enrichment and its lineage test
make check-ci and make rust-check reported two fensu faults introduced by
the star-lineage work: a multi-line docstring on _complete_inferred_bindings
(FFH001) and a filtered generator in the new lineage integration test
(FFT104). Name the native-expansion condition instead of documenting it, and
index compiled models by name in the test. No behaviour change.
* fix: restore the terminal plan progress test type and satisfy fensu rules
* perf: infer expression-source shapes in one batch and reuse them after compile
Assembly inferred each expression source in its own native call, and the
coverage, recovery and detail passes re-inferred every source under a
default profile. Batch the sources and key the compile catalog's cache by
expression, so later passes reuse the shapes compile validated against.
* build: adopt Polyglot 0.13.7
* perf: reserve only generated-prefix names when isolating SQL test CTEs
The CTE namespace lowercased and stored every token of every test's SQL
to avoid collisions, although only tokens with the generated-name prefix
can collide. Keep only those, and move CTE bodies into the rename instead
of copying them. Rendered test artifacts are unchanged.
* perf: stop scanning for a diagnostic's binary expression past its offset
* perf: reuse the parsed statement for borrowed-query validation
* perf: share binding-mode native queries across models with equal shapes
Binding-mode models whose relation-stubbed SQL and effective analysis and
binding input shapes are equal now share one native query and template.
A shared result is reused only when the representative analysis succeeded
without any diagnostic; otherwise each member is re-analysed with its own
relation names. Qualified, quoted, colliding or otherwise lossy names keep
the per-model query. Batches with recomputed members are not published to
the compact-batch cache.
* perf: reuse exact shared binding analyses across dependency waves
Exact representative results of shared binding queries are remembered per
binding catalog, keyed by stubbed SQL, effective input shapes and template
inputs, and projected onto later members through their own resource names
without another native call or fact decoding. Only results that analysed
successfully without diagnostics are remembered, and batches that publish
the compact-batch cache do not reuse them. Candidates are gated by a cheap
compile-wide relation-marker pre-key so projects that barely share skip
the full key.
* ci: run every SQL test and ratio guard E2E file in a DuckDB shard
* fix: restore the PostgreSQL CI path filter and never share stub-named SQL
The virtual-state path removal dropped the PostgreSQL case pattern, which
left the suite-selection script unparsable on pull requests. Separately,
binding-query sharing only checked reference names for the stub prefix,
so an authored CTE with a stub name could capture the shared reference.
* test: measure diagnostic-heavy compiles with positioned conversion errors
Implicit conversions are now blocking errors, and literal casts carry no
source position, so the workload's literal-cast warnings collapsed into
one statement-level error. Use column comparisons so every model still
produces 100 independently positioned errors.
* build: adopt Polyglot 0.13.8
* test: refresh compile guard fingerprints and set fresh budgets to measured values
Chained SQL test CTE isolation renames lifted CTEs in compiled test
artifacts, which changes every compile fingerprint; compile output is
otherwise unchanged. Fresh cold compiles still cost more than before
semantic validation, so the fresh-process and cache budgets and the fresh
same-runner ratio limit are set to the measured values until the
remaining gap is closed. Dense limits are unchanged.
* test: raise fresh-process and cache budgets to the slowest measured CI runs
* test: accept a complete wave-level cache hit after a leaf edit and settle fresh budgets
Dependency-wave analysis caches each wave as its own batch, so the edit
compile republishes the edited wave and the next compile is served
entirely from batch hits instead of one entry hit. Assert a complete
cache hit, as the macro-edit path already does. Raise the fresh 5000 and
cache 5000 cold budgets to just above the slowest CI runs.
* test: drop the macro-edit entry-hit requirement and settle the fresh 5000 budget
Wave-level analysis batches serve every model outside the edited one from
batch hits, so a macro edit re-analyses exactly one model with no entry
hits. The miss count and complete-hit checks still catch any extra
re-analysis.
* test: refresh varied compile cache fingerprints for isolated test CTE names1 parent 33127a2 commit 0964666
688 files changed
Lines changed: 16809 additions & 64096 deletions
File tree
- .github/workflows
- crates/sqlbuild-rules-native/src
- bindings
- _helpers
- main
- tests
- compiler
- _helpers/sql_tests
- tests
- engine
- _helpers
- tests
- query_analysis
- _helpers
- main
- tests
- rules/_helpers
- semantic_validation
- _helpers
- main
- sql_lint/_helpers
- scripts
- cli_preview
- _helpers
- main
- cold_compile_performance
- _helpers
- main
- compile_performance_ratio
- _helpers
- main
- fensu_policy
- src/sqlbuild
- .agents/skills/sqlbuild
- references
- docs
- cli
- concepts
- models
- adapters
- bigquery/classes
- databricks/classes
- postgres/classes
- snowflake/classes
- sqlserver/classes
- adapter/contract
- _helpers
- classes
- cli
- commands
- _helpers
- build_execution
- build_planning
- build_virtual
- clone
- compile
- diff
- entry
- freshness
- janitor_output
- janitor_retention
- janitor_runtime
- plan
- playground
- templates
- loader_waffle_shop
- sources
- waffle_shop
- sources
- promote
- reconcile
- rollback
- rules
- runtime
- scenario_capture
- scenario_execution
- scenario_output
- seed
- state
- classes
- main
- execution
- inspection
- project
- state
- entry
- output
- _helpers
- main
- compiler
- authored_values/main
- compile
- _helpers
- analysis
- assembly
- attachment
- diagnostics
- render
- sharing
- main
- contracts/_helpers
- dag/_helpers
- discovery/_helpers
- filesystem
- yml
- lineage/_helpers
- pipeline
- _helpers
- main
- planner
- _helpers
- graph
- identity
- output
- planning
- pruning
- scenario
- warehouse
- main
- changes
- execution
- identity
- selection
- python_nodes
- _helpers
- main
- resource_names/main
- source_freshness/_helpers
- sql_analysis
- _helpers
- classes
- main
- executor
- build/classes
- custom
- functions/main
- janitor
- _helpers
- main
- node_results/main
- run/_helpers/materializations
- testing
- main
- integrations
- dagster
- _helpers
- dbt
- _helpers
- cli
- pipeline
- main
- cli
- pipeline
- lint/_helpers
- microbatches
- classes
- main
- rule_engine
- _helpers
- engine
- guidance
- run
- runtime/observability
- spec/contracts
- _helpers
- main
- virtual
- diff
- _helpers
- main
- executor
- _helpers
- classes
- main
- freshness
- _helpers
- main
- planner
- _helpers
- main
- reconcile
- _helpers
- main
- state
- _helpers
- state_lifecycle
- state_runtime
- state_storage
- classes
- main
- checkpoints
- encoding
- environments
- locks
- python_identities
- retention
- tests
- e2e
- scripts
- cli_preview
- compile_performance_ratio
- src/sqlbuild/cli/commands/main
- bigquery
- build
- no_tests_no_audits
- check
- clone
- compile
- fixtures/semantic
- databricks
- diff
- freshness
- janitor
- plan
- playground
- postgres
- providers
- reconcile
- rules
- scenario
- seed
- snowflake
- sqlserver
- state
- test
- integration/src/sqlbuild
- adapters
- bigquery
- databricks
- snowflake
- cli/commands/main
- model_migrations
- compiler/pipeline
- executor/testing
- microbatches/classes
- virtual
- executor
- _helpers
- classes
- state/classes
- postgres
- unit
- scripts/fensu_policy/rules
- src/sqlbuild
- adapter/contract/classes/base_adapter
- cli
- commands
- _helpers
- build_virtual
- clone
- diff
- entry
- janitor_output
- promote
- reconcile
- rollback
- runtime
- scenario_execution
- state
- main
- entry
- execution
- janitor
- playground
- output/main
- clone_execution_json
- plan
- compiler
- compile/_helpers
- discovery/_helpers
- planner/_helpers
- identity
- warehouse
- source_freshness/main/configured_observation
- sql_analysis/main
- executor
- custom
- janitor/main
- testing/main
- integrations/dbt
- lint/_helpers
- microbatches
- spec/contracts/main
- virtual
- executor
- _helpers
- main
- freshness
- planner/_helpers
- state
- _helpers
- state_storage
- main
- website/src
- content/docs/docs
- cli
- concepts
- models
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
76 | 76 | | |
77 | 77 | | |
78 | 78 | | |
79 | | - | |
| 79 | + | |
80 | 80 | | |
81 | 81 | | |
82 | 82 | | |
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
93 | | - | |
| 93 | + | |
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
| |||
195 | 195 | | |
196 | 196 | | |
197 | 197 | | |
198 | | - | |
199 | | - | |
200 | 198 | | |
201 | 199 | | |
202 | 200 | | |
203 | 201 | | |
204 | | - | |
205 | | - | |
| 202 | + | |
| 203 | + | |
206 | 204 | | |
207 | 205 | | |
208 | 206 | | |
| |||
390 | 388 | | |
391 | 389 | | |
392 | 390 | | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
393 | 447 | | |
394 | 448 | | |
395 | 449 | | |
| |||
551 | 605 | | |
552 | 606 | | |
553 | 607 | | |
| 608 | + | |
554 | 609 | | |
555 | 610 | | |
556 | 611 | | |
| |||
568 | 623 | | |
569 | 624 | | |
570 | 625 | | |
| 626 | + | |
571 | 627 | | |
572 | 628 | | |
573 | 629 | | |
| |||
587 | 643 | | |
588 | 644 | | |
589 | 645 | | |
| 646 | + | |
590 | 647 | | |
591 | 648 | | |
592 | 649 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
21 | 71 | | |
22 | 72 | | |
23 | 73 | | |
| |||
68 | 118 | | |
69 | 119 | | |
70 | 120 | | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
71 | 124 | | |
72 | 125 | | |
73 | 126 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
| 18 | + | |
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
| |||
102 | 102 | | |
103 | 103 | | |
104 | 104 | | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | 105 | | |
116 | 106 | | |
117 | 107 | | |
118 | 108 | | |
119 | | - | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
120 | 112 | | |
121 | 113 | | |
122 | 114 | | |
| 115 | + | |
123 | 116 | | |
124 | 117 | | |
125 | 118 | | |
| |||
144 | 137 | | |
145 | 138 | | |
146 | 139 | | |
147 | | - | |
| 140 | + | |
148 | 141 | | |
149 | 142 | | |
150 | 143 | | |
151 | | - | |
152 | | - | |
153 | | - | |
| 144 | + | |
154 | 145 | | |
155 | 146 | | |
156 | 147 | | |
157 | 148 | | |
158 | 149 | | |
159 | 150 | | |
160 | | - | |
161 | 151 | | |
162 | 152 | | |
163 | | - | |
| 153 | + | |
164 | 154 | | |
165 | 155 | | |
166 | 156 | | |
| |||
199 | 189 | | |
200 | 190 | | |
201 | 191 | | |
202 | | - | |
203 | | - | |
204 | 192 | | |
205 | 193 | | |
206 | 194 | | |
207 | 195 | | |
208 | 196 | | |
209 | 197 | | |
210 | 198 | | |
211 | | - | |
212 | | - | |
| 199 | + | |
| 200 | + | |
213 | 201 | | |
214 | 202 | | |
215 | 203 | | |
| |||
218 | 206 | | |
219 | 207 | | |
220 | 208 | | |
221 | | - | |
222 | 209 | | |
223 | 210 | | |
224 | | - | |
| 211 | + | |
225 | 212 | | |
226 | 213 | | |
227 | 214 | | |
| |||
244 | 231 | | |
245 | 232 | | |
246 | 233 | | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
247 | 241 | | |
248 | 242 | | |
249 | 243 | | |
| |||
266 | 260 | | |
267 | 261 | | |
268 | 262 | | |
269 | | - | |
270 | | - | |
271 | | - | |
272 | | - | |
273 | | - | |
274 | | - | |
275 | | - | |
276 | | - | |
277 | | - | |
278 | | - | |
279 | | - | |
280 | 263 | | |
281 | 264 | | |
282 | 265 | | |
| |||
290 | 273 | | |
291 | 274 | | |
292 | 275 | | |
293 | | - | |
294 | | - | |
295 | 276 | | |
296 | 277 | | |
297 | 278 | | |
| |||
0 commit comments