From d275bed4e7983328d78719ef5608b1c220d4adfc Mon Sep 17 00:00:00 2001 From: zYne Date: Sun, 10 Jun 2007 19:28:47 +0000 Subject: [PATCH] fixed sequence handling --- lib/Doctrine/Sequence/Db2.php | 12 ++++++++---- lib/Doctrine/Sequence/Firebird.php | 4 ++-- lib/Doctrine/Sequence/Mssql.php | 2 +- lib/Doctrine/Sequence/Mysql.php | 4 ++-- lib/Doctrine/Sequence/Oracle.php | 6 +++--- lib/Doctrine/Sequence/Pgsql.php | 6 +++--- lib/Doctrine/Sequence/Sqlite.php | 4 ++-- 7 files changed, 21 insertions(+), 17 deletions(-) diff --git a/lib/Doctrine/Sequence/Db2.php b/lib/Doctrine/Sequence/Db2.php index d6e51cc47..b4be65755 100644 --- a/lib/Doctrine/Sequence/Db2.php +++ b/lib/Doctrine/Sequence/Db2.php @@ -43,9 +43,11 @@ class Doctrine_Sequence_Db2 extends Doctrine_Sequence */ public function lastSequenceId($sequenceName) { - $this->_connect(); - $sql = 'SELECT PREVVAL FOR '.$this->quoteIdentifier($sequenceName).' AS VAL FROM SYSIBM.SYSDUMMY1'; - $stmt = $this->query($sql); + $sql = 'SELECT PREVVAL FOR ' + . $this->quoteIdentifier($this->conn->formatter->getSequenceName($sequenceName)) + . ' AS VAL FROM SYSIBM.SYSDUMMY1'; + + $stmt = $this->query($sql); $result = $stmt->fetchAll(Zend_Db::FETCH_ASSOC); if ($result) { return $result[0]['VAL']; @@ -66,7 +68,9 @@ class Doctrine_Sequence_Db2 extends Doctrine_Sequence public function nextSequenceId($sequenceName) { $this->_connect(); - $sql = 'SELECT NEXTVAL FOR '.$this->quoteIdentifier($sequenceName).' AS VAL FROM SYSIBM.SYSDUMMY1'; + $sql = 'SELECT NEXTVAL FOR ' + . $this->quoteIdentifier($this->conn->formatter->getSequenceName($sequenceName)) + . ' AS VAL FROM SYSIBM.SYSDUMMY1'; $stmt = $this->query($sql); $result = $stmt->fetchAll(Zend_Db::FETCH_ASSOC); if ($result) { diff --git a/lib/Doctrine/Sequence/Firebird.php b/lib/Doctrine/Sequence/Firebird.php index 416f66d7c..01c6aac85 100644 --- a/lib/Doctrine/Sequence/Firebird.php +++ b/lib/Doctrine/Sequence/Firebird.php @@ -42,7 +42,7 @@ class Doctrine_Sequence_Firebird extends Doctrine_Sequence */ public function nextID($seqName, $onDemand = true) { - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); $query = 'SELECT GEN_ID(' . $sequenceName . ', 1) as the_value FROM RDB$DATABASE'; try { @@ -88,7 +88,7 @@ class Doctrine_Sequence_Firebird extends Doctrine_Sequence */ public function currId($seqName) { - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); $query = 'SELECT GEN_ID(' . $sequenceName . ', 0) as the_value FROM RDB$DATABASE'; diff --git a/lib/Doctrine/Sequence/Mssql.php b/lib/Doctrine/Sequence/Mssql.php index d7de5a7a9..e4057cec8 100644 --- a/lib/Doctrine/Sequence/Mssql.php +++ b/lib/Doctrine/Sequence/Mssql.php @@ -42,7 +42,7 @@ class Doctrine_Sequence_Mssql extends Doctrine_Sequence */ public function nextId($seqName, $ondemand = true) { - $sequenceName = $this->conn->quoteIdentifier($this->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->formatter->getSequenceName($seqName), true); $seqcolName = $this->conn->quoteIdentifier($this->getAttribute(Doctrine::ATTR_SEQCOL_NAME), true); diff --git a/lib/Doctrine/Sequence/Mysql.php b/lib/Doctrine/Sequence/Mysql.php index 91add1db3..17ae816e9 100644 --- a/lib/Doctrine/Sequence/Mysql.php +++ b/lib/Doctrine/Sequence/Mysql.php @@ -42,7 +42,7 @@ class Doctrine_Sequence_Mysql extends Doctrine_Sequence */ public function nextId($seqName, $ondemand = true) { - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); $seqcolName = $this->conn->quoteIdentifier($this->conn->getAttribute(Doctrine::ATTR_SEQCOL_NAME), true); $query = 'INSERT INTO ' . $sequenceName . ' (' . $seqcolName . ') VALUES (NULL)'; @@ -101,7 +101,7 @@ class Doctrine_Sequence_Mysql extends Doctrine_Sequence */ public function currId($seqName) { - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); $seqcolName = $this->conn->quoteIdentifier($this->conn->getAttribute(Doctrine::ATTR_SEQCOL_NAME), true); $query = 'SELECT MAX(' . $seqcolName . ') FROM ' . $sequenceName; diff --git a/lib/Doctrine/Sequence/Oracle.php b/lib/Doctrine/Sequence/Oracle.php index e2b58a749..44a53288f 100644 --- a/lib/Doctrine/Sequence/Oracle.php +++ b/lib/Doctrine/Sequence/Oracle.php @@ -42,7 +42,7 @@ class Doctrine_Sequence_Oracle extends Doctrine_Sequence */ public function nextID($seqName, $onDemand = true) { - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); $query = 'SELECT ' . $sequenceName . '.nextval FROM DUAL'; try { @@ -71,7 +71,7 @@ class Doctrine_Sequence_Oracle extends Doctrine_Sequence public function lastInsertID($table = null, $field = null) { $seqName = $table . (empty($field) ? '' : '_'.$field); - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); return $this->conn->fetchOne('SELECT ' . $sequenceName . '.currval'); } @@ -84,7 +84,7 @@ class Doctrine_Sequence_Oracle extends Doctrine_Sequence */ public function currID($seqName) { - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); $query = 'SELECT (last_number-1) FROM user_sequences'; $query .= ' WHERE sequence_name=' . $this->conn->quote($sequenceName, 'text'); $query .= ' OR sequence_name=' . $this->conn->quote(strtoupper($sequenceName), 'text'); diff --git a/lib/Doctrine/Sequence/Pgsql.php b/lib/Doctrine/Sequence/Pgsql.php index da6069126..56c2a49d3 100644 --- a/lib/Doctrine/Sequence/Pgsql.php +++ b/lib/Doctrine/Sequence/Pgsql.php @@ -42,7 +42,7 @@ class Doctrine_Sequence_Pgsql extends Doctrine_Sequence */ public function nextId($seqName, $onDemand = true) { - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); $query = "SELECT NEXTVAL('" . $sequenceName . "')"; try { @@ -70,7 +70,7 @@ class Doctrine_Sequence_Pgsql extends Doctrine_Sequence public function lastInsertId($table = null, $field = null) { $seqName = $table . (empty($field) ? '' : '_' . $field); - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); return (int) $this->conn->fetchOne("SELECT CURRVAL('" . $sequenceName . "')"); } @@ -83,7 +83,7 @@ class Doctrine_Sequence_Pgsql extends Doctrine_Sequence */ public function currId($seqName) { - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); return (int) $this->conn->fetchOne('SELECT last_value FROM ' . $sequenceName); } } diff --git a/lib/Doctrine/Sequence/Sqlite.php b/lib/Doctrine/Sequence/Sqlite.php index c01b1be75..75fa88008 100644 --- a/lib/Doctrine/Sequence/Sqlite.php +++ b/lib/Doctrine/Sequence/Sqlite.php @@ -42,7 +42,7 @@ class Doctrine_Sequence_Sqlite extends Doctrine_Sequence */ public function nextId($seqName, $onDemand = true) { - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); $seqcolName = $this->conn->quoteIdentifier($this->conn->getAttribute(Doctrine::ATTR_SEQCOL_NAME), true); $query = 'INSERT INTO ' . $sequenceName . ' (' . $seqcolName . ') VALUES (NULL)'; @@ -101,7 +101,7 @@ class Doctrine_Sequence_Sqlite extends Doctrine_Sequence */ public function currId($seqName) { - $sequenceName = $this->conn->quoteIdentifier($this->conn->getSequenceName($seqName), true); + $sequenceName = $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); $seqcolName = $this->conn->quoteIdentifier($this->conn->getAttribute(Doctrine::ATTR_SEQCOL_NAME), true); $query = 'SELECT MAX(' . $seqcolName . ') FROM ' . $sequenceName;