From 9055eb9cb700c08f053b9083712f0e389c1e105d Mon Sep 17 00:00:00 2001 From: Johannes Meyer Date: Fri, 26 Jun 2015 14:24:03 +0200 Subject: [PATCH] RepositoryQuery: Do not sort by converted columns for limited queries A limited query with conversion rules makes it impossible to sort the result. --- library/Icinga/Repository/RepositoryQuery.php | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/library/Icinga/Repository/RepositoryQuery.php b/library/Icinga/Repository/RepositoryQuery.php index cf0cd9fae..79e85ff92 100644 --- a/library/Icinga/Repository/RepositoryQuery.php +++ b/library/Icinga/Repository/RepositoryQuery.php @@ -264,6 +264,16 @@ class RepositoryQuery implements QueryInterface, Iterator foreach ($sortColumns['columns'] as $column) { list($column, $specificDirection) = $this->splitOrder($column); + if ($this->hasLimit() && $this->repository->providesValueConversion($this->target, $column)) { + Logger::debug( + 'Cannot order by column "%s" in repository "%s". The query is' + . ' limited and applies value conversion rules on the column', + $column, + $this->repository->getName() + ); + continue; + } + try { $this->query->order( $this->repository->requireFilterColumn($this->target, $column, $this),