Commit Graph

45 Commits

Author SHA1 Message Date
Thomas Goyne c0350b9001 Rename CollectionChangeIndices to CollectionChangeSet 2016-05-11 16:08:30 -07:00
Thomas Goyne 953e1b15a8 Rename BackgroundCollection to CollectionNotifier 2016-05-11 16:08:30 -07:00
Thomas Goyne 238e9e3b6b Fix tracking of which tables need change info with multiple source notifier versions 2016-05-11 16:08:30 -07:00
Thomas Goyne 155d949793 Only track inserts and deletes for tables being queried directly
# Conflicts:
#	src/collection_notifications.cpp
#	src/collection_notifications.hpp
2016-05-11 16:08:30 -07:00
Thomas Goyne a86265f4dc Move CollectionChangeBuilder to background_collection.hpp 2016-05-11 16:08:30 -07:00
Thomas Goyne bc78c02e9d Fix quadratic runtime of move_last_over() parsing 2016-05-11 16:08:30 -07:00
Thomas Goyne 7a75e2bae2 Use a better data structure for IndexSet
Switch to a chunked vector-of-vectors which makes mid-insertions on large sets
much faster, and cache the begin/end/count for each chunk to make lookups much
more cache-friendly.
2016-05-11 16:08:30 -07:00
Thomas Goyne f051337cd3 Rename erase_and_unshift() to erase_or_unshift() 2016-05-11 16:08:30 -07:00
Thomas Goyne dd336120b2 Fix compilation with GCC 4.9 2016-05-11 16:08:30 -07:00
Thomas Goyne bab5540cf6 Fix incorrect results when the second-to-last row is deleted 2016-05-11 16:08:30 -07:00
Thomas Goyne 20d9da973b Make List and Results notifications more consistent
Deliver the initial results for both of them and include the changeset
in the initial delivery for both, rather than having them behave weirdly
differently.
2016-05-11 16:08:30 -07:00
Thomas Goyne 7a74a22558 Fix tracking of modifications after linkview moves 2016-05-11 16:08:30 -07:00
Thomas Goyne ef632804ef Clean up stale moves for linkviews even without a merge 2016-05-11 16:08:30 -07:00
Thomas Goyne feed7c3479 Update moves when there is another move to exactly the previous move target 2016-05-11 16:08:30 -07:00
Thomas Goyne 0a3158ce74 Fix marking deletions when chaining move_last_over() 2016-05-11 16:08:30 -07:00
Thomas Goyne 1289c4806c Fix handling of move_last_over() on the second-to-last row 2016-05-11 16:08:30 -07:00
Thomas Goyne edc0d1fc4a Improve and expand the changeset calculation tests 2016-05-11 16:08:30 -07:00
Thomas Goyne 0e11a791e9 Improve and expand the IndexSet tests
This gets index_set.cpp back up to 100% line coverage from just the
targeted unit tests.
2016-05-11 16:08:30 -07:00
Thomas Goyne dc7ddfae84 Treat Results from LinkViews as if they were sorted for diff calculations 2016-05-11 16:08:30 -07:00
Thomas Goyne 71911ee221 Add support for wrapping a LinkView in a Results 2016-05-11 16:08:30 -07:00
Thomas Goyne 88a3b6ed00 Speed up the IndexSet combining operations 2016-05-11 16:08:30 -07:00
Thomas Goyne 7f5277a97b Run RealmCoordinator::on_change() on a different thread when using tsan 2016-05-11 16:08:30 -07:00
Thomas Goyne c6def6b814 Don't parse the transaction logs on the background thread if no change info is needed 2016-05-11 16:08:30 -07:00
Thomas Goyne 9503a3fc03 Always send an empty changeset to the first call of a Results notification callback 2016-05-11 16:08:30 -07:00
Thomas Goyne e65ad4d413 Discard moves which are turned into no-ops when merging 2016-05-11 16:08:30 -07:00
Thomas Goyne cfb9f0635c Fix calculation of moves for unsorted queries 2016-05-11 16:08:30 -07:00
Thomas Goyne d22c65f28a Partially split out the code for calculating changesets from the struct for delivering them 2016-05-11 16:08:30 -07:00
Thomas Goyne 424f4e829f Prioritize modified rows when calculating changes for sorted results 2016-05-11 16:08:30 -07:00
Thomas Goyne a428f813d5 Skip calling callbacks if two commits cancel each other out when merged 2016-05-11 16:08:30 -07:00
Thomas Goyne e25e4c2dcd Rework handling of mixed move_last_over() and modifications to actually work 2016-05-11 16:08:30 -07:00
Thomas Goyne d46f2c65ba Refactor the transaction log parsers to eliminate some duplication 2016-05-11 16:08:30 -07:00
Thomas Goyne f4aaa7c9de Add fine-grained notifications for Results 2016-05-11 16:08:30 -07:00
Thomas Goyne 6609bcaed7 Add fine-grained notifications for List 2016-05-11 16:08:30 -07:00
Thomas Goyne 8f7ec85605 Add minimal transaction log parsing tests 2016-05-11 16:08:30 -07:00
Thomas Goyne fafc4232ad Rewrite the code coverage generation
Make lcov/gcovr an optional dependency that's only needed for Coverage
configurations, remove some pointless noisy messages when not generating
coverage, and generally simplify the whole thing.
2016-05-06 15:23:30 -07:00
Thomas Goyne 7ab91ea75e Add cmake target to generate a code coverage report 2016-05-06 12:37:59 -07:00
Ari Lazier c32dff40a2 case insensitive searches 2016-03-21 13:32:03 -07:00
Thomas Goyne d73c7dba88 Merge pull request #42 from realm/tg/async-query
Add support for async queries
2016-03-02 15:13:18 -08:00
Thomas Goyne 086192f8d3 Add minimal Results notification tests 2016-02-26 10:24:46 -08:00
Thomas Goyne 773e7db14d Add a helper class to generate temp paths for tests 2016-02-26 09:47:51 -08:00
Ari Lazier b1fd7abe74 more keyword tests 2016-02-16 12:19:26 -08:00
Ari Lazier c57eb99eb2 test query with not as a property name 2016-02-16 12:10:50 -08:00
Ari Lazier 48510805d7 test contains can be used as a property name in the parser 2016-02-16 11:56:29 -08:00
Thomas Goyne f3397d48c0 Add IndexSet tests
And fix a bug that resulted in ranges not being merged.
2016-01-25 10:36:54 -08:00
Mark Rowe c4191d8af6 Hook the parser tests into the CMake build system. 2016-01-19 10:41:25 -08:00