Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

clickhouse-format

Permite formatar consultas de entrada.

Opções:

  • --help ou -h — Exibe a mensagem de ajuda.
  • --query — Formata consultas de qualquer tamanho e complexidade.
  • --hilite ou --highlight — Adiciona realce de sintaxe com sequências de escape ANSI do terminal.
  • --oneline — Formata em uma única linha.
  • --max_line_length — Formata consultas em uma única linha com comprimento menor que o especificado.
  • --comments — Mantém comentários na saída.
  • --quiet ou -q — Apenas verifica a sintaxe, sem saída em caso de sucesso.
  • --multiquery ou -n — Permite várias consultas no mesmo arquivo.
  • --obfuscate — Ofusca em vez de formatar.
  • --seed <string> — Define uma string arbitrária que determina o resultado da ofuscação.
  • --backslash — Adiciona uma barra invertida ao final de cada linha da consulta formatada. Pode ser útil quando você copia uma consulta da web ou de outro lugar com várias linhas e quer executá-la na linha de comando.
  • --semicolons_inline — No modo multiquery, escreve os pontos e vírgulas na última linha da consulta em vez de em uma nova linha.

Exemplos

  1. Formatação de uma consulta:
Querybash
$ clickhouse-format --query "select number from numbers(10) where number%2 order by number desc;"
Responsebash
SELECT number
FROM numbers(10)
WHERE number % 2
ORDER BY number DESC
  1. Destaque e linha única:
Querybash
$ clickhouse-format --oneline --hilite <<< "SELECT sum(number) FROM numbers(5);"
Responsesql
SELECT sum(number) FROM numbers(5)
  1. Múltiplas consultas:
Querybash
$ clickhouse-format -n <<< "SELECT min(number) FROM numbers(5); SELECT max(number) FROM numbers(5);"
Responsesql
SELECT min(number)
FROM numbers(5)
;

SELECT max(number)
FROM numbers(5)
;
  1. Ofuscação:
Querybash
$ clickhouse-format --seed Hello --obfuscate <<< "SELECT cost_first_screen BETWEEN a AND b, CASE WHEN x >= 123 THEN y ELSE NULL END;"
Responsesql
SELECT treasury_mammoth_hazelnut BETWEEN nutmeg AND span, CASE WHEN chive >= 116 THEN switching ELSE ANYTHING END;

A mesma consulta e uma string de seed diferente:

Querybash
$ clickhouse-format --seed World --obfuscate <<< "SELECT cost_first_screen BETWEEN a AND b, CASE WHEN x >= 123 THEN y ELSE NULL END;"
Responsesql
SELECT horse_tape_summer BETWEEN folklore AND moccasins, CASE WHEN intestine >= 116 THEN nonconformist ELSE FORESTRY END;
  1. Adicionando um backslash:
Querybash
$ clickhouse-format --backslash <<< "SELECT * FROM (SELECT 1 AS x UNION ALL SELECT 1 UNION DISTINCT SELECT 3);"
Responsesql
SELECT * \
Navigation