1
0
Fork 0
Commit Graph

772 Commits

Author SHA1 Message Date
Jan 5df12917d6
prevent an optimization from destroying variables (#5604) 2018-06-14 18:09:10 +02:00
jsteemann 2712f9ce14 Merge branch 'devel' of https://github.com/arangodb/arangodb into feature/add-distinct-aggregator 2018-06-14 00:46:22 +02:00
Jan Christoph Uhde f81e42af36 Add optimizer rule that replaces js function calls (NEAR/WITHIN/FULLTEXT) with pure AQL (#5529) 2018-06-12 13:48:31 +02:00
Jan af9d2c05bc port COLLECT bugfix from 3.3 (#5519) 2018-06-08 15:45:41 +02:00
Jan edb24deafe
cleanup collection/vocbase interface of ExecutionNodes (#5557) 2018-06-08 15:28:48 +02:00
Andrey Abramov e117a97fb4
Feature/arangosearch scatter node (#5536)
* remove collection dependency from scatter

* simplify `createBlock` API

* remove useless IResearchViewScatter node

* some fixes

* code cleanup

* scatter arangosearch view

* cleanup

* fix compilation errors

* fix test issues

* store shared_ptr rather than raw pointer in IResearchViewNode

* refactor ScatterBlock

* refactor DistributeBlock

* ensure no leaks during execution node cloning

* some fixes

* code cleanup

* remove vocbase from `DistributeNode`

* add missing ifdef

* fixes after review
2018-06-06 20:42:53 +03:00
Jan 0dc9896718
more eager "remove-filter-covered-by-index" rule (#5498) 2018-06-01 14:40:24 +02:00
Andrey Abramov f708e46973
Feature/arangosearch gather node (#5487)
* integrate ArangoSearch into GatherNode/GatherBlock logic

* fix inconsistency after merge

* add serialization/deserealization logic for IResearchViewNode sorting

* fix optimizer rule order

* fix copy/past typo

* fix tests

* ensure `GatherNode` is properly set up for ArangoSearch views

* adjust optimizer rule order
2018-05-30 02:53:21 +03:00
Jan dc97eb0111
Subquery optimizations (#5398) 2018-05-28 13:56:03 +02:00
jsteemann e5ee8e0573 added new aggregators 2018-05-28 08:48:01 +02:00
Andrey Abramov 0f0235e8a9
Remove collection dependency from gather node (#5457)
* remove collection dependency

* some fixes

* fix test issues

* add tests for newly created functionality

* fix enterprise test fails

* add comment
2018-05-25 17:26:33 +03:00
Simon 35992ad67b Coordinator storage engine (#5405) 2018-05-22 19:30:27 +02:00
Vasiliy 27f7f4a0aa issue 389.9: return TRI_vocbase_t& from Query::vocbase() (#5420)
* issue 389.9: return TRI_vocbase_t& from Query::vocbase()

* backport: use view name instead of view id in error messages
2018-05-22 19:03:14 +03:00
Vasiliy 843e584746 issue 389.5: refactor StandaloneContext to be constructed with a TRI_vocbase_t& (#5370)
* issue 389.5: refactor StandaloneContext to be constructed with a TRI_vocbase_t&

* backport: address build issues
2018-05-17 01:15:50 +03:00
jsteemann 27e985d5d0 safer casts for ExecutionNode types 2018-05-10 20:08:37 +02:00
jsteemann 2b857f72f2 yet another assertion failure fix 2018-05-10 17:40:50 +02:00
jsteemann eac32700ea fix assertion failure in cluster 2018-05-09 23:09:02 +02:00
Andrey Abramov ddd8ef6667 refactor execution node type enum to be less error prone 2018-05-08 16:23:56 +03:00
Andrey Abramov 39a4cbf0d6
fix valgrind issues (#5283) 2018-05-07 21:17:48 +03:00
Jan 9c0460acff
Feature/aql optimizations (#5237) 2018-05-03 16:55:58 +02:00
Simon 828f1d423c S2 based Geo-Spatial index (#5249) 2018-05-02 23:54:41 +02:00
Andrey Abramov 4649b40b96
Coordinator ArangoSearch view + Execution nodes + AgencyMock (#5160)
* add initial implementation of scatter view rule and node

* add tests for `IResearchViewNode` and `IResearchViewScatterNode`

* add missing check

* modify IResearch execution nodes to use references instead of pointers

* use view id in searialized `ExecutionNode` representation instead of the name

* add cluster mode stubs and checks

* very first attempt to distribute IResearchViewNode

* further implementation of cluster-wide arangosearch views

* fix invalid json format

* add tests for coordinator iresearch view

* allow to retrieve a list of existing views on a coordinator

* more tests for coordinator iresearch view

* some fixes to enable query explanation

* remove Collection dependency from RemoteNode

* remove unnecessary remote ArangoSearch view scatter

* fix explanation appearance

* add some assertions

* minor fixes

* implement IResearchViewCoordinator::updateProperties

* fix view DDL issues

* handle link modifications in DDL operations

* add coordinator implementation of iresearch view links

* fix tests

* further coordinator based view DDL implementation

* further IResearchViewCoordinator implementation

* add initial implementation of AgencyMock

* fix some tests

* code cleanup

* extend test + some fixes

* more tests for IResearchViewCoordinator

* fix tests for IResearchLinkCoordinator

* some fixes after merge

* fix tests

* remove declaration of nonexistent (previously removed) method

* some fixes after review

* remove string duplication

* more tests and fixes

* more fixes and tests

* more tests

* one more test

* fix 'use-after-free' asan error

* fix non-enterprise tests issues
2018-05-02 00:15:11 +03:00
Jan 5357adad95
Feature/count plan nodes by type (#5225) 2018-04-30 12:52:32 +02:00
Jan 349e2c1681 forward-port AQL optimizations from 3.3 (#5020)
* forward-port AQL optimizations from 3.3

* fix restrict-to-single-shard rule

* added tests for specific cases

* ModificationNodes now can know if they are restricted or not

* OptimizerRule now updates the ModificationNode instead of setting ownName on remote node.

* The DBServerEngine container now only sends a subset of snippets (those which are relevant) It is  able to restrict any part of the query to a certain shard or even a list of shards

* ExecutionEngine CreateBlocks in ClusterMode now returns Result instead of throwing.

* Adapted Coordinator side to a bitter mapping of RemoteNode => QuerySnippets. This is still ongoing work.

* Fixed Coordinator enginecontainer test and finisehd implementation of EngineInfoContainerDBServer. Seems to work so far, need to adapt test to prove it.

* Adapted test for modification nodes and restrict to shard.

* restrictTo can now be de-/serialized on Modification Nodes

* Fixed Community Compile Error

* Added a test for Indexes/EnumerateCollection nodes

* EnumerateCollection and IndexNode now have options to be restricted to a single shard, opt rule not yet updated

* DBServer part of planning now checks Enumerate and IndexNodes for single shard optimization

* Added tests for simple single shard optimization on IndexNodes

* Adapted optimzierrule for SingleShard optimierung on IndexNodes

* Fixed an issue with externally restricted shard ids in combination with shard_id based optimization

* Added a test for multiple single shard optimizations on the same collection

* Removed collection/Shard duplicate check of optimize to single shard rules

* Updated Explainer to handle optimize to single shard

* Let more tests pass an optimized AQL variant

* Temporarily disabled a tests that can only be solved after some work in transaction
2018-04-30 11:25:09 +02:00
Wilfried Goesgens 7d6e580780 Refactoring & code cleanup (#5138) (#5142) 2018-04-24 14:42:23 +02:00
Tobias Gödderz 089b21e3de fix dump&restore of smart graphs (#5093)
* fix dump&restore of smart graphs (#5093)

* Added tests for dump-restore of SmartGraphs

* Arangosh will now expose isSmart and the smartGraphAttribute on properties

* RestReplicationHandler will now ignore smart-graph collections unless you execute it with force

* Added changelog

* Reactivated original mmfiles dump/restore test

* Skip hidden smart graph collections in arangodump

* Do not dump shadowCollections metadata of smart edge collections

* Cluster optimizer rules for soerted gather nodes now handle virtual edge collections correctly

* Added a dump/restore tests for smartgraphs in rocksdb as well

* Deactivated checks for writesExecuted statistics in dump/restore tests for smartgraphs mmfiles

* Really exclude shadowCollections

* Reduced loglevel

* Added tests

* Don't change single-server behaviour

* Fix tests for omitted shadowCollections and hidden collections

* Activated statistics in MMFIles dump test again and included isEnterprise in rocksdb dump test

* A modification node can now disableStatistics, which means it does not contribute to query->extras() this is only relevant in SmartGraph case so far.

* Added a test to dump&restore satellite collections

* Bugfix: restore satellite collections properly

* Added regression test for internal issue #2237

* Fix bug #2237

* Updated CHANGELOG

* Copied dump/restore tests to rockdsb

* Removed enterprise test

* Added inline comment for smart-edge collections in optimizer rules

* Removed duplicate CHANGELOG entry

* Simplified removal of shadowCollections

* fix jslint

* Made internal.isEnterprise() available in js client context. Taken from 3.3/59f655fa

* fix broken dump_encrypted test

* Removed accidentally copied CHANGELOG entry
2018-04-16 12:28:13 +02:00
Jan 79eef177ce
remove sorts from GatherNode if not required (#5019) 2018-04-13 16:02:00 +02:00
Simon 9980067e73 fixing various warnings (#5013) 2018-04-05 17:01:16 +02:00
Jan 11cfbf5039
Feature/optimize cluster collect (#4897) 2018-04-03 17:28:07 +02:00
Jan 2c3632118c
fixed issue #4934: Wrong used GeoIndex depending on FILTER order (#4948) 2018-03-26 09:42:49 +02:00
Jan b325d05357
Bug fix/aql auto keep on collect (#4795)
* automatically detect which variables to keep in AQL COLLECT

If a COLLECT INTO is used, then it is detected which sub-attributes
of the into variables are used later in the query, and automatic
KEEP instructions are added to the COLLECT if possible

Example query:

    FOR doc1 IN collection1
      FOR doc2 IN collection2
        COLLECT x = doc1.x INTO g
        RETURN { x, all: g[*].doc1.y }

would be turned into

    FOR doc1 IN collection1
      FOR doc2 IN collection2
        COLLECT x = doc1.x INTO g KEEP doc1
        RETURN { x, all: g[*].doc1.y }

and prevent `doc2` from being temporarily stored in the variable `g`

* fix runtime warnings

* increase default flush timeout

* added tests
2018-03-14 13:59:46 +01:00
Vasiliy c8739cd3cd manually-merge: cache data-sources in CollectionNameResolver 2018-03-14 10:11:50 +03:00
Jan 2f47cdcaf9
fixed issue #4827: COLLECT on edge _to field doesn't group distinct values as expected (#4830) 2018-03-13 13:40:26 +01:00
Jan 67e7e4181e
Bug fix/remove v8 executor (#4756) 2018-03-13 10:41:02 +01:00
Jan 9ca52c0cf7
fixed issue #4651 (#4659) 2018-02-28 12:56:07 +01:00
Dan Larkin 96dbc693db Speed up condition normalization (DNF conversion) (#4574) 2018-02-13 22:13:52 +01:00
Jan 653f95f243
fixed issue #4185: On execution of FULLTEXT search / AQL query db is … (#4238) 2018-01-16 00:27:27 +01:00
Jan b2b6c06cbf
Feature/efficiency (#3736) 2018-01-05 16:51:31 +01:00
Jan 3b6e85f4a6
fixed issue #4197: AQL statement not working in 3.3.1 when upgraded from 3.2.10 (#4206) 2018-01-05 14:52:03 +01:00
Jan 6ab17171a3
do not materialize entire collections using V8 (#4087) 2018-01-02 15:47:41 +01:00
Jan 2a96df5ca5
Feature iresearch (#4071) 2017-12-18 15:04:59 +01:00
Jan 9a340a6454
fix issue #planning/1511 (#4028) 2017-12-13 23:10:07 +01:00
Jan 9c76613e63
fix premature unlock (#3802)
* fix some deadlocks found by evil lock manager (tm)

* fix duplicate lock

* fix indentation

* ensure proper lock dependencies

* fix lock acquisition

* removed useless comment

* do not lock twice

* create either a V8 transaction context or a standalone transaction context, depending on if we are called from within V8 or not

* AQL micro optimizations

* use explicit constructor

* only use V8DealerFeature's ConditionLocker for acquiring a free V8 context

entering and exiting the selected context is then done later on without having to hold the ConditionLocker

* remove some recursive locks

* Disable custom deadlock detection when Thread Sanitizer is enabled

* Changing ifdef's

* grr

* broke gcc

* Using atomic for ApplicationServer::_server

* fix premature unlock

* add some asserts

* honor collection locking in cluster

* yet one more lock fix

* removed assertion

* some more bugfixes

* Fixing assert

(cherry picked from commit 1155df173bfb67303077fbe04ee8d909517bfd21)
2017-12-13 13:27:42 +01:00
Simon Grätzer ec80ee39fd Fulltext Index Cursor (#3807) 2017-12-06 14:29:57 +01:00
Jan 3261373186
fixed issue #3640: limit in subquery (#3871) 2017-12-06 10:39:42 +01:00
Jan 733f27e997 Bug fix/fix compilation with gxx7 (#3637) 2017-11-10 16:00:57 +01:00
Jan bef52d7dc3
Bug fix/cleanup after cppcheck (#3639) 2017-11-10 13:53:28 +01:00
Jan Christoph Uhde 5a6046874d fixes: geoindex type 1 queries (#3575) 2017-11-07 15:03:45 +01:00
Jan f1497e0df7 fixed issue #3395 (#3399) 2017-10-13 12:25:46 +02:00
Jan dba4b90754 cleanup a few cases of fatal errors (#3274)
* cleanup a few cases of fatal errors

* fix multiple compile errors (my bad)

* fixed missing brace
2017-09-19 21:58:21 +02:00
Jan 0a71b54e1f fix out-of-bounds attribute accessor calls (#3273) 2017-09-18 14:01:06 +02:00
Jan 5165155ed1 Bug fix/fixes 0609 (#3227)
* do not use V8 variant of AQL functions in early optimization stage when a C++ variant is available

* additionally, simplify AQL function definitions and aliases

* warn when more than 90% of max mappings are in use

* added C++ variant of replication catchup

* added `--log.role` option

* updated CHANGELOG

* removed non-existing scheduler.threads option from config

* removed useless __FILE__, __LINE__ invocations

* updated CHANGELOG

* allow a priority V8 context

* remove TRI_CORE_MEM_ZONE

* try to fix Windows errors & warnings

* cleanup

* removed memory zones altogether

* exclude system collections from collection tests
2017-09-13 16:28:21 +02:00
Simon Grätzer ffc465433a No access collections Improvements (#3190)
* consolidated EdgeDocumentToken

* optimizing cluster traversal

* adding skip collection checks

* API cleanup

* copying AQLValue to avoid use-after-free bugs

* Fixing rocksdb SingleServerEdgeCursor

* Fixing a collection resolving issue
2017-09-07 14:55:07 +02:00
Jan 62f9231aa5 Bug fix/predictable results data modifcation multiple fors (#2921) 2017-08-01 17:08:35 +02:00
Jan Christoph Uhde 3b4246c0ff Bug fix/traverse and modify (#2830)
* fix traverse and modify

* fix filter deletion in geo index optimization rule

* update test definitions

* fix second traverse function

* use port ranges when starting cluster

* reduce memory consumption of cluster test

Now we execute 6 instead of 12 test concurrently.
2017-07-25 22:18:59 +02:00
Frank Celler a5a25754ed Feature/reduce extraction to projection (#2792)
* reduce extractions to projections

* recycle string buffers in SocketTask

* micro optimizations for mmfiles indexes

* added special lookup function for _key

* moved function into the correct file

* speed up key buffer allocations a bit

* added noexcept specifier

* correctly name variable

* explicitly move bounds

* fix and speedup from/toPersistent functions

* reuse string from ManagedDocumentResult for multiple lookups

* use move-assign

* a bit less work for single server

* speedup AQL function HASH

* single fetch optimization

* performance optimization for the case when no documents need to be returned

* make reduce-extraction-to-projection a RocksDB-only optimizer rule

* cppcheck

* try to fix compile error on MacOS

* bug fix for MacOSX

* missing namespace (in Windows compile)
2017-07-14 08:40:29 +02:00
Frank Celler 40d73d5a8b Revert "[WIP] Feature/reduce extraction to projection (#2735)"
This reverts commit 5bfcff30cd.
2017-07-12 12:52:14 +02:00
Jan 5bfcff30cd [WIP] Feature/reduce extraction to projection (#2735)
* reduce extractions to projections

* recycle string buffers in SocketTask

* micro optimizations for mmfiles indexes

* added special lookup function for _key

* moved function into the correct file

* speed up key buffer allocations a bit

* added noexcept specifier

* correctly name variable

* explicitly move bounds

* fix and speedup from/toPersistent functions

* reuse string from ManagedDocumentResult for multiple lookups

* use move-assign

* a bit less work for single server

* speedup AQL function HASH

* single fetch optimization

* performance optimization for the case when no documents need to be returned

* make reduce-extraction-to-projection a RocksDB-only optimizer rule
2017-07-12 11:22:29 +02:00
Michael Hackstein 2cd48e614b Feature/optimizer rule remove filter covered by traversal (#2731)
* Added a first test for remove-filter-covered-by-traverser rule.

* initial try at adding the functions

* Initial try at fixing all cases

* Fixing optimizer rule order

* Changing rule

* excluding quantifier ANY

* Fixing assertion error

* quick fix for some failed traverser cases

* Fixing quantifier related tests

* Adding upper limit for scannedIndex in cluster

* Fixing the mmfiles asserts

* Allow the coordinator to do condition checking on edges again. Used in enterprise.

* Fix naming of optimizer rules (#2739)
2017-07-10 10:15:17 +02:00
Jan Christoph Uhde 562cc77b59 Bug fix/issue 2499 insert 9 instead of 1 (#2727)
* Add testcase to demonstrate #2499

  - In subqueries inserts get pushed to the DB-Servers

  - these create documents documents on each DB-Server that don't respect the shard-key
  
- subsequent deletes will fail to detect the shard correctly and will also fail.

* fix for #2499
2017-07-06 09:53:39 +02:00
Frank Celler 6b47544611 Revert "Feature/optimizer rule remove filter covered by traversal" (#2724)
* Revert "Feature/authorization query cache (#2720)"

This reverts commit 83712b7b4a.

* Revert "properly return index in case of unique constraint violation (#2716)"

This reverts commit c3f346e0a5.

* Revert "fix https://github.com/arangodb/planning/issues/388 (#2714)"

This reverts commit 1d944b97a4.

* Revert "fix typo (#2718)"

This reverts commit 61a80ed697.

* Revert "Feature/optimizer rule remove filter covered by traversal (#2676)"

This reverts commit c54b81fb69.
2017-07-04 11:13:36 +02:00
Simon Grätzer c54b81fb69 Feature/optimizer rule remove filter covered by traversal (#2676) 2017-07-03 18:39:32 +02:00
jsteemann d13144f389 fixed issue #2515 2017-06-01 13:45:47 +02:00
Simon Grätzer df7e12d79b Working geo index + tests 2017-05-09 15:04:51 +02:00
Michael Hackstein 0fa1980064 More unified merge of Traverser- and ShortestPath- into GraphNode. Now the ShortestPathNode creates TraverserEngines on the Cluster. Finally everything ready to wire computation together 2017-04-19 15:23:37 +02:00
Michael Hackstein 1087065ea5 Merge branch 'devel' of github.com:arangodb/arangodb into engine-api 2017-04-13 17:34:25 +02:00
Michael Hackstein 034b38f0cc Replaced the velocypack ConstantDistance ShortestPath API by a StringRef & TraverserCache version. This should be save for RocksDB. This commit fails in ClusterMode. 2017-04-12 14:21:53 +02:00
jsteemann 0229ab9326 issue #2415 2017-04-09 23:19:10 +02:00
jsteemann ef3322b81f make SORT RAND() removal a feature of the old engine 2017-04-04 08:55:08 +02:00
jsteemann 81dcfbbe3d pass trx into numberDocuments 2017-03-31 11:33:16 +02:00
jsteemann 467307fd07 fixed issue #2400 2017-03-28 13:58:49 +02:00
jsteemann 57dd92902c move engine-specific optimizer rules into engine 2017-03-07 13:10:58 +01:00
jsteemann f5c8932744 initial version of query execution plan cache, still very rough 2017-02-21 11:58:38 +01:00
jsteemann d49c5c3fc0 simplified internal APIs a bit 2017-02-15 12:42:07 +01:00
jsteemann bc080ae58f removed unused node type 2017-02-14 16:52:30 +01:00
jsteemann 7e690a0c61 renaming 2017-02-13 15:18:40 +01:00
jsteemann eb73dbf960 renaming 2017-02-13 13:30:57 +01:00
jsteemann f09ec85127 renaming 2017-02-13 12:27:26 +01:00
jsteemann b76eeee92e reuse more AqlItemBlocks 2017-02-08 00:59:06 +01:00
jsteemann ba44acdcff simplify optimizer API a bit 2017-02-06 15:43:49 +01:00
jsteemann 512672b3a4 make geo index work with nested attributes 2017-02-03 13:07:20 +01:00
jsteemann 819eeb18f9 don't tell GatherNode to sort data from an unsorted index 2017-02-03 11:47:52 +01:00
jsteemann c4d2ff3dce renaming 2017-01-23 15:36:11 +01:00
Michael Hackstein 3eaf53c0c9 Merge branch 'devel' of github.com:arangodb/arangodb into devel 2017-01-23 10:01:23 +01:00
Michael Hackstein 36e398f3f4 Fixed a bug with sort optimization in indexes. Also adapted tests. 2017-01-23 09:45:22 +01:00
jsteemann 3ba821d3f2 remove arbitrary and useless enum number values and let the compiler determine them 2017-01-19 16:20:46 +01:00
Max Neunhoeffer d038ba61e7 Implement attributePath access for SortElementVector and in GatherBlock.
Note: This is not yet used anywhere, so the changes should be entirely
neutral. We are going to use this in the optimizer rules
  scatterInClusterRule
and
  distributeInClusterRule
to make the GatherNode do a merge sort, if an index delivers sorted
streams of documents.
2017-01-18 15:32:59 +01:00
jsteemann 0d14b52b69 fixed issue #2234 2017-01-02 09:19:15 +01:00
jsteemann 8856caf875 micro optimizations for geo index 2016-12-20 15:53:49 +01:00
Jan Christoph Uhde 9ecd4665c7 distinguish between less and less equal in geoindex filter conditions 2016-12-20 12:15:58 +01:00
Jan Christoph Uhde 822200ae2c now use traverseAndModify to remove the condition in filter expressions 2016-12-19 14:32:11 +01:00
Jan Christoph Uhde e83ac6e8b9 delete ast node instead of replacing it with true
in some cases.
2016-12-19 12:30:47 +01:00
Jan Christoph Uhde 49fba88487 add missing line 2016-12-19 11:33:45 +01:00
Jan Christoph Uhde 3952bf2009 remove debug code 2016-12-19 11:00:52 +01:00
Jan Christoph Uhde 004da0c614 only do not use geoindex in inner loop if we want to sort 2016-12-19 10:52:42 +01:00
Jan Christoph Uhde 32e1c7eac4 manually cloning fixes the issue 2016-12-19 10:02:02 +01:00
Jan Christoph Uhde 75823fe879 another try to fix the plan 2016-12-16 15:19:10 +01:00
Jan Christoph Uhde 2a404cfabe add dump of ExectionPlan.
Index Node seems to be created!
2016-12-14 12:21:21 +01:00
Jan Christoph Uhde 0f8b496c57 add debugging info for geoindex 2016-12-14 10:46:24 +01:00
Jan Christoph Uhde 3d17672feb better tests 2016-12-13 17:03:01 +01:00
Jan Christoph Uhde e5fcdb7386 partial rewrite - now we start at endnodes
and work upward towards singleton node
2016-12-13 15:53:44 +01:00
Jan Christoph Uhde 7d93fe0bdd add link to geo-index doc to sourcefile to clarify goals 2016-12-13 13:20:48 +01:00
Jan Christoph Uhde aac38c8a00 move collection acccesspath check to identify section
so we can compare nodes
2016-12-13 11:42:49 +01:00
Jan Christoph Uhde b8cc674219 prepare to fix filter-sort 2016-12-13 10:59:02 +01:00
Jan Christoph Uhde 1d5e28d969 fix geo-index for cluster case 2016-12-12 15:36:43 +01:00
Jan Christoph Uhde 1acfd65467 work on geo-index in cluster 2016-12-12 13:30:38 +01:00
jsteemann b6606727ee fixes 2016-12-08 11:13:10 +01:00
Jan Christoph Uhde 5416755049 avoid use of geo-index-rule in cases where it could yield an invalid result 2016-12-07 15:06:44 +01:00
Jan Christoph Uhde 3e24624c6e back to performance 2016-12-06 15:56:22 +01:00
Jan Christoph Uhde a941808ea8 remove debug code for performance testing 2016-12-06 10:29:38 +01:00
Jan Christoph Uhde 71be8c215a node replacement is now working 2016-12-06 10:00:11 +01:00
Jan Christoph Uhde d1a3e4482d condition replace should be almost working 2016-12-05 20:18:31 +01:00
Jan Christoph Uhde 275e36b603 add pointer that needs to be replaced with true
in sort or filter condition
2016-12-05 19:49:10 +01:00
Jan Christoph Uhde 6b93b9d2eb bring functions in correct order 2016-12-05 19:38:01 +01:00
Jan Christoph Uhde 5aabbb0ac0 fix const-ness so the condition can be modiefied 2016-12-05 16:21:21 +01:00
Jan Christoph Uhde c84223d598 Add information if AstNode has been found in subexpression
this information can be used in rewriting the condition and deciding
if a sort node can be deleted or not
2016-12-05 15:31:50 +01:00
Jan Christoph Uhde b0b660eb85 add iterative preorder walk for and conditions 2016-12-05 15:19:06 +01:00
Jan Christoph Uhde 5dcf61c9ba now work to a certain degree with binaray/naray-and in FILTER/SORT
condition
2016-12-05 14:00:14 +01:00
Jan Christoph Uhde 9b4e01eb3b move geoIndexRule to a positon before inexes have been touched by
optimizer
2016-12-05 13:17:01 +01:00
Jan Christoph Uhde 9d04b37e58 within queries are now working 2016-12-05 12:46:23 +01:00
Jan Christoph Uhde d858b9aa71 further implement within 2016-12-02 16:15:23 +01:00
Jan Christoph Uhde 72d4790c68 remove boost::optional and make use of nodetype 2016-12-02 12:22:07 +01:00
Jan Christoph Uhde e0220be12d stronger split between identification of candidates and application of geo index rule 2016-12-02 11:53:31 +01:00
Jan Christoph Uhde f27a22db06 fix debug code 2016-12-02 11:20:09 +01:00
Jan Christoph Uhde 56b6be851c add functions providing capability to check ast for parts of geoindex
rules
2016-12-02 10:44:42 +01:00
Jan Christoph Uhde 56614ac8c8 switch unittests to chai and add failing test for FILTER condition 2016-12-01 16:30:09 +01:00
Jan Christoph Uhde 8bb719c615 add first tests for geoindex 2016-12-01 15:59:10 +01:00
Jan Christoph Uhde e619ef3e4e now inspect sort and filter nodes 2016-12-01 12:21:51 +01:00
Jan Christoph Uhde 5dbf5e14e3 refactor geoOptimization into smaller fucntions
this prepares the creation of the within rules
2016-12-01 10:28:40 +01:00
Jan Christoph Uhde 80c89d5f97 geo condition is now build with a extra parameter for within 2016-11-30 15:25:11 +01:00
Jan Christoph Uhde 8bafcdfe92 GeoIndexIterator now takes parameters via ConditionNode 2016-11-30 14:10:16 +01:00
Jan Christoph Uhde 5b3be69e10 WIP first working version of geoindex via aql 2016-11-29 11:48:32 +01:00
Jan Christoph Uhde 4a1105a2e9 prepare merge with devel 2016-11-28 16:02:44 +01:00
Jan Christoph Uhde ac81bbb32e WIP: delete SortNode and replace EnumerateCollectionNode with IndexNode 2016-11-28 12:07:25 +01:00
Jan Christoph Uhde 74a4c36853 add todos and more description of what is going on 2016-11-25 17:43:12 +01:00
Jan Christoph Uhde 2daf236f58 avoid 3 copies 2016-11-25 17:20:23 +01:00
Jan Christoph Uhde a5a82e627e check if index node has geoindex and if the access paths match 2016-11-25 17:13:41 +01:00
Jan Christoph Uhde 4267a8100e implement parts of the geoindex optimizer rule 2016-11-25 16:23:22 +01:00
Jan Christoph Uhde 9b2ad4dce1 add geo index rule 2016-11-24 18:18:51 +01:00
jsteemann fcacd76bca display index usage of traversals in AQL explainer output (previously missing) 2016-11-10 12:49:02 +01:00
jsteemann 31350a5c14 micro optimizations 2016-11-01 15:23:28 +01:00
Max Neunhoeffer 4bf4c7f11a Fixed UPSERT problems in cluster. 2016-10-20 00:58:01 +02:00
Jan Steemann 47382b20d7 issue #2115 2016-10-18 13:54:33 +02:00
Max Neunhoeffer 2c7ff60e1e Fix UPSERT in cluster. 2016-10-14 22:00:07 +02:00
Max Neunhoeffer ecc3b5696e Add planning stage for AQL writing to smart edge colls. 2016-10-07 11:25:23 +02:00
jsteemann ee67d2e0d2 fixed typo in comment 2016-10-07 09:48:17 +02:00
jsteemann d67c6372aa fixed issue #2086 2016-10-06 14:04:15 +02:00
jsteemann a45322076a issue #2079 2016-09-27 16:34:39 +02:00
jsteemann 5e26337548 issue #2070 2016-09-22 19:59:13 +02:00
Jan Steemann a2deb13c8d fixed issue #2060 2016-09-19 08:50:13 +02:00