sql >> Database >  >> RDS >> PostgreSQL

Is het een fout van de PostgreSQL SQL-engine en hoe deze te vermijden (omzeiling)?

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.



  1. Oracle leren, boolean instellen op basis van datum

  2. Gebruik SCOPE_IDENTITY() om de laatst ingevoerde identiteitswaarde in hetzelfde bereik te retourneren (SQL-server)

  3. MySQL werkt de hele database bij zonder downtime

  4. Heeft Mysql een equivalent van @@ROWCOUNT zoals in mssql?