The module has many unresolved memory leaks. I've discussed (I sought a version without the problem) the question in a few maillists (for ex. firstname.lastname@example.org) there are a lot of people say there that memory leak is a permanent property of the module.
Also the module has unfinished async mode. You cannot process a few operations in non-blocking mode, for example: connect. It's a pity that such low level driver is in such oppressing status.
Highly unstable. Released far too often for a mature module, and with far too many deliberate and accidental behavior changes. One of the most troublesome modules I have to deal with over time. I've had to patch this module too many dang times. Two thumbs down.
Good database driver, even if I would like automatic handling of binary data, which is a real PITA obliging to explicitly define it. Why cannot they be managed automatically like other drivers do (e.g. MySQL)?
The error str (below) appears to indicate a broken quoter() as when
I manually quote instead of relying on variable binding I have no
such problem. I have two colleagues who have reported the same
difficulty with this version of a module that I have used since
Edmund Mergl first offered it to the Postgres community. :-(
1.21 works and so I reverted back. As I am not the first person to
report a serious bug I am wondering why 1.40 is the most recent
patch level on CPAN (???)
Here is the stderr from apache (I have no root access and cannot
do much more troubleshooting on this box):
DBD::Pg::st execute failed: ERROR: column "log_date" is of type date but expression is of type character varying
HINT: You will need to rewrite or cast the expression.
Note that this review is specific to V1.40. Overall DBD-Pg is pretty good, but V1.40 has some bugs or compatibility problem. I tried to use it for Postgres 8.0.0beta3 and Perl 5.8.6, 'make test' failed with message: DBD-Pg-1.40/blib/arch/auto/DBD/Pg/Pg.so: undefined symbol: PQprepare at /5.8.6/i686-linux/DynaLoader.pm line 230.
However, DBD-Pg-1.22 has no such problem on either Perl 5.6.1 or Perl 5.8.6. So I had to revert back to this older version.
I've been using DBI/DBD::Pg exclusively for years as my Postgres access method for Perl. It works and works well. (Disclaimer: I'm a minor contributor to the module).
A new release of DBD::Pg is out and I'm upgrading my rating from 4 stars to 5. It has a number of bug fixes, performance improvements and feature additions, as well as stronger documentation, and about 100 new tests since the last release, if I recall.