Un parser SQL para Java que convierte sentencias SQL en un árbol navegable de objetos Java y puede volver a generar el texto SQL.
AfterShip/clickhouse-sql-parser
Una biblioteca y CLI de Go que analiza SQL del dialecto de ClickHouse y lo convierte en un AST tipado, y da formato o embellece las consultas.
- Estrellas
- 255
- Forks
- 62
- Issues abiertos
- 1
- Último commit
- anteayer
¿Qué es?
clickhouse-sql-parser convierte sentencias SQL de ClickHouse en un árbol de sintaxis abstracta (AST) tipado en Go. Se puede importar como biblioteca o ejecutar como CLI para imprimir el AST, generar un formato compacto de una sola línea o embellecer las consultas con sangría y saltos de línea.
La biblioteca ofrece un parser con ParseStmts, un formatter que convierte los nodos del AST nuevamente en SQL y funciones auxiliares para recorrerlo, como Walk, WalkWithBreak, Find, FindAll y Transform. Estas herramientas permiten inspeccionar o reescribir consultas mediante código, sin tener que crear una gramática propia.
El proyecto se inspira en memefish, un parser de SQL de Spanner escrito en Go. Los recursos de prueba para la salida y el formato se generan mediante casos de prueba y se validan con clickhouse-local al añadir sintaxis nueva.
Funciones clave
- 01Analiza sentencias SQL de ClickHouse y las convierte en un AST tipado en Go.
- 02Convierte los nodos del AST nuevamente en cadenas SQL.
- 03Embellece las consultas con sangría y saltos de línea.
- 04Ofrece las funciones auxiliares Walk, Find, FindAll y Transform para recorrer y reescribir árboles.
- 05Está disponible como biblioteca de Go y como CLI, y se puede instalar mediante go install o Homebrew.
Casos de uso
- Linting o análisis estático de consultas de ClickHouse.
- Aplicar controles de acceso inspeccionando las tablas a las que hace referencia una consulta.
- Reescribir consultas mediante código antes de ejecutarlas.
- Dar formato a SQL de ClickHouse en editores o pipelines.
Inicio rápido
- 1
Instala la CLI con Go
go install github.com/AfterShip/clickhouse-sql-parser@latest - 2
En macOS, instálala con Homebrew
brew install clickhouse-sql-parser - 3
Analiza o da formato a una consulta
clickhouse-sql-parser -beautify "SELECT * FROM clickhouse WHERE a=100"
Antes de usarlo
- El análisis solo admite la sintaxis del dialecto de ClickHouse, por lo que es posible que no admita SQL reciente o poco habitual.
En colecciones
Temas
Preguntas frecuentes
- ¿Qué es clickhouse-sql-parser?
- Una biblioteca y CLI de Go que analiza SQL del dialecto de ClickHouse y lo convierte en un AST tipado, y da formato o embellece las consultas. clickhouse-sql-parser convierte sentencias SQL de ClickHouse en un árbol de sintaxis abstracta (AST) tipado en Go. Se puede importar como biblioteca o ejecutar como CLI para imprimir el AST, generar un formato compacto de una sola línea o embellecer las consultas con sangría y saltos de línea.
- ¿clickhouse-sql-parser es gratuito? ¿Qué licencia tiene?
- clickhouse-sql-parser es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿clickhouse-sql-parser sigue mantenido?
- Mantenimiento activo. El último commit de clickhouse-sql-parser fue el 4 nov 2026.
- ¿Para qué puedo usar clickhouse-sql-parser?
- Linting o análisis estático de consultas de ClickHouse. Aplicar controles de acceso inspeccionando las tablas a las que hace referencia una consulta. Reescribir consultas mediante código antes de ejecutarlas. Dar formato a SQL de ClickHouse en editores o pipelines.
- ¿Cómo se instala clickhouse-sql-parser?
- Instala la CLI con Go: go install github.com/AfterShip/clickhouse-sql-parser@latest En macOS, instálala con Homebrew: brew install clickhouse-sql-parser Analiza o da formato a una consulta: clickhouse-sql-parser -beautify "SELECT * FROM clickhouse WHERE a=100"
- ¿Dónde consigo clickhouse-sql-parser?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/AfterShip/clickhouse-sql-parser
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Transpilador de SQL en Rust/WASM que analiza, genera, transpila y formatea SQL en más de 30 dialectos, inspirado en sqlglot.
Un parser de PHP escrito en PHP que convierte código fuente PHP en un árbol de sintaxis abstracta para el análisis estático y la manipulación de código.
Herramienta CLI que busca, analiza y reescribe código al comparar patrones de árboles de sintaxis abstracta, en lugar de texto plano.
Un wrapper de TypeScript Compiler API para analizar y modificar mediante código proyectos de TypeScript y JavaScript.
Parser de Java 1 a Java 25 que construye un árbol de sintaxis abstracta y ofrece un resolutor de símbolos para identificar declaraciones y tipos.