Johannes Meyer
8e5380220c
SimpleQuery: Cache count query result and use it in `hasResult()`
...
Does not affect views which do not run a count query. (e.g. dashlets)
Though, this is a quick win for all other views with which the user
interacts directly and gets the desired result quicker than before.
refs #3905
refs #3836
2019-10-11 10:27:43 +02:00
Eric Lippmann
666bdfb4c4
Revert "Fix double query execution"
...
This reverts PR 6ea012af7e
, reversing
changes made to be5b9f870b
.
The reverted commit fixed a double query execution bug by only executing
the query once in either SimpleQuery::hasResult() or upon iteration.
But the fix (b20291a60
) introduced two problems:
* Default sort rules no longer work
* Show more links missing
We work with DataView objects in our controllers and views. When
iterating over a DataView, it applies its default sort rules and then
returns the underlying query, see DataView::getIterator().
DataView::hasResult() on the other hand does not apply the default sort
rules. So, if hasResult() is called first, the default sort rules are no
longer applied because the query will be executed only once.
The fix would be as easy as to apply sorting in DataView::hasResult() as
well.
But now the show more part kicks in. We know whether there are more
results because we execute queries with $limit + 1. This is enabled via
SimpleQuery::peekAhead(). Unfortunately, we call
SimpleQuery::peekAhead() ALWAYS after SimpleQuery::hasResult(). And
that's why the show more links are missing because the query is executed
only once with the "wrong" limit.
For now, we just revert the commit in question and postpone a proper fix
for the double execution.
2019-08-07 13:29:57 +02:00
Eric Lippmann
b20291a606
Fix double query execution
...
Our monitoring list views call SimpleQuery::hasResult() first in
order to determine whether there are results to display. This calls
fetchRow() which executes the underlying query the first time. If there
are resulsts, the query is iterated which executes the query again.
With this patch, SimpleQuery::hasResult() makes use of the inner
iterator instead of calling fetchRow(). The query is now executed only
once.
2019-06-27 15:11:45 +02:00
Johannes Meyer
032ca7ae50
SimpleQuery: Fail in case of missing order columns
...
refs #3414
2019-04-16 12:01:49 +02:00
Johannes Meyer
e22d7daab6
SimpleQuery: Don't fail to order results based on sequenced column arrays
...
refs #3414
2019-04-16 12:00:55 +02:00
Johannes Meyer
181e2ef05c
Swag: Fix swag (aka a whole bunch of code style issues..)
2017-01-27 14:48:59 +01:00
Alexander A. Klimov
474803fee4
Change all license headers to only reflect a file's year of creation
...
refs #11000
2016-02-08 15:41:00 +01:00
Eric Lippmann
5008537683
lib: Fix PHPDoc of SimpleQuery::getOrder()
2015-09-27 12:57:47 +02:00
Eric Lippmann
78989c0aad
lib: Add SimpleQuery::clearOrder()
2015-09-27 12:56:48 +02:00
Johannes Meyer
7662545c2a
SimpleQuery: Provide a getter for the current iterator position
...
refs #8615
2015-08-06 09:39:23 +02:00
Johannes Meyer
9a0e47a3e1
SimpleQuery: Add method hasResult()
...
refs #9632
2015-08-03 14:49:33 +02:00
Johannes Meyer
dbc2f98053
SimpleQuery: Initialize self::$iteratorPosition as late as possible
...
refs #9632
2015-08-03 14:09:55 +02:00
Johannes Meyer
99c69cc461
SimpleQuery: Add support for peek aheads
...
refs #9661
2015-07-31 13:51:39 +02:00
Eric Lippmann
9060e8a034
lib: Only call Icinga::app()->getRequest() for getting the request outside of a controller
...
Saves a call to getFrontController().
refs #9660
2015-07-30 14:02:44 +02:00
Johannes Meyer
cfd43f251e
Revert "Sortable: Allow to check for a particular sort rule"
...
This reverts commit ae21baa41e
.
2015-06-26 15:13:46 +02:00
Johannes Meyer
ae21baa41e
Sortable: Allow to check for a particular sort rule
2015-06-26 14:54:15 +02:00
Johannes Meyer
56c506c8af
SimpleQuery: Do not report to have a limit if there is none
2015-06-26 14:21:09 +02:00
Johannes Meyer
9595809dfa
SimpleQuery: Deep clone the filter when cloning the query
2015-06-24 14:33:11 +02:00
Johannes Meyer
28a28a89d3
Merge branch 'master' into feature/user-and-group-management-8826
...
Conflicts:
library/Icinga/Data/SimpleQuery.php
2015-06-02 14:54:13 +02:00
Johannes Meyer
06fb6ff6fc
SimpleQuery: Re-add method paginate but flag it as deprecated
2015-06-02 14:47:29 +02:00
Johannes Meyer
f305a334d5
DbConnection: Drop param $columnIndex in fetchColumn(), it's unused
2015-05-19 09:48:20 +02:00
Johannes Meyer
cf989a0f7f
SimpleQuery: Implement interface Iterator to benchmark result iteration
2015-05-19 09:41:55 +02:00
Johannes Meyer
a1276fd709
Benchmark all queries by default, not only db queries
2015-05-19 09:41:18 +02:00
Johannes Meyer
0e0341f78a
It's the connection which provides a cursor, not the query
2015-05-18 16:01:58 +02:00
Johannes Meyer
742dfcaf41
Revert "Fetchable: Add method fetch() which returns an iterator"
...
This reverts commit 7a6837de0e
.
2015-05-18 15:17:22 +02:00
Johannes Meyer
7a6837de0e
Fetchable: Add method fetch() which returns an iterator
2015-05-18 13:59:16 +02:00
Johannes Meyer
524c449649
Merge branch 'master' into feature/user-and-group-management-8826
2015-05-18 11:28:07 +02:00
Johannes Meyer
130fea3146
Revert "Merge Queryable into QueryInterface"
...
This reverts commit ca5ef2da2b
.
A perfect example of a change as a result of being mentally deranged.
2015-05-18 11:25:02 +02:00
Johannes Meyer
fbf0ad4339
Drop interface Browsable
...
We're not required to handle objects of Zend_Paginator in any way, so
creating such as part of a query is not necessary since QueryAdapter
accepts any instance of QueryInterface. (gets enforced in the near future)
refs #8339
2015-05-15 14:37:41 +02:00
Johannes Meyer
ed5f646b6f
SimpleQuery: Implement interface IteratorAggregate
...
I'd like to foreach such.
2015-05-15 14:37:41 +02:00
Johannes Meyer
16a7b010bc
SimpleQuery: Ignore limit and offset when counting
2015-05-06 10:41:39 +02:00
Johannes Meyer
bd136d39f4
SimpleQuery: Make compare() alias aware
...
refs #8826
refs #7693
2015-05-05 07:31:50 +02:00
Johannes Meyer
d71df6a9b8
Revert "SimpleQuery: Make compare() alias aware"
...
This reverts commit 6612e4c1ae
.
2015-05-05 07:30:42 +02:00
Johannes Meyer
6612e4c1ae
SimpleQuery: Make compare() alias aware
...
refs #8826
refs #7693
2015-05-04 11:34:39 +02:00
Johannes Meyer
e7789ed640
SimpleQuery: Rename unused property `table' to `target'
...
`target' is already in use, but was not declared. `table' was declared but not
used anywhere. So `table' is now `target'.
2015-05-04 11:12:43 +02:00
Johannes Meyer
ca5ef2da2b
Merge Queryable into QueryInterface
...
A *Query*Interface describes an object as being queryable, now.
refs #8826
2015-05-04 11:07:50 +02:00
Alexander Klimov
967a2e82dc
Use (only) "@return $this" in fluent interfaces' documentation
2015-04-07 14:24:11 +02:00
Eric Lippmann
949438d753
lib: Add SimpleQuery::splitOrder() ...
...
... for supporting specifying the sort direction next to the column, e.g.
'service_display_name ASC'
refs #8716
2015-03-13 17:09:32 +01:00
Eric Lippmann
6bae2e0a53
Note that our license is GPL v2 or any later version in our license header instead of pointing to the license's URL
2015-02-04 10:52:27 +01:00
Eric Lippmann
5b4fab0750
Add license header
...
This time without syntax errors hopefully :)
2015-02-03 16:27:59 +01:00
Eric Lippmann
5fa2e3cfdc
Revert "Add license header"
...
This reverts commit 338d067aba
.
2015-02-03 16:16:26 +01:00
Eric Lippmann
338d067aba
Add license header
...
fixes #7788
2015-02-03 15:51:04 +01:00
Eric Lippmann
52c40bdc5b
lib/SimpleQuery: Increase default limit to 25
...
Please follow the referenced issues.
fixes #8337
refs #8339
2015-02-02 14:16:27 +01:00
Thomas Gelf
40c4562fe4
Data\SimpleQuery: don't fail on missing columns...
...
...for now
2014-11-16 18:24:16 +01:00
Alexander Klimov
45638b218c
Throw IcingaException rather than Exception
...
fixes #7014
2014-08-27 16:03:15 +02:00
Johannes Meyer
3105c2059e
Remove license headers from all files
...
refs #6309
2014-07-15 13:43:52 +02:00
Thomas Gelf
7cd696b31b
Data/queries: adjust to fit new filters
...
Slight changes to get our queries working with new filter implementation.
2014-06-17 12:34:02 +00:00
Thomas Gelf
31047e8082
Data\SimpleQuery: concrete implementation
...
SimpleQuery is no longer abstract, implements the Filterable interface
and should now be usable as a basic Query implemenation as is.
2014-06-06 06:12:17 +00:00
Thomas Gelf
d44a87717d
Data\SimpleQuery: implement column handling
...
We want SimpleQuery to be able to run standalone
2014-06-06 05:49:39 +00:00
Thomas Gelf
4b8e09b12a
Data\SimpleQuery: get front controller without ZF
2014-06-06 05:48:29 +00:00