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 }}
This repository was archived by the owner on Mar 26, 2026. It is now read-only.
Copy file name to clipboardExpand all lines: README.md
+12-2Lines changed: 12 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Anywhere SQL hits a hot path: proxies, sidecars, migration tools, linters, etc.
12
12
13
13
#### Why this exists
14
14
15
-
libsqlglot was born out of a gap in the C++ ecosystem: the lack of native tooling for high-speed, hassle-free parsing & transpiling between dozens of SQL dialects.
15
+
libsqlglot was born out of a gap in the C++ ecosystem: the lack of native tooling for efficient, high-volume and hassle-free parsing & transpilation between dozens of SQL dialects.
16
16
17
17
Inspired by the original [sqlglot](https://github.com/tobymao/sqlglot), which did the decade-long work of mapping 31+ SQL dialects into an elegant, universal AST. libsqlglot does the comparatively trivial work of compiling it: the algorithm was already O(n), the runtime wasn't.
18
18
@@ -218,7 +218,7 @@ cmake --build build
218
218
219
219
## Architecture
220
220
221
-
Header-only design: you only pay for what you use. 19 header files, no `.cpp`. See `include/libsqlglot/` for the full layout. Core files: `parser.h` (3479 lines), `generator.h` (1913), `expression.h` (1248, 115 expression types). Entry point is `transpiler.h` (86 lines).
221
+
Header-only design: you only pay for what you use. 19 header files, no `.cpp`. See `include/libsqlglot/` for the full layout. Core files: `parser.h` (4016 lines), `generator.h` (2092), `expression.h` (1376, 115 expression types). Entry point is `transpiler.h` (86 lines).
222
222
223
223
### Memory management
224
224
@@ -587,6 +587,16 @@ These dialects inherit features from a compatible base dialect and add specific
587
587
| Vertica | Vertica | PostgreSQL | CREATE PROJECTION for physical design, SEGMENTED BY HASH, columnar storage |
588
588
| YugabyteDB | YugabyteDB | PostgreSQL | SPLIT INTO n TABLETS, distributed SQL, PostgreSQL compatibility |
589
589
590
+
## Contributing
591
+
592
+
# Contributing
593
+
594
+
libsqlglot is a solo project. Bug reports, test cases, and dialect edge cases are welcome via GitHub issues.
595
+
596
+
If you find a query that parses incorrectly, or a dialect transformation that produces wrong output, please open an issue with the input SQL, source dialect, target dialect, and expected output.
597
+
598
+
Pull requests are considered but there is no guarantee of merge. The codebase is intentionally small and opinionated.
0 commit comments