Cookie Warning

Tuesday, 31 July 2012

PostgreSQL 8.4 & lower()

Postgresql 8.4, a dokładniej jego funkcja lower() ma spore problemy z niektorymi jezykami. Przykładem moze byc hiszpanski, dla ktorego blad przedstawiaja ponizsze wywolania tej samej komendy, ale w 2 roznych wersja PostgreSQL (oraz roznych wersjach Debiana).

Postgres 8.4  (on Debian Lenny):
postgres=# select lower('JORGE PEÑA');
   lower    
------------
 jorge peÑa
(1 row)

Postgres 9.0 (on Debian Squeeze):
postgres=# select lower('JORGE PEÑA');
   lower    
------------
 jorge peña
(1 row)
Bład nie miał wpływu na samo działanie bazy danych -  problemy zaczynaja sie dopiero podczas aktualizacji do wersji >=9.0, gdzie bład jest juz poprawiony. Wtedy, w przypadku posiadania ograniczen typu uniqe index migracja danych zakonczy sie porazka i bedzie wymagala naszej recznej interwencji lub skryptu by usunac ten problem. 

Sam blad nie jest nowoscia, nie mniej niektorzy wciaz moga korzystac z dosyc przestarzałej juz wersji 8.4, gdy stabilne wydanie to w chwili obecnej 9.1.4.