PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Est-ce une erreur du moteur SQL PostgreSQL et comment l'éviter (contournement) ?

Mon enquête plus approfondie sur le problème a révélé que le problème est lié à Postgres SQL pur, j'ai développé une version plpgsql pure qui est un port un à un du code ci-dessus. La question reformulée pour plpgsql pur est ici :Pourquoi ce code échoue dans PostgreSQL et comment le réparer (contournement) ? Est-ce un défaut du moteur SQL de Postgres ? .

Donc - ce n'est pas un problème lié à Java/JDBC.

De plus, j'ai réussi à simplifier le code de test - maintenant il utilise une table. Un problème simplifié a été publié sur la liste de diffusion pgsql-bugs :http:// archives.postgresql.org/pgsql-bugs/2010-01/msg00182.php . Il est confirmé qu'il se produit sur d'autres machines (pas seulement la mienne).

Voici une solution de contournement :changez le classement de la base de données du polonais au standard "C". Avec le classement 'C', il n'y a pas d'erreur. Mais sans collation polonaise, les mots polonais sont triés de manière incorrecte (par rapport aux caractères nationaux polonais), donc le problème devrait être résolu dans Postgres lui-même.