Repository navigation
Conversation
…tions The script compiles the core project, translates each compiled model from Snowflake to DuckDB with Polyglot plus DuckShop-specific rewrites, and writes Snowflake functions DuckDB lacks as project SQL macros. The copy compiles with no errors and builds every model on DuckDB; an E2E test runs the whole path.
A sql freshness query names the Snowflake raw table, which the DuckDB copy does not have, so freshness failed and blocked the models reading that source.
Graphs stay hidden until their first fit has painted, so cards no longer appear at unlaid-out positions and slide into place. The plan page keeps one layout while it loads: one overlay covers the result from the first command check until the plan arrives, and the side panel no longer appears late and narrows the page.
…in the DuckDB copy Formatted TO_TIMESTAMP calls now parse with their format instead of a plain cast, so day-first hub tracking times are no longer NULL. REGEXP_SUBSTR and REGEXP_LIKE now apply Snowflake's i, s and m flags, and e extracts the first group, so case-insensitive matches such as supplier payment terms and refund reasons resolve as they do on Snowflake.
Each first-fit attempt is bounded by a frame, so a fit the flow never runs cannot keep the graph hidden, and an empty graph shows its controls.
kvlonge
enabled auto-merge (squash)
November 10, 2026 22:48
Contributor
Author
|
The only failing check is the new DuckDB DuckShop E2E case. It is doing its job: it found two analysis false positives in the native DuckDB route on main, both in SQLQuack. DuckDB 2.0.0 runs both shapes.
The fix goes into SQLQuack. This pull request stays open with auto-merge on, and the case stays as it is. It will pass once SQLBuild pins the fixed SQLQuack release. |
kvlonge
disabled auto-merge
November 11, 2026 04:22
Contributor
Author
|
Closing without merging: these five commits move into a combined pull request, which keeps the DuckDB DuckShop end-to-end case. |
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
Demonstrations need a DuckShop that builds locally without a warehouse. The plan page and lineage graphs also flashed and jumped while they loaded, and a slow first fit could leave a graph or its zoom controls hidden.
Changes
benchmarks/duckshop/scripts/duckdb_project.pyandduckdb_rewrites.pygenerate a DuckDB copy of core DuckShop. The copy drops Snowflake freshness queries and rewrites Snowflake-only SQL. FormattedTRY_TO_TIMESTAMP_TZcalls honour their format, andREGEXP_SUBSTR/REGEXP_LIKEhonour Snowflake's flags.uv run --script, which fetchespolyglot-sql-chioandpyyamlfrom PyPI or the uv cache.BEGIN_COMMIT_OVERRIDE
feat(duckshop): DuckShop can now be generated as a DuckDB project for demonstrations (
benchmarks/duckshop/scripts/duckdb_project.py)fix(ui): the plan page and lineage graphs no longer flash or jump while they load
END_COMMIT_OVERRIDE
Verification
svelte-check0 errors and vitest 193/193. The DuckDB E2E case passed in 44 s. A regenerated copy built with 2,046 passes, 1 warning and 0 failures. All 3,265 tracking events had anevent_at, "net 60" parsed to 60, and refund reasons classified regardless of case.ruffandtyare clean on the changed Python, andfensu dupes --since origin/mainfinds no duplicated code.full-verifyreruns the E2E case and the UI checks on this base.