PostgreSQLポータルサイト <Let's Postgres> http://lets.postgresql.jp/
入門から運用、チューニングノウハウ、新機能の解説など、幅広い内容の技術解説記事をお読みいただけます。

第 44章PostgreSQLソースコード

44.1. 書式

ソースコードの書式では、タブを4カラムとするスペーシングを使用し、現在はタブを保存しています(つまりタブをスペースに展開しません)。 各論理インデントのレベルは、さらに1つのタブストップです。 レイアウト規則(中括弧の位置など)はBSDの規則に従います。

登録されたパッチは完全にはこの書式規則に従っていませんが、そのようにすることを勧めます。 登録されるコードはpgindentに通されます。 ですので、他の書式規則に従って作成して、見た目を良くすることに意味がありません。

Emacsに関しては、~/.emacs初期化ファイルに以下(のようなもの)を追加してください。

;; パスに"postgres"または"pgsql"が含まれているか検査する。
(setq auto-mode-alist
  (cons '("\\(postgres\\|pgsql\\).*\\.[ch]\\'" . pgsql-c-mode)
        auto-mode-alist))
(setq auto-mode-alist
  (cons '("\\(postgres\\|pgsql\\).*\\.cc\\'" . pgsql-c-mode)
        auto-mode-alist))

(defun pgsql-c-mode ()
  ;; PostgreSQL Cコード用の書式の設定を行う
  (interactive)
  (c-mode)
  (setq-default tab-width 4)
  (c-set-style "bsd")             ; c-basic-offsetを4に設定し、いくつか追加する
  (c-set-offset 'case-label '+)   ; PGに合わせてcase文のインデントを変更する
  (setq indent-tabs-mode t))      ; インデント処理時にタブを保持させる

viに関しては、~/.vimrc、またはその類のファイルに下記の内容が含まれている必要があります。

set tabstop=4

または、vi内で下記のようにコマンドを実行してください。

:set ts=4

テキスト閲覧ツール、morelessでは以下のようにすればタブを適切に表示させることができます。

more -x4
less -x4