Hi Niels, thanks for the debugging output. I think I know what's going on :)
Niels Peuyn wrote:
DEBUG: OpenCA::DBI->getItem: query completed DEBUG: OpenCA::DBI->Entering set_error ... DEBUG: OpenCA::DBI->errno: gettext is defined DEBUG: OpenCA::DBI->errno: new errorcode is 0 DEBUG: OpenCA::DBI->errno: returning local errorcode 20032 DEBUG: OpenCA::DBI->errno: returning local errorcode 20032 DEBUG: OpenCA::DBI->rollback: entering function DEBUG: OpenCA::DBI->errno: returning local errorcode 20032 DEBUG: OpenCA::DBI->DESTROY: automatic commit by destructor DESTROY DEBUG: OpenCA::DBI->commit: entering function DEBUG: OpenCA::DBI->errno: returning local errorcode 20032 DEBUG: OpenCA::DBI->DESTROY: call finish on all statement handles to avoid warnings by DBI
This happened if $sth->state returns true. Usually it is an SQL errorcode which consists of 5 digits. The DBI specification of Perl requires that database drivers (DBD::Pg) return "" if the SQL errorcode is 00000 (which means that there is no error). It looks like the latest DBD::Pg drivers violate this specification.
Another user had the same problem and wants to write a bug report to the PostgreSQL guys which coded the driver. If you go into OpenCA::DBI (src/modules/openca-dbi/DBI.pm) of OpenCA then you can fix the problem by yourself. If there is a check of ->state then there is usually something like "if($rv)" after this call. If you replace ($rv) by ($rv and $rv ne "00000") then the code should work. "00000" is true in Perl. Therefore the DBI specs require "" as the result string.
Greetings Michael -- _______________________________________________________________ Michael Bell Humboldt-Universitaet zu Berlin Tel.: +49 (0)30-2093 2482 ZE Computer- und Medienservice Fax: +49 (0)30-2093 2704 Unter den Linden 6 [EMAIL PROTECTED] D-10099 Berlin _______________________________________________________________
smime.p7s
Description: S/MIME Cryptographic Signature
