Re: [PATCH] New PDO methods for PostgreSQL driver
| From: | Denis Gasparin | Date: | Mon, 24 May 2010 20:39:54 +0000 |
| Subject: | Re: [PATCH] New PDO methods for PostgreSQL driver | ||
| References: | 1 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-48452@lists.php.net to get a copy of this message | ||
I attached the patch as a single file.
There are currently no tests written for the new methods.
I'll provide them if needed to integrate the patch in the pdo_pgsql driver.
Denis
----- Messaggio originale -----
> Da: "Denis Gasparin" <denis.gasparin@edistar.com>
> A: "Ilia Alshanetsky" <ilia@prohost.org>
> Cc: internals@lists.php.net
> Inviato: Lunedì, 24 maggio 2010 21:45:30
> Oggetto: Re: [PHP-DEV] [PATCH] New PDO methods for PostgreSQL driver
> 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" <ilia@prohost.org>
> > A: "Denis Gasparin" <denis.gasparin@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.gasparin@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
>
> -- PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
Attachment: [text/x-patch] pdo_pgsql.patch
Attachment: [text/x-patch] pdo_pgsql.patch