Christopher Jones wrote: > Lukas Kahwe Smith wrote: >> >> On 07.10.2009, at 08:09, Matteo Beccati wrote: >> >>> Christopher Jones ha scritto: >>>> >>>> Could you use the new PG specific attribute to enable them >>>> but make them output/handled by the existing error/exception >>>> interface? >>> >>> That's what I originally thought. But there can be multiple notices >>> triggered by a single query and they shouldn't make the query fail (i.e. >>> throwing an exception would be awkward for a successful query). >> >> >> MySQL has similar notices. Like when stuff gets truncated etc. >> I also think that using the current "error modes" is probably not >> ideal. Or rather these arent exception worthy, and they should >> obviously not return false either. > > Is there a common interface that would suit both MySQL & Postgres usage?
>From the user perspective I'd say yes. We can surely make generic attributes and methods to deal with warnings/notices/dbms_output. >From what I could see, things get a bit more complicate on the code side: PgSQL: 1. Set a notice processor callback 2. Clear the notice buffer before a query 3. Asynchronously buffer notices inside the callback 4. Set a no-op processor callback MySQL: 1. Call mysql_warning_count() after a succesful query 2. if the result is non-zero, execute "SHOW WARNINGS" and fetch the results Oracle: 1. Enable output buffering 2. Fetch the buffer after a successful query 3. Clear the buffer 4. Disable output buffering Adding generic hooks/functions will also require a PDO API version bump. Cheers -- Matteo Beccati -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php