Moje další zkoumání problému odhalilo, že problém souvisí s čistým Postgres SQL, vyvinul jsem čistou verzi plpgsql, která je portem výše uvedeného kódu jedna ku jedné. Přepracovaná otázka pro čistý plpgsql je zde:Proč tento kód selže v PostgreSQL a jak to opravit (obcházet)? Je to chyba enginu Postgres SQL? .
Takže - nejde o problém související s Java/JDBC.
Dále se mi podařilo zjednodušit testovací kód - nyní používá jednu tabulku. Zjednodušený problém byl zveřejněn na mailing listu pgsql-bugs:http:// archives.postgresql.org/pgsql-bugs/2010-01/msg00182.php . Je potvrzeno, že se vyskytuje na jiných strojích (nejen na mém).
Zde je řešení:změňte řazení databáze z polštiny na standardní 'C'. S řazením 'C' nedochází k žádné chybě. Ale bez polského řazení jsou polská slova řazena nesprávně (s ohledem na polské národní znaky), takže problém by měl být opraven v samotném Postgresu.