Mijn verder onderzoek van het probleem onthulde dat het probleem te maken heeft met pure Postgres SQL. Ik heb een pure plpgsql-versie ontwikkeld die een-op-een-poort is van de bovenstaande code. Opnieuw geformuleerde vraag voor pure plpgsql is hier:Waarom faalt deze code in PostgreSQL en hoe repareer je deze (work-around)? Is het een fout in de SQL-engine van Postgres? .
Dus - het is geen Java/JDBC-gerelateerd probleem.
Verder ben ik erin geslaagd om de testcode te vereenvoudigen - nu gebruikt het één tabel. Vereenvoudigd probleem is gepost op pgsql-bugs mailinglijst:http:// archives.postgresql.org/pgsql-bugs/2010-01/msg00182.php . Het is bevestigd dat het voorkomt op andere machines (niet alleen de mijne).
Hier is een tijdelijke oplossing:verander databasesortering van Pools naar standaard 'C'. Met 'C'-sortering is er geen fout. Maar zonder Poolse sortering worden Poolse woorden verkeerd gesorteerd (met betrekking tot Poolse nationale karakters), dus het probleem zou in Postgres zelf moeten worden opgelost.