Min vidare undersökning av problemet visade att problemet är relaterat till ren Postgres SQL, jag utvecklade ren plpgsql-version som är en-till-en-port av koden ovan. Omformulerad fråga för ren plpgsql är här:Varför misslyckas den här koden i PostgreSQL och hur åtgärdar man det (lösning)? Är det Postgres SQL-motorfel? .
Så - det är inte ett Java/JDBC-relaterat problem.
Dessutom har jag lyckats förenkla testkoden - nu använder den en tabell. Förenklat problem publicerades på pgsql-bugs e-postlista:http:// archives.postgresql.org/pgsql-bugs/2010-01/msg00182.php . Det är bekräftat att det förekommer på andra maskiner (inte bara min).
Här är en lösning:ändra databassorteringen från polsk till standard "C". Med 'C'-sortering är det inget fel. Men utan polska sortering sorteras polska ord felaktigt (med hänsyn till polska nationella tecken), så problemet bör åtgärdas i Postgres själv.