pg_query_go VS JSqlParser

Compare pg_query_go vs JSqlParser and see what are their differences.

pg_query_go

Go library to parse and normalize SQL queries using the PostgreSQL query parser (by pganalyze)

JSqlParser

JSqlParser parses an SQL statement and translate it into a hierarchy of Java classes. The generated hierarchy can be navigated using the Visitor Pattern (by JSQLParser)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
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
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
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

Posts with mentions or reviews of pg_query_go. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-08-25.

JSqlParser

Posts with mentions or reviews of JSqlParser. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-07-29.
  • Semantic Diff for SQL
    7 projects | news.ycombinator.com | 29 Jul 2022
    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
    17 projects | dev.to | 8 Oct 2021
    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
    14 projects | news.ycombinator.com | 19 Aug 2021
  • Racket v8.0
    7 projects | news.ycombinator.com | 14 Feb 2021
    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?

When comparing pg_query_go and JSqlParser you can also consider the following projects:

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