Repolode
AfterShip

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. 1

    Instale a CLI com Go

    go install github.com/AfterShip/clickhouse-sql-parser@latest
  2. 2

    No macOS, instale com Homebrew em vez disso

    brew install clickhouse-sql-parser
  3. 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