Snowflake Emulator
A local Snowflake account emulator. Official snowflake-connector-python,
gosnowflake and dbt-snowflake point at localhost, unmodified.
SQL runs on DuckDB and every result says so: dialect: duckdb. This
project does not claim Snowflake SQL compatibility. What it claims is narrower
and checkable — a statement a real account accepts is either answered or
refused by name, never quietly ignored.
make doctormake buildSNOWFLAKE_DUCKDB_PATH=:memory: make rundata/admin.pat is the seeded password. token=dev is 401.
Start here
Section titled “Start here”- Quickstart — the first statement, and the first refusal
- Doctrine — what this is, and what it is not
- Parity — every claim, measured against the built image
Why the refusals matter
Section titled “Why the refusals matter”Until v0.1.4 there were none. The duckdb CLI this image pins exits 0 after
refusing a statement, so anything unparseable answered status: ok —
eighteen constructs, including Tasks, Streams, Time Travel and TO_DATE,
none implemented and none saying so. The parity map at the time listed four of
them and was silent about the rest.
That is why the map is now generated by running each probe against the image, why CI fails if the committed file disagrees, and why every green claim names a witness. A capability list nothing verifies is a wish.