Re: [PATCH] New PDO methods for PostgreSQL driver

From: 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
« previous php.internals (#48452) next »