クライアントフィルタの使い方/クライアントフィルタとは?

クライアントフィルタは、文字列の検索・置換などの処理を手軽な方法で利用できます。
以下の例では、「ls users」コマンドの結果をクライアントフィルタで処理しています。

12:00:00 sql> ls users
User     | Host
---------+----------
moriyama | %
root     | localhost
(2 rows)

Time: 0 ms

12:00:00 sql> ls users \| grep moriyama
moriyama | %

上記では、「\|」に続けて「grep」というクライアントフィルタを使用し、「moriyama」という文字列の含まれる行のみを出力させています。
ここで注目してもらいたいことは、クエリのヘッダやフッタも単純に処理対象とされることです。これは、クエリの整形結果の文字列に対して処理を行っている ためです。
クライアントフィルタの使い方は、「\help filter FilterName」というコマンドで確認できます。以下はgrepクライアントフィルタの例です。

22:38:20 sql> \help filter grep
grep - パターンにマッチする行を表示します

Usage: grep [OPTION]... PATTERN...
[OPTION]
  -i, --ignore-case   大文字/小文字を無視します
  -n, --line-number   出力行に行数も表示します
  -v, --invert-match  一致しない行を対象にします
  -h                  このヘルプを表示します

注意すべき点は、クライアントフィルタはクエリの処理結果に対して出力する直前に作用するということです。
つまり、クエリの結果が文字列として変換された後に機能するということです。

クライアントフィルタとは?
登録されているクライアントフィルタの一覧
クライアントフィルタの実行例
クライアントフィルタの登録方法

トップ