summaryrefslogtreecommitdiffstats
path: root/tests/querytest.cpp
Commit message (Collapse)AuthorAge
* Debug messages and a higher limit for queriesChristian Mollekopf2018-07-27
|
* Better querytestChristian Mollekopf2018-07-27
|
* No random timeouts in testsChristian Mollekopf2018-07-25
|
* Deal with modifications to filtered entitiesChristian Mollekopf2018-07-16
|
* A little extra testingChristian Mollekopf2018-07-02
|
* Fixed yet another reduction update codepathChristian Mollekopf2018-07-02
|
* Fixed the lost update scenarioChristian Mollekopf2018-06-25
| | | | | | | If we get a fetchMore right between when the revision was updated and the incrementalQuery actually running, we ended up loosing the update because the result provider ended up with a too recent revision after the additional initial query.
* Implement Overlap queriesRémi Nicole2018-06-19
| | | | | | | | | | | | | | | | | | | | Summary: Notes: - Introduces the concept of queries on multiple properties (which meant changing query's internals a bit) - Dates are stored as well as the "reference" in the index to allow quick filtering without fetching the whole entity - Buckets are weeks starting on Monday (guaranteed by the use of the Julian calendar) - Some size improvements are definitely possible (dates are padded numbers again, not using integer databases, Julian calendar starts at a very old date, etc.) Test Plan: Tested in querytest Reviewers: cmollekopf Reviewed By: cmollekopf Tags: #sink Differential Revision: https://phabricator.kde.org/D13477
* Implement ranged queriesRémi Nicole2018-05-28
| | | | | | | | | | | | | | | Summary: Notes: - For now, only for QDateTime indexes - Invalid QDateTimes are stored in the index (subject to change) - Should be a drop-in replacement from ValueIndexes (except for `In` and `Contains` queries) Reviewers: cmollekopf Tags: #sink Differential Revision: https://phabricator.kde.org/D13105
* Fixed a readEntity call with empty uidChristian Mollekopf2018-05-17
| | | | | | Filtered entites are still passed through as removal, but if there is no other value for the reduction, the reduction result is empty.
* Restrict the query to the relevant resourceChristian Mollekopf2018-05-14
|
* Filter by senderChristian Mollekopf2018-05-07
|
* Avoid missing revision updates while a query is running.Christian Mollekopf2018-04-01
| | | | | Instead we have to remember that something has changed and rerun an incremental query.
* Skip crashing testChristian Mollekopf2018-03-26
|
* Properly deal with filtered entities in reduced queries.Christian Mollekopf2018-02-22
| | | | Filtered entities would still end up in the entities list before.
* Deal with removals in reduced queriesChristian Mollekopf2018-02-22
|
* Xapian based fulltext indexingChristian Mollekopf2018-02-11
| | | | | This cuts into the sync performance by about 40%, but gives us fast fulltext searching for all local content.
* Use read-write locks for finer grained control to sDbi and sEnvironmentsChristian Mollekopf2018-01-03
| | | | | | | | | | There are only a few cases where have to access the list of dbis or environments, so we can normally get away with just read-locking. This seems to fix a segfault that was possibly caused be an environment being reused that has already been freed in another thread. The read-only lock when initially retrieving the environment seems to fix that.
* Avoid messageId related warningsChristian Mollekopf2018-01-03
|
* No parent queryChristian Mollekopf2018-01-02
|
* Fixed removal of entityChristian Mollekopf2017-12-29
|
* Fixed incremental updates in folder queriesChristian Mollekopf2017-12-28
| | | | | | | | | Incremental additions of children in the tree were filtered due to the parent filter. This broke when we started to maintain state, thus causing the filter in datastorequery containing the parent filter to be carried over. Given that the incremental querying of children currently doesn't really add much value (we don't have trees that are large/deep enough), perhaps we're better off using a different approach.
* Fixed incremental queriesChristian Mollekopf2017-06-10
| | | | | | The incremental querying broke as soon as a revision update came in since it would nuke the base-set. This fixes it, but it's definitely not pretty.
* Don't add resources that don't match the query during a livequeryChristian Mollekopf2017-05-12
|
* Made the test a bit conciserChristian Mollekopf2017-05-12
|
* Fixed querytestChristian Mollekopf2017-05-11
|
* Handle filtered thread-leaderChristian Mollekopf2017-03-19
|
* Avoid triggering reinsert if the leader doesn't change.Christian Mollekopf2017-02-13
|
* Ensure we don't accidentally pick up a dataChanaged signal from theChristian Mollekopf2017-02-13
| | | | initial fetch.
* Don't emit superfluous remove signals.Christian Mollekopf2017-02-13
| | | | | We often let removal updates through and expect the model to deal with superfluous updates, this now actually implements that.
* Fixed reduction updates with stateful query.Christian Mollekopf2017-02-13
| | | | | | Some filters need to maintain state between runs in order to be able to emit only what has changed. This now also make reduction work for live queries.
* Fixed query flags.Christian Mollekopf2017-02-13
|
* Use the messageId instead of the uid.Christian Mollekopf2017-02-09
| | | | | The uid is not existing for the mail and the threading requires a messageId.
* Ensure blooming queries filter as they shouldChristian Mollekopf2017-01-31
| | | | After the initial bloom, it should turn into a regular filter.
* Don't turn modifications into creationsChristian Mollekopf2017-01-04
|
* React to removals in reduced live-query.Christian Mollekopf2017-01-03
|
* Wrap references in a Reerence type.Christian Mollekopf2016-12-08
| | | | | | | | This allows us to make sure that references are not taken out of context (the resource). Because we need to use the type-specific accessors more we also ran into a problem that we cannot "downcast" a reference with the change recording still working, for that we have the cast<T>() operator now.
* Hide Query::parentPropertyChristian Mollekopf2016-11-14
|
* Hide the Query::limitChristian Mollekopf2016-11-14
|
* Register query serializerChristian Mollekopf2016-11-07
|
* Query serialization.Christian Mollekopf2016-11-06
|
* Don't expose the live query flag directly.Christian Mollekopf2016-11-04
|
* Refactor how the storage is used.Christian Mollekopf2016-10-21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is the initial refactoring to improve how we deal with the storage. It does a couple of things: * Rename Sink::Storage to Sink::Storage::DataStore to free up the Sink::Storage namespace * Introduce a Sink::ResourceContext to have a single object that can be passed around containing everything that is necessary to operate on a resource. This is a lot better than the multiple separate parameters that we used to pass around all over the place, while still allowing for dependency injection for tests. * Tie storage access together using the new EntityStore that directly works with ApplicationDomainTypes. This gives us a central place where main storage, indexes and buffer adaptors are tied together, which will also give us a place to implement external indexes, such as a fulltextindex using xapian. * Use ApplicationDomainTypes as the default way to pass around entities. Instead of using various ways to pass around entities (buffers, buffer adaptors, ApplicationDomainTypes), only use a single way. The old approach was confusing, and was only done as: * optimization; really shouldn't be necessary and otherwise I'm sure we can find better ways to optimize ApplicationDomainType itself. * a way to account for entities that have multiple buffers, a concept that I no longer deem relevant. While this commit does the bulk of the work to get there, the following commits will refactor more stuff to get things back to normal.
* Ensure subquery results work with live queriesChristian Mollekopf2016-10-11
|
* A better resource filter apiChristian Mollekopf2016-10-05
|
* Specify base set as part of the filter stages in the query.Christian Mollekopf2016-10-05
|
* Resource subqueriesChristian Mollekopf2016-10-04
|
* Support for subqueries.Christian Mollekopf2016-10-04
| | | | | | This allows us to match properties from a subquery. Unfortunately this also means that DataStoreQuery needs access to all type implementations to issue the subquery (for potentially another type).
* Account filter testChristian Mollekopf2016-09-29
|
* Use the Query::filter api.Christian Mollekopf2016-09-27
|