Skip to main content

説明

Pretty フォーマットは、データを Unicode アートのテーブルとして出力し、 端末で色を表示するために ANSI エスケープシーケンスを使用します。 テーブル全体の罫線が描画され、各行は端末上で 2 行分を使用します。 各結果ブロックは個別のテーブルとして出力されます。 これは、結果をバッファリングせずにブロックを出力できるようにするために必要です (すべての値の表示幅を事前に計算するにはバッファリングが必要になるためです) 。 NULL は ᴺᵁᴸᴸ として出力されます。

使用例

例 (PrettyCompact フォーマットで表示した場合) :
Query
Response
どの Pretty フォーマットでも、行はエスケープされません。代わりに、値およびカラム名に含まれる印字不可能な制御文字 (C0 制御文字 0x00-0x1F および DEL 0x7F) は、デフォルトで対応する Unicode の “Control Pictures” (U+2400-U+2421) として表示されます。これにより、制御文字が目に見える形で表示され、テーブルのレイアウトが崩れるのを防ぎます。たとえば、NUL は ␀ と表示されます。
Query
Response
TAB、改行、ESC は例外で、常にそのまま出力されます。端末はこれらを読み飛ばさずに解釈するためです。タブは次のタブストップまで位置を進め、ANSI エスケープシーケンスを使えばデータに視覚表現を持たせることができます。改行も通常どおり行を改めます。output_format_pretty_multiline_fields が有効な場合はテーブルのセル内で改行され、それ以外の場合はそのまま出力されます。ただし、カラム名はこの例外のさらに例外です。ヘッダーとフッターは 1 行で表示されるため、名前に含まれる改行は他の制御文字と同様に置き換えられます。 制御文字を置き換えずにそのまま出力するには、output_format_pretty_display_control_characters を無効にします。
Query
その場合、レスポンスには代わりに生の NUL バイトがそのまま含まれます。端末はこのバイトを表示せずに読み飛ばすため、文字は見えなくなり、 その行は計測された罫線よりも 1 文字分だけ幅が広くなります。これが、Control Picture を表示することで回避できる テーブルの崩れです。 端末に大量のデータをダンプしすぎないよう、最初の 10,000 行のみが出力されます。 行数が 10,000 以上の場合は、“Showed first 10 000” というメッセージが出力されます。
このフォーマットはクエリ結果の出力にのみ適しており、データのパースには適していません。
Pretty フォーマットは、合計値 (WITH TOTALS を使用した場合) と極値 (‘extremes’ が 1 に設定されている場合) の出力をサポートしています。 この場合、合計値と極値はメインデータの後に、それぞれ別のテーブルとして出力されます。 この動作は、PrettyCompact フォーマットを使用する次の例で示されています。
Query
Response

フォーマット設定

以下の設定は、すべての Pretty フォーマットに共通です。