Aller au contenu

Migration vers 8.4 et supérieures

Paramètres de configuration

Les paramètres de configuration suivants ont été modifiés :

  • max_prepared_transactions : valeur par défaut était de 5 dans les versions précédentes et est maintenant à 0 dans cette version ;
  • log_restartpoints a été supprimé du fichier recovery.conf, utiliser le paramètre log_checkpoints de postgresql.conf à la place.

Tri des résultats

Dans la version 8.4, les opérations suivantes ne produisent plus systématiquement des résultats triés (c’était un effet de bord de l’implémentation) :

  • SELECT DISTINCT ;
  • UNION / INTERSECT / EXCEPT.

Si le résultat des requêtes doit être trié, il FAUT préciser l’ordre ORDER BY explicitement dans la requête.

LIMIT / OFFSET

Les ordres LIMIT et OFFSET n’acceptent plus de valeur négative. Dans les versions précédentes, le comportement était de traiter silencieusement la valeur comme égale à 0.

En 8.3 :

=> SELECT version();
 PostgreSQL 8.3.15 on x86_64-unknown-linux-gnu, compiled by GCC gcc (Debian 4.4.6-8) 4.4.6

=> SELECT * FROM t1 LIMIT -1;
(0 rows)

En 8.4 :

=> SELECT version();
 PostgreSQL 8.4.8 on x86_64-unknown-linux-gnu, compiled by GCC gcc (Debian 4.4.6-8) 4.4.6, 64-bit

=> SELECT * FROM t1 LIMIT -1;
ERROR:  LIMIT must not be negative

LOCK TABLE

L’ordre LOCK TABLE lève désormais une erreur s’il est utilisé à l’extérieur d’une transaction.

=> LOCK TABLE t1 IN EXCLUSIVE MODE ;
ERROR:  LOCK TABLE can only be used in transaction blocks

pg_hba.conf

La méthode d’authentification crypt a été supprimée.