Edit report at http://bugs.php.net/bug.php?id=51295&edit=1

 ID:               51295
 Updated by:       fel...@php.net
 Reported by:      magical...@php.net
 Summary:          SQLite3::busyTimeout not existing
-Status:           Open
+Status:           Assigned
 Type:             Feature/Change Request
 Package:          SQLite related
 Operating System: Linux Gentoo 2.6.33
 PHP Version:      5.3SVN-2010-03-14 (SVN)
-Assigned To:      
+Assigned To:      scottmac



Previous Comments:
------------------------------------------------------------------------
[2010-03-14 08:29:39] magical...@php.net

Description:
------------
In SQLite3, method busyTimeout() is missing, and by default there is no
busy 

handler.



In old SQLite extension, a default timeout of 60 seconds was set, and a


busyTimeout() method was available to define the timeout.



I recently started with SQLite3 to have this kind of errors as load was
growing 

on SELECT statement:



Warning: SQLite3Stmt::execute(): Unable to execute statement: database
is locked



Some internet research showed that this could be fixed by setting a
different 

busy timeout, and I noticed PHP wasn't setting any on SQLite3.



While I'm unsure about setting a default busyTimeout on SQLite3 (it
currently 

have none, but PHP_5_3 is still young enough to change this kind of
behaviour) 

it should be at least possible to set one.



Patch to add a SQLite3::busyTimeout() method (same behaviour as old 

SQLite::busyTimeout() method, with the exception this one has a
true/false 

return value, while sqlite3_busy_timeout will always return SQLITE_OK,
it may 

change in the future).



The patch:



https://ookoo.org/svn/snip/php_5_3-sqlite3-busytimeout-method.patch



------------------------------------------------------------------------



-- 
Edit this bug report at http://bugs.php.net/bug.php?id=51295&edit=1

Reply via email to