psqlコマンドのお勧め設定

実はpsqlコマンドは色付きプロンプトを始めとして意外と便利な設定ができるようになっています。わたしが使っているおすすめの ~/.psqlrc を書いておきます。

\set PROMPT1 '%[%033[1;32m%]%n %`date +%H:%M` %R%#%[%033[0m%] '
\set PROMPT2 '%[%033[1;32m%]%R%#%[%033[0m%] '
\timing on
\set HISTSIZE 1000000

以下解説

PROMPT1, PROMPT2

お約束の色付きプロンプト。 上記設定は緑のボールドにしていて、色を抜かすとこう↓なります。

'%n %`date +%H:%M` %R%# '

表示すると「aamine 18:05 =>」みたいな感じです。以下解説。

  • %[...%] : エスケープが有効
  • %033 : ESC文字
  • %n : ユーザー名
  • %cmd : 任意のコマンド実行
    • date +%H:%M は時刻を HH:MM 形式で表示します。Redshiftではクエリーを長時間実行するため、何時に投げたんだっけこれ……みたいな気持によくなるので付けました。
  • %R : 最初の行では "=" で 2 行目から "-"
  • %# : スーパーユーザーなら "#"、一般ユーザーなら ">"

実行時間表示

\timing on でクエリー実行後に実行時間が表示されます。 ミリ秒で。秒単位がいいんだけど単位は変えられないっぽい。

ヒストリ

\set HISTSIZE 1000000 は数値はまあなんでもよくて、とにかく捨てるなよ!という設定。