入力クエリをフォーマットできます。
オプション:
--helpor-h— ヘルプメッセージを表示します。--query— 長さや複雑さを問わずクエリをフォーマットします。--hiliteor--highlight— ANSI 端末のエスケープシーケンスによるシンタックスハイライトを追加します。--oneline— 1 行でフォーマットします。--max_line_length— 指定した長さ未満のクエリを 1 行でフォーマットします。--comments— 出力内のコメントを保持します。--quietor-q— 構文チェックのみを行い、成功時は何も出力しません。--multiqueryor-n— 同じファイル内で複数のクエリを許可します。--obfuscate— フォーマットの代わりに難読化します。--seed <string>— 難読化の結果を決定する任意の文字列のシードです。--backslash— フォーマット済みクエリの各行末にバックスラッシュを追加します。Web などから複数行のクエリをコピーしてコマンドラインで実行したい場合に便利です。--semicolons_inline— マルチクエリモードでは、セミコロンを新しい行ではなくクエリの最終行に記述します。
例
- クエリをフォーマットする:
$ clickhouse-format --query "select number from numbers(10) where number%2 order by number desc;"SELECT number
FROM numbers(10)
WHERE number % 2
ORDER BY number DESC- 強調表示と1 行:
$ clickhouse-format --oneline --hilite <<< "SELECT sum(number) FROM numbers(5);"SELECT sum(number) FROM numbers(5)- 複数クエリ:
$ clickhouse-format -n <<< "SELECT min(number) FROM numbers(5); SELECT max(number) FROM numbers(5);"SELECT min(number)
FROM numbers(5)
;
SELECT max(number)
FROM numbers(5)
;- 難読化:
$ clickhouse-format --seed Hello --obfuscate <<< "SELECT cost_first_screen BETWEEN a AND b, CASE WHEN x >= 123 THEN y ELSE NULL END;"SELECT treasury_mammoth_hazelnut BETWEEN nutmeg AND span, CASE WHEN chive >= 116 THEN switching ELSE ANYTHING END;同じクエリで、別のシード文字列を使った場合:
$ clickhouse-format --seed World --obfuscate <<< "SELECT cost_first_screen BETWEEN a AND b, CASE WHEN x >= 123 THEN y ELSE NULL END;"SELECT horse_tape_summer BETWEEN folklore AND moccasins, CASE WHEN intestine >= 116 THEN nonconformist ELSE FORESTRY END;- バックスラッシュを追加:
$ clickhouse-format --backslash <<< "SELECT * FROM (SELECT 1 AS x UNION ALL SELECT 1 UNION DISTINCT SELECT 3);"SELECT * \