Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

clickhouse-format

Permite formatear consultas de entrada.

Opciones:

  • --help o -h — Muestra el mensaje de ayuda.
  • --query — Formatea consultas de cualquier longitud y complejidad.
  • --hilite o --highlight — Añade resaltado de sintaxis con secuencias de escape ANSI del terminal.
  • --oneline — Formatea en una sola línea.
  • --max_line_length — Formatea en una sola línea las consultas cuya longitud sea inferior a la especificada.
  • --comments — Conserva los comentarios en la salida.
  • --quiet o -q — Solo comprueba la sintaxis; no produce salida si se ejecuta correctamente.
  • --multiquery o -n — Permite varias consultas en el mismo archivo.
  • --obfuscate — Ofusca en lugar de formatear.
  • --seed <string> — Cadena semilla arbitraria que determina el resultado de la ofuscación.
  • --backslash — Añade una barra invertida al final de cada línea de la consulta formateada. Puede ser útil cuando copias una consulta desde la web o desde otro lugar en varias líneas y quieres ejecutarla en la línea de comandos.
  • --semicolons_inline — En el modo multiquery, escribe los puntos y coma en la última línea de la consulta en lugar de en una línea nueva.

Ejemplos

  1. Formatear una 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. Resaltado y una sola línea:
Querybash
$ clickhouse-format --oneline --hilite <<< "SELECT sum(number) FROM numbers(5);"
Responsesql
SELECT sum(number) FROM numbers(5)
  1. Múltiples 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. Ofuscación:
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;

La misma consulta y otra cadena usada como semilla:

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. Añadir la barra invertida:
Querybash
$ clickhouse-format --backslash <<< "SELECT * FROM (SELECT 1 AS x UNION ALL SELECT 1 UNION DISTINCT SELECT 3);"
Responsesql
SELECT * \
Navigation