On Sun, Jun 13, 2010 at 3:52 PM, Jared Williams
<jared.willia...@ntlworld.com> wrote:
>
>
>> -----Original Message-----
>> From: Stanley Sufficool [mailto:ssuffic...@gmail.com]
>> Sent: 13 June 2010 20:10
>> To: Ilia Alshanetsky
>> Cc: Pierre Joye; Denis Gasparin; Matteo Beccati;
>> internals@lists.php.net; pdo
>> Subject: Re: [PHP-DEV] Re: [PDO] Re: [PHP-DEV] [PATCH] New
>> PDO methods for PostgreSQL driver
>>
>> On Sat, Jun 12, 2010 at 4:54 AM, Ilia Alshanetsky
>> <i...@prohost.org> wrote:
>> > The concerns you raised about custom methods specific to database
>> > drivers were not reflective of the PDO's intent as was
>> clarified by Wez and myself.
>> >
>> > The code that was introduced was specific to PostgreSQL, the
> common
>> > functionality was introduced in a way that allows each
>> driver to implement.
>>
>>
>> Yet the rest of the copyFrom, copyTo, etc.. could have ben
>> generic as well. I specifically stated that this could be
>> done at the driver level for FreeTDS using the BCP extensions
>> and/or using "BULK INSERT ". Yet now this is a specific
>> pgsql*** interface that cannot be abstracted for other
>> drivers OR implemented at the driver level. Now if I want a
>> MSSQL / Sybase dump/load method, I need to preface it with
>> dblibCopyFrom, dblibCopyTo.
>>
>> IMHO, every function should be a generic named interface to
>> the driver or statement level and then throw a "not
>> implemented" if the driver does not support it. This will
>> allow for abstraction at a higher level and give the driver
>> developers an opportunity to implement it. It will also give
>> PDO users a more structured way to deal with unsupported
>> methods with try/catch.
>>
>> I know I am a noob to the PDO development process, however I
>> have used OO for quite awhile and I have never seen it DB
>> abstractions implemented like this.
>
>
> But a complete nonsense for a PDO driver maintainer.
> If adds one function to a driver, then you have to had add an function
> to all the rest.

The interface would start out as "unsupported" / NULL function pointer
in all other drivers and PDO should throw an unsupported as is does
for all the other non-implemented driver interfaces.

>
> A generic copyFrom or copyTo method should only be added when there is
> enough PDO drivers that behave in exactly the same manner, and to do
> that, you needed specific implementations to test and compare with.
>
> If the dblib methods can't behave the same as the postgres methods,
> then clearly they shouldn't be named the same.

Yes, DBLIB behaves the same as pgsql in that it performs the copy in a
transaction state and also has it's data visible from the server
perspective. So would SQLite 2.x "COPY", IBM "EXPORT", MySQL "SELECT
... INTO OUTFILE", etc...

>
> Jared
>
>
>

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

Reply via email to