Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/matomo-org/matomo.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'core/Tracker/Db/Pdo/Pgsql.php')
-rw-r--r--core/Tracker/Db/Pdo/Pgsql.php176
1 files changed, 86 insertions, 90 deletions
diff --git a/core/Tracker/Db/Pdo/Pgsql.php b/core/Tracker/Db/Pdo/Pgsql.php
index 22a020c359..c03246b348 100644
--- a/core/Tracker/Db/Pdo/Pgsql.php
+++ b/core/Tracker/Db/Pdo/Pgsql.php
@@ -1,10 +1,10 @@
<?php
/**
* Piwik - Open source web analytics
- *
+ *
* @link http://piwik.org
* @license http://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
- *
+ *
* @category Piwik
* @package Piwik
*/
@@ -17,104 +17,100 @@
*/
class Piwik_Tracker_Db_Pdo_Pgsql extends Piwik_Tracker_Db_Pdo_Mysql
{
- /**
- * Builds the DB object
- *
- * @param array $dbInfo
- * @param string $driverName
- */
- public function __construct( $dbInfo, $driverName = 'pgsql')
- {
- parent::__construct( $dbInfo, $driverName );
- }
+ /**
+ * Builds the DB object
+ *
+ * @param array $dbInfo
+ * @param string $driverName
+ */
+ public function __construct($dbInfo, $driverName = 'pgsql')
+ {
+ parent::__construct($dbInfo, $driverName);
+ }
+
+ /**
+ * Connects to the DB
+ *
+ * @throws Exception if there was an error connecting the DB
+ */
+ public function connect()
+ {
+ if (self::$profiling) {
+ $timer = $this->initProfiler();
+ }
+
- /**
- * Connects to the DB
- *
- * @throws Exception if there was an error connecting the DB
- */
- public function connect()
- {
- if(self::$profiling)
- {
- $timer = $this->initProfiler();
- }
+ $this->connection = new PDO($this->dsn, $this->username, $this->password, $config = array());
+ $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
+ // we may want to setAttribute(PDO::ATTR_TIMEOUT ) to a few seconds (default is 60) in case the DB is locked
+ // the piwik.php would stay waiting for the database... bad!
+ // we delete the password from this object "just in case" it could be printed
+ $this->password = '';
-
- $this->connection = new PDO($this->dsn, $this->username, $this->password, $config = array());
- $this->connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
- // we may want to setAttribute(PDO::ATTR_TIMEOUT ) to a few seconds (default is 60) in case the DB is locked
- // the piwik.php would stay waiting for the database... bad!
- // we delete the password from this object "just in case" it could be printed
- $this->password = '';
+ if (!empty($this->charset)) {
+ $sql = "SET NAMES '" . $this->charset . "'";
+ $this->connection->exec($sql);
+ }
- if(!empty($this->charset))
- {
- $sql = "SET NAMES '" . $this->charset . "'";
- $this->connection->exec($sql);
- }
+ if (self::$profiling) {
+ $this->recordQueryProfile('connect', $timer);
+ }
+ }
- if(self::$profiling)
- {
- $this->recordQueryProfile('connect', $timer);
- }
- }
-
- /**
- * Test error number
- *
- * @param Exception $e
- * @param string $errno
- * @return bool
- */
- public function isErrNo($e, $errno)
- {
- // map MySQL driver-specific error codes to PostgreSQL SQLSTATE
- $map = array(
- // MySQL: Unknown database '%s'
- // PostgreSQL: database "%s" does not exist
- '1049' => '08006',
+ /**
+ * Test error number
+ *
+ * @param Exception $e
+ * @param string $errno
+ * @return bool
+ */
+ public function isErrNo($e, $errno)
+ {
+ // map MySQL driver-specific error codes to PostgreSQL SQLSTATE
+ $map = array(
+ // MySQL: Unknown database '%s'
+ // PostgreSQL: database "%s" does not exist
+ '1049' => '08006',
- // MySQL: Table '%s' already exists
- // PostgreSQL: relation "%s" already exists
- '1050' => '42P07',
+ // MySQL: Table '%s' already exists
+ // PostgreSQL: relation "%s" already exists
+ '1050' => '42P07',
- // MySQL: Unknown column '%s' in '%s'
- // PostgreSQL: column "%s" does not exist
- '1054' => '42703',
+ // MySQL: Unknown column '%s' in '%s'
+ // PostgreSQL: column "%s" does not exist
+ '1054' => '42703',
- // MySQL: Duplicate column name '%s'
- // PostgreSQL: column "%s" of relation "%s" already exists
- '1060' => '42701',
+ // MySQL: Duplicate column name '%s'
+ // PostgreSQL: column "%s" of relation "%s" already exists
+ '1060' => '42701',
- // MySQL: Duplicate entry '%s' for key '%s'
- // PostgreSQL: duplicate key violates unique constraint
- '1062' => '23505',
+ // MySQL: Duplicate entry '%s' for key '%s'
+ // PostgreSQL: duplicate key violates unique constraint
+ '1062' => '23505',
- // MySQL: Can't DROP '%s'; check that column/key exists
- // PostgreSQL: index "%s" does not exist
- '1091' => '42704',
+ // MySQL: Can't DROP '%s'; check that column/key exists
+ // PostgreSQL: index "%s" does not exist
+ '1091' => '42704',
- // MySQL: Table '%s.%s' doesn't exist
- // PostgreSQL: relation "%s" does not exist
- '1146' => '42P01',
- );
+ // MySQL: Table '%s.%s' doesn't exist
+ // PostgreSQL: relation "%s" does not exist
+ '1146' => '42P01',
+ );
- if(preg_match('/([0-9]{2}[0-9P][0-9]{2})/', $e->getMessage(), $match))
- {
- return $match[1] == $map[$errno];
- }
- return false;
- }
+ if (preg_match('/([0-9]{2}[0-9P][0-9]{2})/', $e->getMessage(), $match)) {
+ return $match[1] == $map[$errno];
+ }
+ return false;
+ }
- /**
- * Return number of affected rows in last query
- *
- * @param mixed $queryResult Result from query()
- * @return int
- */
- public function rowCount($queryResult)
- {
- return $queryResult->rowCount();
- }
+ /**
+ * Return number of affected rows in last query
+ *
+ * @param mixed $queryResult Result from query()
+ * @return int
+ */
+ public function rowCount($queryResult)
+ {
+ return $queryResult->rowCount();
+ }
}