* Merged latest iresearch. Removed creation of build-in analyzers from tests
* Updated tests for new analyzer parameter names
* Merged fix for format from iresearch
* Apply suggestions from code review. Corrected typo in variable name.
Co-Authored-By: Jan <jsteemann@users.noreply.github.com>
* backport changes from IResearch upstream
* fix compilation issues
* backport fix from IResarch upstream
* Fixed analyzer parameter name in tests
* do not persist legacy analyzers into _analyzers table
* fix arangosearch upgrade in cluster
* get rid of Vasiliy's shit
* address review comments
* ensure link is synchronized after creation in upgrade
* fix compilation error
* minor cleanup
* fix tests
* distribute '_analyzers' collection as '_graphs'
* comment out Vasiliy's shit part 2
* Added filtering analyzers before adding them to view link - duplicates are not allowed any more
* Updated test testAddDuplicateAnalyzers - now it tests analyzers with same names but in different databases
* properly handle shorthand of system analyzer
* don't allow accessing local analyzer from within another database
* ensure local analyzer are not acessible from outside
* fix duplicate ids
* move IResearchViewSort into separate unit
* ensure sort is propagated to IResearchLink
* update iresearch and extend some tests
* implement insertion of sorted values, store value comparator in link
* add tests for VPackComparer
* minor cleanup
* fix issue with sort definiton propagation
* propagate error message from index factory
* add integration tests for sorted indexes, single server
* initial implementation of IResearchViewMergeExecutor
* move iresearch::VPackComparer to separate translation unit
* store collection in IndexReadBuffer for IResearchViewMergeExecutor
* set primary sort from optimizer rule
* add some tests for sorted view case
* extend IResearchViewNode tests
* simplify primary sort definition
* pretty print order condition covered by arangosearch in query explanation
* fix compilation with g++-8
* address catch test failures
* fix tests
* adjust arangosearch optimizer rule to optimize sort in case of cluster
* make tests for sorted indexes work in cluster too
* fix tests
* extend js tests for sorted indices
* fix keyword in query explainer
* ensure sort-limit rule works with views
* backport ngram analyzer fix from upstream
* address jslint errors
* modify IResearchViewSort to support boolean direction specification format
* add some tests
* add tests
* add skip functionality
* extend tests
* add more catch tests
* inline some methods
* address jslint errors
* extend catch tests to reproduce the failure
* add some tests for check fullcount
* add more tests
* extend tests
* temporarily comment out broken tests
* extend js tests
* address review comments
* address jslint errors
* update iresearch
* issue 535.1: ensure recovery success if link recovery starts right at the previous marker
* backport: initialize members
* backport: use string_ref instead if string copies
* Added RemoteExecutor skeleton
* Moved RemoteBlock implementations to ExecutionBlockImpl<RemoteExecutor>
* Remove unnecessary include to avoid unused function warnings
* Fixed gcc compile error
* Moved Scatter/Distribute block implementations to their new Executor versions
* Applied clang-format
* Added factory, infos and a skeleton for the unordered view executor
* Removed assert based on wrong assumption
* Added members from IResearchViewBlockBase to IResearchViewExecutor
* Moved more code into the ViewExecutor, hopefully enough to produce a working version now
* Added missing reset code, made produceRow work mostly correct
* Removed superfluous parentheses to get more useful output from Catch
* Ported fix 923b6e81ac723d1fe37f8e7bf1ab81149f3a08ef
Original commit message was:
Fixed a race condition in RemoteBlock which was triggered during
shutdown overtaking getSome.
* Applied review comments
* Inject input row instead of an item block + pos into the expression context, plus fixed some tests
* Adapted test. Search tests are now green.
* Do not ask upstream when already DONE
* Removed `limit` from next()
* Simplified code that could handle producing more than one document
* Minor readability change
* Solved two TODOs noted in the review
* Removed leftover references to DistributeNode members in the DistributeBlock
* Reverted removal of "exhausted"
* WIP: Implemented variant with scorers
* Fixed compile errors of the last commit
* Fixed some asserts and calculations
* Fixed violated assertions
* Moved files from IResearch/ to Aql/
* Replaced recursive call with a loop
* Worked on a few TODOs
* Removed IResearchViewBlock
* Set input registers correctly
* Eliminated dependency to the Node in the Executor
* Don't misuse the volatility variables for initialization
* Extended a TODO note
* Removed obsolete includes
* Removed an obsolete include from the tests
* Added missing include
* Read PKs in batches
* Fixed merge conflict
* Fixed merge conflict
* Restrict prefetching of PKs to the number of rows in the current output block
* Fixed merge
* Fix IResearch ASan errors
* Revert "Restrict prefetching of PKs to the number of rows in the current output block"
This reverts commit e0fd8698a3.
* Revert "Read PKs in batches"
This reverts commit c06c4d7a36.
* Began some small step refactoring to introduce batch-reading correctly
* Extracted method fillBuffer
* Extracted method evaluateScores
* Minor changes
* Read data from iresearch index in batches
* Replaced std::deque<IndexResult> buffer by a new class
* Solved minor TODOs
* Fixed last commit
* Fixed merge conflict
* Removed accidentally re-added view blocks
* Implemented SharedAqlItemBlockPtr
* Replaced all AqlItemBlockShell, shared_ptr<AqlItemBlock>, unique_ptr<AqlItemBlock> with SharedAqlItemBlockPtr
* Removed AqlItemBlockShell
* Bugfixes
* Added missing noexcept (used in returnBlock())
* Added nullptr constructor/operator= and noexcept specs
* Removed references to the shell
* Implemented review comments
* Fixed a compile error clang somehow ignored
* Two bugfixes and additional asserts
* Fixed ASan error
* protected AqlItemBlock destructor, and some cleanup
* added SharedAqlItemBlockPtr include in QueryCursor.h
* Added some asserts
* Fixed merge conflicts
* protected returnBlock in AqlItemBlockManager
* optimize away SortNode in case it is covered by an arangosearch view
this implementation is a stub with hard-coded attribute names
* extend IResearchViewMeta with sorting order definition
* make 'IResearchViewMeta::Sort' compatible with 'SortCondition' API
* ensure ArangSearch sort is immutable after creation
* address review comments
* Added RemoteExecutor skeleton
* Moved RemoteBlock implementations to ExecutionBlockImpl<RemoteExecutor>
* Remove unnecessary include to avoid unused function warnings
* Fixed gcc compile error
* Moved Scatter/Distribute block implementations to their new Executor versions
* Applied clang-format
* Added factory, infos and a skeleton for the unordered view executor
* Removed assert based on wrong assumption
* Added members from IResearchViewBlockBase to IResearchViewExecutor
* Moved more code into the ViewExecutor, hopefully enough to produce a working version now
* Added missing reset code, made produceRow work mostly correct
* Removed superfluous parentheses to get more useful output from Catch
* Ported fix 923b6e81ac723d1fe37f8e7bf1ab81149f3a08ef
Original commit message was:
Fixed a race condition in RemoteBlock which was triggered during
shutdown overtaking getSome.
* Applied review comments
* Inject input row instead of an item block + pos into the expression context, plus fixed some tests
* Adapted test. Search tests are now green.
* Do not ask upstream when already DONE
* Removed `limit` from next()
* Simplified code that could handle producing more than one document
* Minor readability change
* Solved two TODOs noted in the review
* Removed leftover references to DistributeNode members in the DistributeBlock
* Reverted removal of "exhausted"
* WIP: Implemented variant with scorers
* Fixed compile errors of the last commit
* Fixed some asserts and calculations
* Fixed violated assertions
* Moved files from IResearch/ to Aql/
* Replaced recursive call with a loop
* Worked on a few TODOs
* Removed IResearchViewBlock
* Set input registers correctly
* Eliminated dependency to the Node in the Executor
* Don't misuse the volatility variables for initialization
* Extended a TODO note
* Removed obsolete includes
* Removed an obsolete include from the tests
* Added missing include
* Read PKs in batches
* Fixed merge conflict
* Fixed merge conflict
* Restrict prefetching of PKs to the number of rows in the current output block
* Fixed merge
* Fix IResearch ASan errors
* Revert "Restrict prefetching of PKs to the number of rows in the current output block"
This reverts commit e0fd8698a3.
* Revert "Read PKs in batches"
This reverts commit c06c4d7a36.
* Began some small step refactoring to introduce batch-reading correctly
* Extracted method fillBuffer
* Extracted method evaluateScores
* Minor changes
* Read data from iresearch index in batches
* Replaced std::deque<IndexResult> buffer by a new class
* Solved minor TODOs
* Fixed last commit
* Fixed merge conflict
* Removed accidentally re-added view blocks
* Implemented review comments
* issue 526.6: implement REST and V8 handlers for the iresearch analyzer feature
* address typo
* remove excess comments
* temporarily comment out tests failing on MacOS
* temporarily comment out more MacOS-only test failures
* issue 526.3: update analyzer feature to store analyzer definitions in per-vocbase system collections
* address merge issues
* address another merge issue