You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 321f2a6
Browse filesBrowse the repository at this point in the historyBrowse files
docs: credit Polyglot and SQLGlot for the parser SQLQuack forked
The README says where SQLQuack's parser comes from and adds a Credits
section for Polyglot and SQLGlot. The credits page says the same.
THIRD_PARTY_NOTICES now names the parser as a modified fork of polyglot,
in sqlquack-syntax-snowflake, sqlquack-syntax and sqlquack-derive. It gives
the current paths of the ported DuckDB result-type rules and their fixture,
and lists the semantic checks ported from polyglot's validation. The
licence texts are unchanged, and the distribution copies match the root.
Copy file name to clipboardExpand all lines: README.md
+13Lines changed: 13 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,6 +29,8 @@ SQL that runs on two engines doesn't always return the same answer. NULLs, decim
29
29
30
30
SQLQuack checks its conversion rules against real results from the source warehouse. It handles those differences deliberately and gives you precise diagnostics when it can't convert a query - not plausible-looking SQL and crossed fingers.
31
31
32
+
SQLQuack's parser started as a fork of [Polyglot](https://github.com/tobilg/polyglot), which is itself a Rust port of [SQLGlot](https://github.com/tobymao/sqlglot). The translation to DuckDB, the typing and the recorded evidence behind them are SQLQuack's own.
33
+
32
34
-**Check early.** Catch invalid SQL before it reaches the warehouse.
33
35
-**Test locally.** Convert queries to DuckDB SQL for tests against small fixtures.
34
36
-**See what's blocking you.** Scan a SQL project to find what converts and what needs attention.
@@ -93,6 +95,17 @@ A pull request runs what its changed files need. Documentation and website chang
93
95
94
96
Recording needs the dialect's engine: DuckDB and SQLite record locally, while Snowflake, BigQuery and Databricks need a connection. Recording Snowflake syntax evidence isn't public yet. `make help` lists every target.
95
97
98
+
## Credits
99
+
100
+
SQLQuack wouldn't exist without two projects:
101
+
102
+
-**[Polyglot](https://github.com/tobilg/polyglot)** by Tobias ([@tobilg](https://github.com/tobilg)). SQLQuack's tokenizer, parser and syntax tree are a modified fork of Polyglot's, and much of that code is still his. Tobias also fixed many issues I reported while building SQLBuild on Polyglot.
103
+
-**[SQLGlot](https://github.com/tobymao/sqlglot)** by Toby Mao and contributors. Polyglot is based on SQLGlot's design, and so is SQLQuack's parser.
104
+
105
+
Both are MIT licensed. Their licence texts are in [THIRD_PARTY_NOTICES](THIRD_PARTY_NOTICES) and ship with every release.
106
+
107
+
SQLQuack goes a different way from both on translation. It doesn't rewrite the tree and print it out. It checks each rule against recorded warehouse results and refuses what it can't prove.
108
+
96
109
---
97
110
98
111
Built in Rust. Free and open source. [Apache 2.0](https://github.com/sqlstack-io/sqlquack/blob/main/LICENSE).
0 commit comments