It's the connection which provides a cursor, not the query
This commit is contained in:
parent
742dfcaf41
commit
0e0341f78a
|
@ -3,6 +3,7 @@
|
|||
|
||||
namespace Icinga\Data\DataArray;
|
||||
|
||||
use ArrayIterator;
|
||||
use Icinga\Data\Selectable;
|
||||
use Icinga\Data\SimpleQuery;
|
||||
|
||||
|
@ -82,6 +83,18 @@ class ArrayDatasource implements Selectable
|
|||
return new SimpleQuery($this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch and return all rows of the given query's result set using an iterator
|
||||
*
|
||||
* @param SimpleQuery $query
|
||||
*
|
||||
* @return ArrayIterator
|
||||
*/
|
||||
public function query(SimpleQuery $query)
|
||||
{
|
||||
return new ArrayIterator($this->fetchAll($query));
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch and return a column of all rows of the result set as an array
|
||||
*
|
||||
|
|
|
@ -4,6 +4,7 @@
|
|||
namespace Icinga\Data\Db;
|
||||
|
||||
use PDO;
|
||||
use Iterator;
|
||||
use Zend_Db;
|
||||
use Icinga\Application\Benchmark;
|
||||
use Icinga\Data\ConfigObject;
|
||||
|
@ -87,6 +88,18 @@ class DbConnection implements Selectable, Extensible, Updatable, Reducible
|
|||
return new DbQuery($this);
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch and return all rows of the given query's result set using an iterator
|
||||
*
|
||||
* @param DbQuery $query
|
||||
*
|
||||
* @return Iterator
|
||||
*/
|
||||
public function query(DbQuery $query)
|
||||
{
|
||||
return $query->getSelectQuery()->query();
|
||||
}
|
||||
|
||||
/**
|
||||
* Getter for database type
|
||||
*
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
namespace Icinga\Data;
|
||||
|
||||
use ArrayIterator;
|
||||
use IteratorAggregate;
|
||||
use Icinga\Data\Filter\Filter;
|
||||
use Icinga\Exception\IcingaException;
|
||||
|
@ -103,11 +102,11 @@ class SimpleQuery implements QueryInterface, Queryable, IteratorAggregate
|
|||
/**
|
||||
* Return a iterable for this query's result
|
||||
*
|
||||
* @return ArrayIterator
|
||||
* @return Iterator
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
return new ArrayIterator($this->fetchAll());
|
||||
return $this->ds->query($this);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
namespace Icinga\Protocol\Ldap;
|
||||
|
||||
use ArrayIterator;
|
||||
use Icinga\Application\Config;
|
||||
use Icinga\Application\Logger;
|
||||
use Icinga\Application\Platform;
|
||||
|
@ -133,6 +134,11 @@ class Connection implements Selectable
|
|||
return new Query($this);
|
||||
}
|
||||
|
||||
public function query(Query $query)
|
||||
{
|
||||
return new ArrayIterator($this->fetchAll($query));
|
||||
}
|
||||
|
||||
public function fetchOne($query, $fields = array())
|
||||
{
|
||||
$row = (array) $this->fetchRow($query, $fields);
|
||||
|
|
|
@ -372,16 +372,6 @@ class RepositoryQuery implements QueryInterface, Iterator
|
|||
return $this->query->getOffset();
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch and return all rows of the result set using an iterator
|
||||
*
|
||||
* @return Iterator
|
||||
*/
|
||||
public function fetch()
|
||||
{
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch and return the first column of this query's first row
|
||||
*
|
||||
|
@ -533,7 +523,7 @@ class RepositoryQuery implements QueryInterface, Iterator
|
|||
$this->order();
|
||||
}
|
||||
|
||||
$iterator = $this->query->fetch();
|
||||
$iterator = $this->repository->getDataSource()->query($this->query);
|
||||
if ($iterator instanceof IteratorAggregate) {
|
||||
$this->iterator = $iterator->getIterator();
|
||||
} else {
|
||||
|
|
|
@ -3,7 +3,6 @@
|
|||
|
||||
namespace Icinga\Module\Monitoring\DataView;
|
||||
|
||||
use ArrayIterator;
|
||||
use IteratorAggregate;
|
||||
use Icinga\Data\QueryInterface;
|
||||
use Icinga\Data\Filter\Filter;
|
||||
|
@ -13,6 +12,7 @@ use Icinga\Data\ConnectionInterface;
|
|||
use Icinga\Exception\QueryException;
|
||||
use Icinga\Web\Request;
|
||||
use Icinga\Web\Url;
|
||||
use Icinga\Module\Monitoring\Backend\Ido\Query\IdoQuery;
|
||||
use Icinga\Module\Monitoring\Backend\MonitoringBackend;
|
||||
|
||||
/**
|
||||
|
@ -23,7 +23,7 @@ abstract class DataView implements QueryInterface, IteratorAggregate
|
|||
/**
|
||||
* The query used to populate the view
|
||||
*
|
||||
* @var QueryInterface
|
||||
* @var IdoQuery
|
||||
*/
|
||||
protected $query;
|
||||
|
||||
|
@ -61,11 +61,11 @@ abstract class DataView implements QueryInterface, IteratorAggregate
|
|||
/**
|
||||
* Return a iterator for all rows of the result set
|
||||
*
|
||||
* @return ArrayIterator
|
||||
* @return IdoQuery
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
return new ArrayIterator($this->fetchAll());
|
||||
return $this->getQuery();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue