Parser SQL para Java que transforma instruções SQL em uma árvore navegável de objetos Java e pode convertê-las de volta em texto SQL.
AfterShip/clickhouse-sql-parser
Biblioteca Go e CLI que analisa SQL no dialeto ClickHouse em uma AST tipada e formata ou embeleza consultas.
- Estrelas
- 255
- Forks
- 62
- Issues abertas
- 1
- Último commit
- anteontem
O que é?
clickhouse-sql-parser transforma instruções SQL do ClickHouse em uma árvore sintática abstrata (AST) tipada em Go. Pode ser importado como biblioteca ou executado como CLI para imprimir a AST, gerar uma versão compacta em uma única linha ou embelezar consultas com recuos e quebras de linha.
A biblioteca oferece um parser com ParseStmts, um formatador que converte nós da AST de volta para SQL e funções auxiliares de travessia, como Walk, WalkWithBreak, Find, FindAll e Transform. Com elas, é possível inspecionar ou reescrever consultas programaticamente, sem precisar criar uma gramática por conta própria.
O projeto foi inspirado no memefish, um parser de SQL do Spanner em Go. Os arquivos de teste de saída e formatação são gerados por casos de teste e validados com clickhouse-local quando uma nova sintaxe é adicionada.
Recursos principais
- 01Analisa instruções SQL do ClickHouse em uma AST tipada em Go.
- 02Formata nós da AST de volta para strings SQL.
- 03Embeleza consultas com recuos e quebras de linha.
- 04Oferece as funções auxiliares Walk, Find, FindAll e Transform para percorrer e reescrever árvores.
- 05Disponível como biblioteca Go e CLI, instalável via go install ou Homebrew.
Casos de uso
- Fazer lint ou análise estática de consultas do ClickHouse.
- Aplicar controle de acesso inspecionando as tabelas referenciadas em uma consulta.
- Reescrever consultas programaticamente antes da execução.
- Formatar SQL do ClickHouse em editores ou pipelines.
Início rápido
- 1
Instale a CLI com Go
go install github.com/AfterShip/clickhouse-sql-parser@latest - 2
No macOS, instale com Homebrew em vez disso
brew install clickhouse-sql-parser - 3
Analise ou formate uma consulta
clickhouse-sql-parser -beautify "SELECT * FROM clickhouse WHERE a=100"
Antes de usar
- A análise cobre apenas a sintaxe do dialeto ClickHouse, então SQL mais recente ou incomum pode não ser compatível.
Em coleções
Tópicos
Perguntas frequentes
- O que é clickhouse-sql-parser?
- Biblioteca Go e CLI que analisa SQL no dialeto ClickHouse em uma AST tipada e formata ou embeleza consultas. clickhouse-sql-parser transforma instruções SQL do ClickHouse em uma árvore sintática abstrata (AST) tipada em Go. Pode ser importado como biblioteca ou executado como CLI para imprimir a AST, gerar uma versão compacta em uma única linha ou embelezar consultas com recuos e quebras de linha.
- clickhouse-sql-parser é gratuito? Qual é a licença?
- clickhouse-sql-parser é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- clickhouse-sql-parser ainda é mantido?
- Manutenção ativa. O último commit de clickhouse-sql-parser foi em 4 de nov. de 2026.
- Para que posso usar clickhouse-sql-parser?
- Fazer lint ou análise estática de consultas do ClickHouse. Aplicar controle de acesso inspecionando as tabelas referenciadas em uma consulta. Reescrever consultas programaticamente antes da execução. Formatar SQL do ClickHouse em editores ou pipelines.
- Como instalar clickhouse-sql-parser?
- Instale a CLI com Go: go install github.com/AfterShip/clickhouse-sql-parser@latest No macOS, instale com Homebrew em vez disso: brew install clickhouse-sql-parser Analise ou formate uma consulta: clickhouse-sql-parser -beautify "SELECT * FROM clickhouse WHERE a=100"
- Onde consigo clickhouse-sql-parser?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/AfterShip/clickhouse-sql-parser
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Transpilador de SQL em Rust/WASM que analisa, gera, transpila e formata SQL em mais de 30 dialetos, inspirado no sqlglot.
Um parser de PHP escrito em PHP que transforma código-fonte PHP em uma árvore sintática abstrata para análise estática e manipulação de código.
Uma ferramenta de CLI que busca, verifica e reescreve código usando padrões de árvores sintáticas abstratas em vez de texto simples.
Um wrapper de TypeScript para a TypeScript Compiler API, usado para analisar e modificar código TypeScript e JavaScript programaticamente.
Parser de Java 1 a Java 25 que gera uma árvore sintática abstrata e inclui um resolvedor de símbolos para localizar declarações e tipos.