A JavaScript library that uses the sqlparser
Rust crate to parse and manipulate SQL statements.
- Parse SQL statements using various SQL dialects
- Support for 10+ SQL dialects including PostgreSQL, MySQL, SQLite, BigQuery, and more
import { init, parse } from '@casual-simulation/sql-parser'
await init();
const ast = parse('SELECT * FROM "users";');
generic
- Generic SQL dialectpostgresql
/postgres
- PostgreSQLmysql
- MySQLsqlite
- SQLitemssql
/sqlserver
- Microsoft SQL Serversnowflake
- Snowflakeredshift
- Amazon Redshiftbigquery
- Google BigQueryclickhouse
- ClickHousehive
- Apache Hive
Initializes the library WASM module.
Parses a SQL statement using the specified dialect and returns the AST as a pretty-printed JSON string.
Parameters:
sql
- The SQL statement(s) to parsedialect
- The SQL dialect to use for parsing
Returns:
Statement[]
- The parsed statementsError
- Throws an error if parsing failed.
Formats the given statement into a SQL string.
Parameters:
statement
- The SQL statement for format.
A class that is able to walk over a SQL tree and call the given functions for each kind of statement.
Runs the visitor on the given statement.
let result = parse("SELECT * FROM users", "postgresql");
// Returns JSON representation of the SELECT statement AST
let sql = `
SELECT u.name, COUNT(o.id) as order_count
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
WHERE u.active = true
GROUP BY u.name
HAVING COUNT(o.id) > 5
ORDER BY order_count DESC
LIMIT 10
`;
let result = parse(sql, "mysql");
// Returns detailed JSON AST including joins, aggregations, etc.
# Build the library
pnpm build
pnpm test
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add some amazing feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.