問題をさらに調査したところ、問題は純粋なPostgres SQLに関連していることが明らかになり、上記のコードの1対1のポートである純粋なplpgsqlバージョンを開発しました。純粋なplpgsqlの再質問はここにあります:このコードがPostgreSQLで失敗する理由と、それを修正する方法(回避策)? Postgres SQLエンジンの欠陥ですか? 。
つまり、Java/JDBC関連の問題ではありません。
さらに、テストコードを単純化することができました。現在は1つのテーブルを使用しています。簡略化された問題がpgsql-bugsメーリングリストに投稿されました: http:// archives.postgresql.org/pgsql-bugs/2010-01/msg00182.php 。他のマシン(私のマシンだけでなく)でも発生することが確認されています。
回避策は次のとおりです。データベースの照合をポリッシュから標準の「C」に変更します。 「C」照合ではエラーはありません。ただし、ポーランド語の照合を行わないと、ポーランド語の単語が(ポーランド語の国民文字に関して)正しくソートされないため、Postgres自体で問題を修正する必要があります。