summaryrefslogtreecommitdiffstats
path: root/sinksh
Commit message (Collapse)AuthorAge
* Separate UIDs and Revisions in main databasesRémi Nicole2018-08-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: - Change revision type from `qint64` to `size_t` for LMDB in a couple of places (LMDB supports `unsigned int` or `size_t` which are `long unsigned int` on my machine) - Better support for database flags (duplicate, integer keys, integer values for now but is extensible) - Main databases' keys are now revisions - Some databases switched to integer keys databases: - Main databases - the revision to uid mapping database - the revision to entity type mapping database - Refactor the entity type's `typeDatabases` method (if in the future we need to change the main databases' flags again) - New uid to revision mapping database (`uidsToRevisions`): - Stores all revisions (not uid to latest revision) because we need it for cleaning old revisions - Flags are: duplicates + integer values (so findLatest finds the latest revision for the given uid) ~~Problems to fix before merging:~~ All Fixed! - ~~Sometimes Sink can't read what has just been written to the database (maybe because of transactions race conditions)~~ - ~~Most of the times, this results in Sink not able to find the uid for a given revision by reading the `revisions` database~~ - ~~`pipelinetest`'s `testModifyWithConflict` fails because the local changes are overridden~~ ~~The first problem prevents me from running benchmarks~~ Reviewers: cmollekopf Tags: #sink Differential Revision: https://phabricator.kde.org/D14974
* Removed the use of C99 extensionsChristian Mollekopf2018-08-03
|
* Improve documentation of SinkSHRémi Nicole2018-08-03
| | | | | | | | | | | | | | | | | | | | | Summary: - Add support for positional arguments, options, flags in the syntax tree - Add automatic generation of usage string TODO: - ~~Better document the `--reduce` option in the `list` command~~ - Get the parent command for sub-commands so we could show help for `trace on` and not just `on` - Pass the syntax to the implementation of the command so commands can easily show help on wrong usage. Also, SyntaxTree could do automatic input validation in the future, this could also help. - Even with the new documentation, some command could still be confusing. Should we add some usage examples? Reviewers: cmollekopf Reviewed By: cmollekopf Tags: #sink Differential Revision: https://phabricator.kde.org/D14547
* Email debug serializerChristian Mollekopf2018-08-02
|
* Use Key API in SinkSHRémi Nicole2018-07-27
| | | | | | | | | | | | | | | | | | Summary: Depends on D14289 - Fixes the `sinksh inspect …` command - Introduces `isValid`, `isValidInternal` and `isValidDisplay` static functions in Key, Identifier and Revision I still have to do a more extensive search for induced bugs in other commands Reviewers: cmollekopf Reviewed By: cmollekopf Tags: #sink Differential Revision: https://phabricator.kde.org/D14404
* New Key API in storage layerRémi Nicole2018-07-27
| | | | | | | | | | | | | | | | | Summary: - Use object oriented paradigm for Keys / Identifiers /Revisions - "Compress" keys by using byte representation of Uuids - Still some cleaning left to do - Also run some benchmarks - I'm questioning whether files other than entitystore (tests excluded) are allowed to access this API Reviewers: cmollekopf Reviewed By: cmollekopf Tags: #sink Differential Revision: https://phabricator.kde.org/D13735
* All xapian stuff in a central placeChristian Mollekopf2018-07-27
|
* Also serialize single contactsChristian Mollekopf2018-07-24
|
* Use the qdebug serializer to print contactsChristian Mollekopf2018-07-24
|
* Print contactsChristian Mollekopf2018-07-24
|
* A wrapper for linenoiseChristian Mollekopf2018-05-27
| | | | | Because global variables in header files don't work if included from multiple places.
* Fixed linenoise warningsChristian Mollekopf2018-05-24
|
* linenoise: Use inline instead of staticChristian Mollekopf2018-05-23
|
* Replaced readline with cpp-linenoiseChristian Mollekopf2018-05-23
| | | | | | | | | ... a single header readline replacement that works on all linux, osx and windows (or so they claim). Besides cleaning up the code considerably, it should help us build sinksh on windows where readline is not really (there are some ancient broken readline ports) available. cpp-readline comes from here: https://github.com/yhirose/cpp-linenoise
* Print the full property if we print individual properties.Christian Mollekopf2018-05-17
|
* We need QtGlobal, otherwise we also don't have the define.Christian Mollekopf2018-04-20
|
* Windows compatChristian Mollekopf2018-04-19
|
* On windows we only have readline 5.0 availableChristian Mollekopf2018-04-19
|
* Pick up the right includes.Christian Mollekopf2018-03-18
|
* Avoid a completely outdated readline, such as on osxChristian Mollekopf2018-03-18
|
* Use parseUid in sinksh removeChristian Mollekopf2018-03-17
|
* Print the process environment as well so we can see PATHChristian Mollekopf2018-03-17
|
* Try to start and connect to a resource.Christian Mollekopf2018-03-17
|
* Fixed unused argumentChristian Mollekopf2018-02-22
|
* Support reductions in the list commandChristian Mollekopf2018-02-21
|
* Try to load a resource as selftestChristian Mollekopf2018-02-19
|
* Print the resource lookup directories in sinksh infoChristian Mollekopf2018-02-19
|
* Fixed crashes due to concurrently running queries.Christian Mollekopf2018-02-15
| | | | | | | | | | | | | | | | | | | | | | | | A single QueryRunner should never have multiple workers running at the same time. We did not properly enforce this in case of incremental updates coming in. The only way I managed to reproduce the crash: * Open a large folder with lots of unread mail in kube * Select a mail in the maillist and hold the down button * This will: * Repeatedly call fetch more * Trigger lot's of mark as read modifications that result in notifications. * Eventually it crashes somewhere in EntityStore, likely because of concurrent access of the filter structure which is shared through the state. We now ensure in the single threaded portion of the code that we only ever run one worker at a time. If we did receive an update during, we remember that change and fetch more once we're done. To be able to call fetch again that portion was also factored out into a separate function.
* sinksh list: limit and sort supportChristian Mollekopf2018-02-13
|
* A sinksh module geared towards self-testing and stress testing.Christian Mollekopf2018-02-13
|
* Fulltext filter for sinkshChristian Mollekopf2018-02-13
|
* Report fulltext index sizeChristian Mollekopf2018-02-13
|
* Added some fulltext index inspectionChristian Mollekopf2018-02-13
|
* Removed all traces of BLOB propertiesChristian Mollekopf2018-02-06
|
* Fixed buildChristian Mollekopf2018-01-31
|
* Limit number of characters we printChristian Mollekopf2018-01-30
|
* Improved sinksh stat outputChristian Mollekopf2018-01-30
|
* sinksh improvementsChristian Mollekopf2018-01-30
|
* Parse uidsChristian Mollekopf2018-01-30
|
* Inspect outputChristian Mollekopf2018-01-30
|
* More details in sinksh stat outputChristian Mollekopf2018-01-30
|
* Support UUID's without curly bracesChristian Mollekopf2018-01-29
|
* We don't normally have to see the capabilitiesChristian Mollekopf2018-01-26
|
* Linebreak after each resourceChristian Mollekopf2018-01-26
|
* inspect outputChristian Mollekopf2018-01-25
|
* Get blob size as part of statChristian Mollekopf2018-01-25
|
* Share the filter syntax for count and listChristian Mollekopf2018-01-25
|
* Doesn't add anything over listChristian Mollekopf2018-01-25
|
* Dump key and value sizes on inspectChristian Mollekopf2017-11-17
|
* LivequeryChristian Mollekopf2017-11-03
|