Changeset 4970

Show
Ignore:
Timestamp:
09/18/08 10:31:18 (10 months ago)
Author:
adrive
Message:

Fixed #1466: fixed Oracle's lastInsertId()

Location:
branches/1.0
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • branches/1.0/lib/Doctrine/Connection/UnitOfWork.php

    r4906 r4970  
    591591        if (empty($seq) && count($identifier) == 1 && $identifier[0] == $table->getIdentifier() && 
    592592            $table->getIdentifierType() != Doctrine::IDENTIFIER_NATURAL) { 
    593             if (strtolower($this->conn->getDriverName()) == 'pgsql') { 
     593            if (($driver = strtolower($this->conn->getDriverName())) == 'pgsql') { 
    594594                $seq = $table->getTableName() . '_' . $identifier[0]; 
     595            } elseif ($driver == 'oracle') { 
     596                $seq = $table->getTableName(); 
    595597            } 
    596598 
  • branches/1.0/lib/Doctrine/Sequence/Oracle.php

    r4252 r4970  
    7575        $sequenceName =  $this->conn->quoteIdentifier($this->conn->formatter->getSequenceName($seqName), true); 
    7676 
    77         return $this->conn->fetchOne('SELECT ' . $sequenceName . '.currval'); 
     77        return $this->conn->fetchOne('SELECT ' . $sequenceName . '.currval FROM DUAL'); 
    7878    } 
    7979 
  • branches/1.0/tests/Sequence/OracleTestCase.php

    r3884 r4970  
    5151        $this->sequence->lastInsertId('user'); 
    5252         
    53         $this->assertEqual($this->adapter->pop(), 'SELECT user_seq.currval'); 
     53        $this->assertEqual($this->adapter->pop(), 'SELECT user_seq.currval FROM DUAL'); 
    5454    } 
    5555}