20 septiembre 2010

PostgreSQL 9.0 lanzado

Ya se ha lanzado la versión estable 9.0 del sistema de gestión de bases de datos surgido a partir de Ingress en Berkeley. Aquí está la nota de prensa.
Me encanta, por varias razones. Primero porque es libre, de la misma manera que Debian me atrapó en su momento, pero no sólo eso: toda la comunidad que lleva detrás desde hace más de 15 años (y las empresas interesadas en ella) intentan conseguir el mejor producto posible. Y a ello van, además, cumpliendo los estándares. Como alguno se despiste, acabará siendo el mejor de verdad. Es una pena no tener tiempo para hacer pruebas comparativas, con el 11g mismo. Espero poder ver alguna pronto.

Sobre estándares y tal (menudo dolor de cabeza con las batallitas entre empresas), recuerdo una petición que hicieron a mis amigos los de M$ para su Sybase hinchado hace un tiempo. Algo muy sencillo de implementar, realmente. Permitir, como hace la competencia, "create or replace view". La respuesta era algo así como que no lo veían necesario. Tócate los huevos. Porque tú no tendrás que crear y modificar vistas. Hay más ejemplos, pero como MySQL también tiene sus miserias hasta la versión 5.0.12 (si mal no recuerdo), lo dejaremos estar. Algo de sus miserias: interpretaron a su libre albedrío cómo debían ser los join múltiples, vamos, que el "on tal" no se aplicaba a la tabla que uno podía esperar. Los que os manejéis con el SQL entenderéis lo divertido que llegaba a ser. Pero vamos, lo de los insert limitados de M$ en el 2005 y el finiquitado tipo text en favor del original (por llamarlo de alguna manera) varchar(max) es la bomba. De Oracle no me voy a quejar. Aparte del varchar2 (que ya podían haber dejado el antiguo) no me viene a la cabeza nada destacable del estilo. Únicamente que necesita a alguien sólo para administrar.

Hace ya tiempo que tuve que crear una aplicación sobre PostgreSQL sin haberlo tocado nunca, y, siendo comparable a Oracle, es muchísimo más sencillo de manejar y más flexible. Sólo con la docena de lenguajes que soporta para procedimientos, ya hay poco que discutir sobre ese punto, y además, el PL/pgSQL es compatible con PL/SQL. Y lo hicieron así para facilitar el cambio. No es que esté muy de acuerdo con los procedimientos en base de datos, pero para quien guste, es una ventaja. No se puede decir mucho de la documentación, porque otros también la tienen bestial; simplemente es excelente. Pero es que en aquel entonces no tuve ni un problema. Bueno, sí, hubo algo de duda con los tipos binarios, porque éstos sí son estándar y no los conocía, y tiene una cantidad bestial de tipos, así que hubo que tirar de manual. Espero dentro de poco poder meterle mano de nuevo.

Sobre la versión, hay grandes mejoras en la replicación del servidor y en el cumplimiento de SQL:2008. Puede verse todo en su web o en su wiki, aunque está mayormente en inglés.