Skip to content
This repository has been archived by the owner on Jan 8, 2020. It is now read-only.

Commit

Permalink
Merging #5321 to develop
Browse files Browse the repository at this point in the history
Merge branch 'turrsis-hotfix/db-adapter-setQueryResultSetPrototype' into develop

* turrsis-hotfix/db-adapter-setQueryResultSetPrototype:
  allow use temporary ResultSetPrototype
  • Loading branch information
Ralph Schindler committed Nov 27, 2013
2 parents cc9f6d0 + abe6317 commit b14c2e0
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 3 deletions.
4 changes: 2 additions & 2 deletions library/Zend/Db/Adapter/Adapter.php
Expand Up @@ -163,7 +163,7 @@ public function getCurrentSchema()
* @throws Exception\InvalidArgumentException
* @return Driver\StatementInterface|ResultSet\ResultSet
*/
public function query($sql, $parametersOrQueryMode = self::QUERY_MODE_PREPARE)
public function query($sql, $parametersOrQueryMode = self::QUERY_MODE_PREPARE, ResultSet\ResultSetInterface $resultPrototype = null)
{
if (is_string($parametersOrQueryMode) && in_array($parametersOrQueryMode, array(self::QUERY_MODE_PREPARE, self::QUERY_MODE_EXECUTE))) {
$mode = $parametersOrQueryMode;
Expand All @@ -190,7 +190,7 @@ public function query($sql, $parametersOrQueryMode = self::QUERY_MODE_PREPARE)
}

if ($result instanceof Driver\ResultInterface && $result->isQueryResult()) {
$resultSet = clone $this->queryResultSetPrototype;
$resultSet = clone ($resultPrototype ?: $this->queryResultSetPrototype);
$resultSet->initialize($result);
return $resultSet;
}
Expand Down
7 changes: 7 additions & 0 deletions tests/ZendTest/Db/Adapter/AdapterTest.php
Expand Up @@ -272,6 +272,9 @@ public function testQueryWhenExecutedProducesAResultSetObjectWhenResultIsQuery()

$r = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE);
$this->assertInstanceOf('Zend\Db\ResultSet\ResultSet', $r);

$r = $this->adapter->query($sql, Adapter::QUERY_MODE_EXECUTE, new TemporaryResultSet());
$this->assertInstanceOf('ZendTest\Db\Adapter\TemporaryResultSet', $r);
}

/**
Expand All @@ -298,3 +301,7 @@ public function test__get()
$this->adapter->foo;
}
}

class TemporaryResultSet extends \Zend\Db\ResultSet\ResultSet
{
}
3 changes: 2 additions & 1 deletion tests/ZendTest/Log/TestAsset/MockDbAdapter.php
Expand Up @@ -10,6 +10,7 @@
namespace ZendTest\Log\TestAsset;

use Zend\Db\Adapter\Adapter as DbAdapter;
use Zend\Db\ResultSet\ResultSetInterface;

class MockDbAdapter extends DbAdapter
{
Expand All @@ -29,7 +30,7 @@ public function __construct()
$this->driver = new MockDbDriver;

}
public function query($sql, $parametersOrQueryMode = DbAdapter::QUERY_MODE_PREPARE)
public function query($sql, $parametersOrQueryMode = DbAdapter::QUERY_MODE_PREPARE, ResultSetInterface $resultPrototype = null)
{
$this->calls[__FUNCTION__][] = $sql;
return $this;
Expand Down

0 comments on commit b14c2e0

Please sign in to comment.