Source for file Pgsql.php
Documentation is available at Pgsql.php
* $Id: Pgsql.php 2113 2007-07-31 05:50:41Z lukenukem $
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
* This software consists of voluntary contributions made by many individuals
* and is licensed under the LGPL. For more information, see
* <http://www.phpdoctrine.com>.
* Doctrine_Connection_Pgsql
* @license http://www.opensource.org/licenses/lgpl-license.php LGPL
* @author Konsta Vesterinen <kvesteri@cc.hut.fi>
* @author Lukas Smith <smith@pooteeweet.org> (PEAR MDB2 library)
* @version $Revision: 2113 $
* @category Object Relational Mapping
* @link www.phpdoctrine.com
* @var string $driverName the name of this connection driver
* @param Doctrine_Manager $manager
* @param PDO $pdo database handle
public function __construct(Doctrine_Manager $manager, $adapter)
// initialize all driver options
'summary_functions' =>
true,
'auto_increment' =>
'emulated',
'result_introspection' =>
true,
'prepared_statements' =>
true,
'identifier_quoting' =>
true,
'pattern_escaping' =>
true,
$this->properties['string_quoting'] =
array('start' =>
"'",
'escape_pattern' =>
'\\');
$this->properties['identifier_quoting'] =
array('start' =>
'"',
parent::__construct($manager, $adapter);
* Set the charset on the current connection
$query =
'SET NAMES '.
$this->dbh->quote($charset);
* some drivers need the boolean values to be converted into integers
* This method takes care of that conversion
foreach ($item as $key =>
$value) {
$item[$key] =
($value) ?
'true' :
'false';
$item =
($item) ?
'true' :
'false';
* Changes a query string for various DBMS specific reasons
* @param string $query query to modify
* @param integer $limit limit the number of rows
* @param integer $offset start reading from given offset
* @param boolean $isManip if the query is a DML query
* @return string modified query
public function modifyLimitQuery($query, $limit =
false, $offset =
false, $isManip =
false)
if (substr($query, -
1) ==
';') {
$query =
substr($query, 0, -
1);
$manip =
preg_replace('/^(DELETE FROM|UPDATE).*$/', '\\1', $query);
$query =
$manip .
' ' .
$from .
' WHERE ctid=(SELECT ctid FROM '
.
$from .
' ' .
$where .
' LIMIT ' .
$limit .
')';
$query .=
' LIMIT ' .
$limit;
$query .=
' OFFSET ' .
$offset;
* return version information about the server
* @param string $native determines if the raw version string should be returned
* @return array|string an array or string with version information
$query =
'SHOW SERVER_VERSION';
$tmp =
explode('.', $serverInfo, 3);
if (empty($tmp[2]) && isset
($tmp[1])
'major' => isset
($tmp[0]) ?
$tmp[0] :
null,
'minor' => isset
($tmp[1]) ?
$tmp[1] :
null,
'patch' => isset
($tmp[2]) ?
$tmp[2] :
null,