バイナリ形式COPY文の怪

ちょっと仕事の関係でバイナリフォーマットをCOPYしようと思って気がついたこと。
(環境はPostgreSQL 9.1.2)

PostgreSQLCOPY文ではOPTIONでFOMATの指定が可能なのだが、text, csvは普通に記述できるけど、binaryを書くとsyntaxエラーになってしまう。(´・ω・`)

db=# COPY foo FROM STDIN WITH ( FORMAT binary );
ERROR: syntax error at or near "binary"
もちろんtextやcsvはそのまま記述可能。
db=# COPY foo FROM STDIN WITH ( FORMAT text );
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.

binaryの場合は二重引用符で引用しないと駄目っぽい。

db=# COPY foo FROM STDIN WITH ( FORMAT "binary" ););
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.

これは一体どういうことなのか・・・。PostgreSQL文書のCOPYのページにも、特にbinaryのときには二重引用符で引用しなければならない、とは記述がない。
ちょいと不思議な気がしたので、PostgreSQL文書の付録C SQLキーワードのページを見ると・・・

binary 予約(関数または型として使用可)
csv 未予約
text 未予約

となっている。そう、binaryだけキーワードの扱いが違うのだ。
逆に言えば、csvやtextというトークンは実はそのまま名標に書けるということだ。どういうことかと言うと、csvという名前のカラムやtextという名前のテーブルが作成できるということ。binaryという名前は引用しないとそういうことは出来ない。

こうなった経緯は良くわからなかったが、http://postgresql.1045698.n5.nabble.com/COPY-WITH-FORMAT-binary-causes-syntax-error-at-or-near-quot-binary-quot-tt4553524.htmlを流し読みした感じでは旧バージョン(7.3以前)との互換性などが関係しているようだ。

過去の経緯はともかくとして、とりあえずのPostgreSQL文書COPYのページには「binaryは二重引用符で括らないと駄目よ」という注意書きを書いて欲しいなあと思うのであった。