Skip to content

feat(benchmarks): add DuckShop, a dense Snowflake example project - #1245

Merged
kvlonge merged 1 commit into
mainfrom
feat/duckshop
Oct 24, 2026
Merged

kvlonge merged 1 commit into
mainfrom
feat/duckshop

Conversation

@kvlonge

@kvlonge kvlonge commented Oct 24, 2026

Copy link
Copy Markdown
Contributor

Why

SQLBuild needs a realistic, dense Snowflake project for exercising the compiler, Rules, unit tests and scenarios, and for measuring Snowflake-to-DuckDB translation during local scenario replay. The existing example projects are too small to show real-world construct mixes.

Changes

  • Add benchmarks/duckshop/: 252 Snowflake SQL models (staging, intermediate, marts, snapshots), 5 seeds, SQL and Python functions, macros, enums, constants, generic and singular audits, and reviewed rule exceptions for a fictional duck-themed home goods shop.
  • Add 266 unit tests and 8 scenarios, with captured local snapshots.
  • Add deterministic self-managed loaders for 76 managed sources (about 60,000 synthetic rows, scaled by the data_scale var), offline loader tests, a construct census script, and cleanup SQL.
  • Add RUNBOOK.md for loading, building, testing and capturing on Snowflake, and a README with project status, expected divergences and known SQLBuild limitations.
  • Add an E2E test that compiles the project with the SQLBuild under test and fails on any error or warning.

Verification

  • sqb compile: 0 errors, 0 warnings; sqb format --check clean; ruff clean; 269 offline loader tests pass.
  • On Snowflake with SQLBuild 0.175.0: sqb load, sqb build, sqb test (266/266) and sqb scenario test (8/8) pass, and sqb scenario capture succeeds.
  • sqb scenario test --local --strict fails on 8 of 8, as documented in the README: 5 translation failures, and 3 snapshots reported stale by a SQLBuild fingerprint issue.
  • make check-ci and CI cover the new E2E compile test.

@kvlonge
kvlonge enabled auto-merge (squash) October 24, 2026 13:47
@kvlonge
kvlonge merged commit e68476e into main Oct 24, 2026
37 checks passed
@kvlonge
kvlonge deleted the feat/duckshop branch October 24, 2026 14:11
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