Christopher Jones wrote:
> Matteo Beccati wrote:
>> Here's a proposal: http://www.beccati.com/misc/php/pdo_streams_v4.diff
>>
>> The idea is to add a new #define PDO_DRIVER_API_CHECK which is verified
>> at compile time by the C preprocessor. If its value doesn't match the
>> main PDO_DRIVER_API an #error is triggered, e.g:
>>
>> In file included from /tmp/PDO_PGSQL-1.0.2/pdo_pgsql.c:29:
>> /usr/local/include/php/ext/pdo/php_pdo_driver.h:50:2: error: #error "PDO
>> driver not compatible with the PDO API version in use"
> 
> Hi Matteo,
> 
> I'll just comment on the internal API versioning part - let's get that
> sorted out first.
> 
> To make it easier to write database specific PDO drivers that work
> with a range of versions of the internal PDO API, I think
> PDO_DRIVER_API_CHECK could be changed to be min & max values that the
> driver supports.  The check would be:
> 
> #if !defined(PDO_DRIVER_API_IMPLEMENTED_MIN) || \
>     !defined(PDO_DRIVER_API_IMPLEMENTED_MAX) || \
>     !(PDO_DRIVER_API_IMPLEMENTED_MIN <= PDO_DRIVER_API && \
>       PDO_DRIVER_API <= PDO_DRIVER_API_IMPLEMENTED_MAX)
> #error "PDO driver not compatible with the PDO API version in use"
> #endif
> 
> Adding code documentation to the macros explaining what driver writers
> can & should do would be useful (i.e. please add some).
> 
> I'm not keen on the introduction of php_pdo_version.h.  It seems a
> kludge so that PDO passes its own version check.  It makes PDO itself
> defines the same value in two places.  If you're going to bump
> PDO_DRIVER_API and change the API, thus making all current PDO drivers
> incompatible, you may as well continue making changes.  Perhaps put
> the version check code in a new file that is only included in DB
> driver files, and not in PDO .c files.

Updated patch available at:
http://www.beccati.com/misc/php/pdo_streams_v5.diff with MIN/MAX, a bit
more documentation and replaced php_pdo_version.h with php_pdo_main.h
which defines proper MIN/MAX constant for the extension.

I've also posted to pecl-dev and pdo mailing lists asking for feedback
from the driver mainteiners.


Cheers

-- 
Matteo Beccati

OpenX - http://www.openx.org

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to