pg_query_go
JSqlParser
pg_query_go | JSqlParser | |
---|---|---|
3 | 4 | |
607 | 4,965 | |
2.0% | 1.0% | |
5.8 | 9.4 | |
6 days ago | 9 days ago | |
C | Java | |
BSD 3-clause "New" or "Revised" License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
pg_query_go
-
How we explored the best practices of GoReleaser X CGO
When implementing SQL Review for PostgreSQL, we introduced pg_query_go as the PostgreSQL parser. The pg_query_go uses the native PostgreSQL parser via C bind, which naturally requires CGO support.
-
sqlc: Generating go code from sql statements
If you are using Postgres then you are lucky! sqlc uses the official postgres parser (https://github.com/pganalyze/pg_query_go) and while I have never tried it, I guess it works really well.
-
Open Source SQL Parsers
Golang: pg_query_go
JSqlParser
-
Semantic Diff for SQL
I wonder if this is a topical thread to check if anyone is aware of a Java based solution to parse a CREATE VIEW statement to get a mapping between the view columns and the corresponding source table columns. I checked out jsqlparser[0] and it does produce an AST which can be parsed using the visitor-pattern[1] but was wondering if there is a more "out-of-the-box" solution. Due to various reasons, querying the database information schema is not an option I can pursue.
[0]: https://github.com/JSQLParser/JSqlParser
[1]: https://en.wikipedia.org/wiki/Visitor_pattern
-
Open Source SQL Parsers
JSQLParser can parse multiple SQL dialects like MySQL, Postgres and Oracle. The grammar can be modified to support other SQL dialects.
- Let's write a compiler, part 5: A code generator
-
Racket v8.0
Interesting coincidence - I'm working on a parser that parses the AST produced by JSqlParser[0] for a create view statement to generate mapping between the columns of a view and the columns of its underlying table. It is an interesting example of having to use the visitor pattern[1].
[0]: https://github.com/JSQLParser/JSqlParser
What are some alternatives?
pg_query - Ruby extension to parse, deparse and normalize SQL queries using the PostgreSQL query parser
Apache Calcite - Apache Calcite
pg_parse - PostgreSQL parser for Rust that uses the actual PostgreSQL server source to parse SQL queries and return the internal PostgreSQL parse tree.
sqlglot - Python SQL Parser and Transpiler
libpg_query - C library for accessing the PostgreSQL parser outside of the server environment
zetasql - ZetaSQL - Analyzer Framework for SQL
pglast - PostgreSQL Languages AST and statements prettifier: master branch covers PG10, v2 branch covers PG12, v3 covers PG13, v4 covers PG14, v5 covers PG15, v6 covers PG16
sqlparse - A non-validating SQL parser module for Python
ANTLR - ANTLR (ANother Tool for Language Recognition) is a powerful parser generator for reading, processing, executing, or translating structured text or binary files.
Presto - The official home of the Presto distributed SQL query engine for big data
pg-query-emscripten - Emscripten Port of pg_query to easily play with it in the browser