Vor ein paar Tagen wurde eine neue Version des DBI-Treibers für PostgreSQL freigegeben: 2.1.3 ist die aktuelle DBD::Pg-Version auf dem CPAN.
Im Vergleich zur Version sind laut Changelog nur ein paar Kleinigkeiten dazu gekommen. 2.0 kam vor rund zwei Wochen und bringt einige neue Features mit:
- Echte Unterstützung für Arrays in PostgreSQL
- Unterstützung für asynchrone Queries
- Anpassungen an neuere Postgres-Versionen und Unterstützung neuer Features
- Diverse Bugfixes
Insbesondere die Unterstützung für Arrays sowie für asynchrone Queries finde ich sehr interessant.
Mit der Array-Unterstützung ist es nun möglich, beim schreibenden Queries auf ein Array-Feld einfach eine Array-Referenz zu übergeben und direkt an die Datenbank weiterzuleiten ohne dieses manuell in einen String zu wandeln. Umgekehrt erhält man auf Perl-Seite beim Lesen eine Array-Referenz anstatt eines flachen Strings.
Mit asynchronen Queries ist es möglich, weiter Perl-Code auszuführen während ein SQL-Query läuft. Damit kann dann nicht nur parallel weitergerechnet werden, der Query kann zur Laufzeit bei Bedarf auch abgebrochen werden. Das ist natürlich insbesondere bei mehreren Prozessoren oder Kernen interessant: Während der eine Kern die nächsten Daten aus der Datenbank holt, kann der andere die letzten Daten aufbereiten. In der DBD-Pg-Dokumentation sind ein paar praktische Beispiele enthalten.
Wer bisher noch kein PostgreSQL einsetzt sollte es sich mal anschauen. Mit der aktuellen Version 8.3 kamen nochmals sehr viele Features hinzu, PostgreSQL ist standardkonform, sicher, kann weit mehr als das häufig eingesetzte MySQL und ist sehr schnell. Bei einem (einfachen) Performance-Test (siehe Seite 19ff) vor rund einem Jahr war es selbst bei sehr einfachen Queries rund 50% schneller als MySQL. Bei Gelegenheit werde ich mal messen, wie sich DBD::Pg 2 gegenüber 1.49 verhält …
Es gibt auch OODoc von Marc Overmer,
habe ich vor langer Zeit mal ausprobiert, aber da klappte nicht alles, nur weiß ich nicht mehr, wo die Probleme lagen.
Rolf