正確に言えば「日本語など非アスキー文字」です。WindowsPostgreSQLを普通にインストールすると(公式サイトが推奨するEnterpriseDB社のインストーラで)、データベース作成時のデフォルトロケールがJapanese_Japan.932になります。これが、PL/Rで非アスキー文字を使えない、というか変数に非アスキー文字を入れると致命的なエラーになってPostgreSQLサーバが落ちる原因でした。

詳しく言うと、ロケールのうちLC_CTYPEJapanese_Japan.932でなくCを設定したデータベースなら、嘘みたいに何の問題も起きず。Windows 7 32bit + PostgreSQL 9.3.5 + R 3.1.2 + PL/R 8.3.0.15で確認しました。てっきり日本語版Windows特有の問題だと思い込み、前のブログでたびたびこの件を書いて今ごろ気付き、すみませんm(_)m

↓ 問題が起きるデータベースの場合。Character typeという項目がLC_CTYPEです。

PL/Rを使うデータベースなら ↓ のように、作成時に手動でCharacter typeCを設定すれば良いです。Character typeを設定するため、Templatetemplate0を使います(そうしないと変更できない)。文字コードはずっとUTF-8にしており、他の場合は試していません。

PostgreSQLのロケールについては
Let's postgres -ロケール(国際化と地域化)に詳しい解説があります。また下記は、日本語ドキュメントでのロケールと、ロケールを含むデータベース作成時のコマンドオプションの頁。

動作確認
下は簡単な例で、変数に℃という非アスキー文字を入れてメッセージ欄に出力するストアド関数。問題の起きるデータベースでも、関数の定義自体は普通にできます(だから怖い)。ところがSELECT文で実行した途端、PostgreSQLサーバが落ちます。
CREATE OR REPLACE FUNCTION test.input_wide_character()
RETURNS void LANGUAGE plr IMMUTABLE AS
$$
dummy = '℃'
pg.thrownotice(dummy)
$$;

LC_CTYPECに設定したデータベースなら問題なく実行でき、今までの苦労が嘘のよう。

というわけで、晴れて自由に日本語入りのPL/Rストアドを作れるようになったので、フォントを自由に設定できるRのパッケージ
showtextと、フリーフォントの「花園明朝」を使ってグラフを出力してみました。↓ がストアド関数の定義文で、最後に実行時のSELECT文があります。
plr_test_showtext.sqlSelectRawtextBitbucket
CREATE OR REPLACE FUNCTION test.plot_japanese()
RETURNS void LANGUAGE plr IMMUTABLE AS
$$
library(showtext)
font.paths('R:/') # システムフォルダ以外のフォントを使う
font.add('hana', 'HanaMinA.ttf')
lab = paste(collapse='\n', c(
    '好きな日本語書体で',
    'PostgreSQLとPL/Rから',
    'グラフに書き込み',
    '',
    '(フォント:花園明朝)'))

pdf('R:/japanese_from_plr.pdf')
par(lheight=1.6)
plot(type='n', x=1)

showtext.begin()
text(cex=3,
    family='hana',
    label=lab,
    x=1, y=1)
showtext.end()

graphics.off()
$$;

-- Execute
SELECT test.plot_japanese();

事前にRinstall.packages('showtext')を実行してパッケージを入れておきます。
詳細は前ブログの記事を参照。上のストアドでは、使うフォントをR:/に置き、同じ場所にPDFでグラフ出力する設定です。R単体と違ってPostgreSQL上から実行するので、PostgreSQLのユーザがR:/を読み取り・書き込みできるよう、事前に権限を与えておきます。

関数の戻り値がvoidなので実行しても ↓ 何も表示されませんが、指定した場所にPDFが出力されます(二つ目の画像。
実物はこちら)。