Same, I am disappointed to see this committed still after the concerns
raised here.

- Jon

On Sat, Jun 12, 2010 at 6:24 AM, Pierre Joye <pierre....@gmail.com> wrote:

> hi Ilia,
>
> So you basically say that the worries and wishes raised here are
> simply irrelevant and at the end of the day you decide what PDO can or
> cannot be?
>
> I'm very disappointed by these two commits. I don't think it is the
> way we should develop PDO and it is clear that I'm not the only one to
> think that. As it is trunk, I won't battle too much to revert it but
> be sure that is not something I will let in for any of the upcoming
> releases as it is clearly bad design.
>
> Cheers,
> --
> Pierre
>
> On Thu, Jun 10, 2010 at 2:12 PM, Ilia Alshanetsky <i...@prohost.org>
> wrote:
> > I've added the transaction code as a generic method inTransaction(), by
> > default it'll just use in_txn internal parameter, but allows the driver
> to
> > extend this (as was done in PostgreSQL) and provide a detailed status
> code.
> >
> > On Wed, May 26, 2010 at 1:11 PM, Denis Gasparin
> > <denis.gaspa...@edistar.com>wrote:
> >
> >>
> >> I attached to this mail a new version of the patch both in unified and
> >> single file format.
> >>
> >> I attached the unit tests for all the new methods too.
> >> They are three files: one for pgsqlIsInTransaction(), one for
> >> pgsqlCopyFrom*  methods and one for pgsqlCopyTo* methods.
> >>
> >> I did a typo writing the documentation in my first mail. The typo is
> about
> >> the $fields parameter.
> >> It is actually a string (not an array) with field names separated by
> comma.
> >>
> >> If needed, I can write also documentation in a more suitable format for
> php
> >> web site.
> >>
> >> The updated documentation of the methods follows.
> >>
> >> Any feedback is appreciated.
> >>
> >> Thank you in advance,
> >> Denis
> >>
> >> pgsqlIsInTransaction()
> >>
> >>    It uses the native Postgresql functions to check transaction status.
> >>    It returns one of the following status codes:
> >>        * PDO:GSQL_TRANSACTION_IDLE: connection in idle status
> >>       * PDO:GSQL_TRANSACTION_ACTIVE: connection is executing a command
> >>       * PDO:GSQL_TRANSACTION_INTRANS: connection is idle in a valid
> >> transaction block
> >>       * PDO:GSQL_TRANSACTION_INERROR: connection is idle, in a failed
> >> transaction block
> >>       * PDO:GSQL_TRANSACTION_UNKNOWN: connection is in a bad status
> >>
> >>
> >>
> >> pgsqlCopyFromArray($table,Array $data,$delimiter,$null, Array $fields)
> >>
> >>    It uses the native Postgresql copy construct to append $data to
> $table.
> >>    It returns boolean.
> >>    Parameters:
> >>       * (mandatory) $table: table to append data to
> >>       * (mandatory) $data: Array of rows with data in table field order
> >>                           (or as specified in the $fields array). Fields
> >> must be separated by $delimiter or by
> >>                           postgresql standard \t)
> >>       * $delimiter: alternative delimiter to use in place of the
> standard
> >> postgres delimiter ("\t")
> >>       * $null: alternative string to use as null value. Default is "\N"
> >>        * $fields: string with table fields that are specified in $data
> >> parameter. Fields are separated by comma
> >>
> >>
> >>
> >> pgsqlCopyFromFile($table,$filename,$delimiter,$null,$fields)
> >>
> >>    It uses the native Postgresql copy construct to append $filename
> >> contents to $table.
> >>    It returns boolean.
> >>    Parameters:
> >>       * (mandatory) $table: table to append data to.
> >>       * (mandatory) $filename: file with contents to append to $table.
> See
> >> Postgresql documentation for the format.
> >>       * $delimiter: alternative delimiter to use in place of the
> standard
> >> postgres delimiter ("\t")
> >>       * $null: alternative string to use as null value. Default is "\N"
> >>        * $fields: string with table fields that are specified in
> $filename
> >> file. Fields are separated by comma
> >>
> >> pgsqlCopyToArray($table,$delimiter,$null,$fields)
> >>
> >>    It uses the native Postgresql copy construct to retrieve $table
> contents
> >> and store them to an array.
> >>    It returns an array of rows or false in case of problems.
> >>    The format of the rows into the array is indicated in the $delimiter,
> >> $null and $fields parameters.
> >>    Parameters:
> >>       * (mandatory) $table: table to retrieve data from.
> >>       * $delimiter: alternative delimiter to use in place of the
> standard
> >> postgres delimiter ("\t")
> >>       * $null: alternative string to use as null value. Default is "\N"
> >>        * $fields: string with table fields to include in the row of the
> >> array. Fields are separated by comma
> >>
> >>
> >> pgsqlCopyToFile($table,$filename,$delimiter,$null,$fields)
> >>
> >>
> >>    It uses the native Postgresql copy construct to retrieve $table
> contents
> >> and store them into a file.
> >>    It returns boolean.
> >>    The format of the rows stored into the file is indicated in the
> >> $delimiter, $null and $fields parameters.
> >>    Parameters:
> >>       * (mandatory) $table: table to retrieve data from.
> >>       * (mandatory) $filename: file where to store the contents of the
> >> table
> >>       * $delimiter: alternative delimiter to use in place of the
> standard
> >> postgres delimiter ("\t")
> >>       * $null: alternative string to use as null value. Default is "\N"
> >>        * $fields: string with table fields to include in the row of the
> >> array. Fields are separated by comma
> >>
> >>
> >> ----- Messaggio originale -----
> >> > Da: "Ilia Alshanetsky" <i...@prohost.org>
> >> > A: "Denis Gasparin" <denis.gaspa...@edistar.com>
> >> > Cc: internals@lists.php.net
> >> > Inviato: Martedì, 25 maggio 2010 18:40:09
> >> > Oggetto: Re: [PHP-DEV] [PATCH] New PDO methods for PostgreSQL driver
> >>
> >> > Good reason, I'll review the patch in the next day or two.
> >> >
> >> >
> >> > On Mon, May 24, 2010 at 5:55 PM, Denis Gasparin <
> >> > denis.gaspa...@edistar.com > wrote:
> >> >
> >> >
> >> >
> >> > The copy to/from sql statements accept both as main parameter a
> >> > filename or stdout/stdin respectively.
> >> >
> >> > The filename represents a file in the database filesystem (apache/php
> >> > and postgresql must reside on the same machine or share the file via
> >> > shared filesystem). I quote from the postgresql manual:
> >> >
> >> > <<<
> >> > COPY with a file name instructs the PostgreSQL server to directly read
> >> > from or write to a file. The file must be accessible to the server and
> >> > the name must be specified from the viewpoint of the (database)
> >> > server.
> >> > >>>
> >> >
> >> > Because of this "limitation", if you'd like to load a csv file into
> >> > pgsql via copy command, you must before copy into a shared folder and
> >> > the issue the copy from filename command.
> >> > Using the methods added to PDO, you can do it directly from the
> >> > webserver.
> >> >
> >> > About copying to/from stdin and stdout, PostgreSQL enters a particular
> >> > status after a copy stdin/stdout command has been issued via sql.
> >> > These status codes are PGRES_COPY_OUT and PGRES_COPY_IN. When in this
> >> > status, the only way to interact with the database server is via
> >> > PQgetCopyData and PQputCopyData.
> >> >
> >> > There are not PDO methods or functions that implements these functions
> >> > and there is no way to share the connection between PDO driver and old
> >> > pgsql drivers.
> >> >
> >> > These are the relevant PostgreSQL man pages:
> >> >
> >> > http://www.postgresql.org/docs/8.2/interactive/libpq-copy..html
> >> > http://www.postgresql.org/docs/8.2/interactive/sql-copy.html
> >> >
> >> > Denis
> >> >
> >> >
> >> >
> >> >
> >> > > Denis could you elaborate on what makes use of the COPY code via Sql
> >> > > behave differently then a PHP method call?
> >> > >
> >> > > Ilia Alshanetsky
> >> > > CIO/CSO Centah Inc.
> >> > >
> >> > > On 2010-05-24, at 15:45, Denis Gasparin <
> denis.gaspa...@edistar.com
> >> > > >
> >> > > wrote:
> >> > >
> >> > > >
> >> > > > I'll provide the patches in a single file as soon as possible..
> >> > > >
> >> > > > Actually all the methods are wrappers against the native
> >> > > > PostgreSQL commands (connection status, copy to/from).
> >> > > >
> >> > > > I needed to develop them as methods because it is not possible to
> >> > > > get the same results with a sql statement (in particular for
> >> > > > connection status).
> >> > > >
> >> > > > It was not possible also for COPY TO/FROM because of the way
> >> > > > PostgreSQL handle them ( special functions were developed also for
> >> > > > the old pgsql driver).
> >> > > >
> >> > > > We are currently using them in production and we needed them in
> >> > > > order to avoid additional connections to database (one with the
> >> > > > old driver and one with PDO).
> >> > > >
> >> > > > Denis
> >> > > >
> >> > > >
> >> > > > ----- Messaggio originale -----
> >> > > >> Da: "Ilia Alshanetsky" < i...@prohost.org >
> >> > > >> A: "Denis Gasparin" < denis.gaspa...@edistar.com >
> >> > > >> Cc: internals@lists.php.net
> >> > > >> Inviato: Lunedì, 24 maggio 2010 19:54:46
> >> > > >> Oggetto: Re: [PHP-DEV] [PATCH] New PDO methods for PostgreSQL
> >> > > >> driver
> >> > > >
> >> > > >> Denis,
> >> > > >>
> >> > > >>
> >> > > >> Could you merge the patches into a single for easier code review.
> >> > > >> Also, the copy to/from file seems like it would just be a wrapper
> >> > > >> against the native COPY PostgreSQL command, is there really a
> >> > > >> need to provide a method for it?
> >> > > >>
> >> > > >>
> >> > > >> On Mon, May 24, 2010 at 4:57 AM, Denis Gasparin <
> >> > > >> denis.gaspa...@edistar.com > wrote:
> >> > > >>
> >> > > >>
> >> > > >> Hi.
> >> > > >>
> >> > > >> I developed some patches for PDO/Postgresql driver in order to
> >> > > >> add some useful methods that were available in the original pgsql
> >> > > >> driver.
> >> > > >>
> >> > > >> The attached patches apply on 5.3.2 and svn 5.3.x.
> >> > > >> If needed, i have patches also for 5.2.x.
> >> > > >>
> >> > > >> Please comment and tell me improvements or tips.
> >> > > >>
> >> > > >> Thank you in advance,
> >> > > >>
> >> > > >> Denis Gasparin
> >> > > >>
> >> > > >> Documentation of the added methods follows:
> >> > > >>
> >> > > >> pgsqlIsInTransaction()
> >> > > >>
> >> > > >> It uses the native Postgresql functions to check transaction
> >> > > >> status..
> >> > > >> It returns one of the following status codes:
> >> > > >> * PDO::PGSQL_TRANSACTION_IDLE: connection in idle status
> >> > > >> * PDO::PGSQL_TRANSACTION_ACTIVE: connection is executing a
> >> > > >> command * PDO::PGSQL_TRANSACTION_INTRANS: connection is idle in a
> >> > > >> valid transaction block
> >> > > >> * PDO::PGSQL_TRANSACTION_INERROR: connection is idle, in a failed
> >> > > >> transaction block
> >> > > >> * PDO::PGSQL_TRANSACTION_UNKNOWN: connection is in a bad status
> >> > > >>
> >> > > >>
> >> > > >>
> >> > > >> pgsqlCopyFromArray($table,Array $data,$delimiter,$null, Array
> >> > > >> $fields)
> >> > > >>
> >> > > >> It uses the native Postgresql copy construct to append $data to
> >> > > >> $table. It returns boolean.
> >> > > >> Parameters: * (mandatory) $table: table to append data to
> >> > > >> * (mandatory) $data: Array of rows with data in table field order
> >> > > >> (or as specified in the $fields array). Fields must be separated
> >> > > >> by $delimiter or by
> >> > > >> postgresql standard \t)
> >> > > >> * $delimiter: alternative delimiter to use in place of the
> >> > > >> standard postgres delimiter ("\t")
> >> > > >> * $null: alternative string to use as null value. Default is "\N"
> >> > > >> * $fields: array with table fields that are specified in $data
> >> > > >> parameter
> >> > > >>
> >> > > >>
> >> > > >>
> >> > > >> pgsqlCopyFromFile($table,$filename,$delimiter,$null,$fields)
> >> > > >>
> >> > > >> It uses the native Postgresql copy construct to append $filename
> >> > > >> contents to $table.
> >> > > >> It returns boolean.
> >> > > >> Parameters: * (mandatory) $table: table to append data to.
> >> > > >> * (mandatory) $filename: file with contents to append to $table.
> >> > > >> See Postgresql documentation for the format.
> >> > > >> * $delimiter: alternative delimiter to use in place of the
> >> > > >> standard postgres delimiter ("\t")
> >> > > >> * $null: alternative string to use as null value. Default is "\N"
> >> > > >> * $fields: array with table fields that are specified in
> >> > > >> $filename file
> >> > > >>
> >> > > >> pgsqlCopyToArray($table,$delimiter,$null,$fields)
> >> > > >>
> >> > > >> It uses the native Postgresql copy construct to retrieve $table
> >> > > >> contents and store them to an array.
> >> > > >> It returns an array of rows or false in case of problems.
> >> > > >> The format of the rows into the array is indicated in the
> >> > > >> $delimiter, $null and $fields parameters.
> >> > > >> Parameters: * (mandatory) $table: table to retrieve data from..
> >> > > >> * $delimiter: alternative delimiter to use in place of the
> >> > > >> standard postgres delimiter ("\t")
> >> > > >> * $null: alternative string to use as null value. Default is "\N"
> >> > > >> * $fields: array with table fields to include in the row of the
> >> > > >> array.
> >> > > >>
> >> > > >>
> >> > > >> pgsqlCopyToFile($table,$filename,$delimiter,$null,$fields)
> >> > > >>
> >> > > >>
> >> > > >> It uses the native Postgresql copy construct to retrieve $table
> >> > > >> contents and store them into a file.
> >> > > >> It returns boolean.
> >> > > >> The format of the rows stored into the file is indicated in the
> >> > > >> $delimiter, $null and $fields parameters.
> >> > > >> Parameters: * (mandatory) $table: table to retrieve data from..
> >> > > >> * (mandatory) $filename: file where to store the contents of the
> >> > > >> table * $delimiter: alternative delimiter to use in place of the
> >> > > >> standard postgres delimiter ("\t")
> >> > > >> * $null: alternative string to use as null value. Default is "\N"
> >> > > >> * $fields: array with table fields to include in the row of the
> >> > > >> array.
> >> > > >>
> >> > > >> -- PHP Internals - PHP Runtime Development Mailing List
> >> > > >> To unsubscribe, visit: http://www.php.net/unsub.php
> >>
> >
>
>
>
> --
> Pierre
>
> @pierrejoye | http://blog.thepimp.net | http://www.libgd.org
>
> --
> PDO Working Group Mailing List (http://pdo.php.net)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>


-- 
Jonathan H. Wage
http://www.twitter.com/jwage

Reply via email to