Re: [PHP-PEAR] possible bug in DB/pgsql.php
| Newsgroups | php.pear |
|---|---|
| Message-ID | <3A917CDE.16354.C624BB9@localhost> |
On 19 Feb 2001, at 13:27, Stig S. Bakken wrote: > [email protected] wrote: > > > > Hmm, maybe I'm straying too far...I'm not too content of my own > > suggestions. Your turn... > > I've implemented your suggestion now and added a transaction test for > pgsql as well. Could you give it a shot and see if it solves your > problem? > Hmm. Sadly, my work took out whole afternoon and I didn't have the time to do a real test of the source, so I just v-grepped it. I'll do a real benchmark ASAP... for the moment, I'm still wondering if it could work without storing somewhere the connection id. If you have more than one connection in a page, how do you recognize when one has an open transaction or not? PS: However, there was an error in the way that PHP handled PGsql's permanent connections that could lead to serious troubles. In Pg main list they said the fix it's in the cvs, otherway this is the relevant part: > > a bunch of scripts that randomly give errors "Warning: <some number> is > > not a valid PostgreSQL link resource in <file>". I have noticed this > > since moving to PHP4, and it appears to only be random (it just started > > happening on a website that previously worked for months without > > problems -- only change to system was increasing kern.maxfiles to 8192). > > i've commited a fix for this to PHP 4 CVS yesterday. > > if you don't want to live on the "bleeding edge" (use PHP > from CVS) just replace the php_pgsql_set_default_link > function in pgsql.c against this one and you're all-set! > > regards, > tc > > static void php_pgsql_set_default_link(int id) > { > PGLS_FETCH(); > > if ((PGG(default_link) != -1) && (PGG(default_link) != id)) { > zend_list_delete(PGG(default_link)); > } > > if (PGG(default_link) != id) { > PGG(default_link) = id; > zend_list_addref(id); > } > } > > > /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ Fabrizio Ermini Alternate E-mail: C.so Umberto, 7 [email protected] loc. Meleto Valdarno Mail on GSM: (keep it short!) 52020 Cavriglia (AR) [email protected]