memgraph/tests/benchmark
florijan 76fe8bfadf Variable expansion consolidaton
Summary:
- Removed BreadthFirstAtom, using EdgeAtom only with a Type enum.
- Both variable expansions (breadth and depth first) now have mandatory inner node and edge Identifiers.
- Both variable expansions use inline property filtering and support inline lambdas.
- BFS and variable expansion now have the same planning process.
- Planner modified in the following ways:
	- Variable expansions support inline property filtering (two filters added to all_filters, one for inline, one for post-expand).
	- Asserting against existing_edge since we don't support that anymore.
	- Edge and node symbols bound after variable expansion to disallow post-expand filters to get inlined.
	- Some things simplified due to different handling.
- BreadthFirstExpand logical operator merged into ExpandVariable. Two Cursor classes remain and are dynamically chosen from.

As part of planned planner refactor we should ensure that a filter is applied only once. The current implementation is very suboptimal for property filtering in variable expansions.

@buda: we will start refactoring this these days. This current planner logic is too dense and complex. It is becoming technical debt. Most of the time I spent working on this has been spent figuring the planning out, and I still needed Teon's help at times. Implementing the correct and optimal version of query execution (avoiding multiple potentially expensive filterings) was out of reach also due to tech debt.

Reviewers: buda, teon.banek

Reviewed By: teon.banek

Subscribers: pullbot, buda

Differential Revision: https://phabricator.memgraph.io/D852
2017-10-05 13:12:39 +02:00
..
data_structures/concurrent Move unused datastructures to poc 2017-07-10 12:03:11 +02:00
query Variable expansion consolidaton 2017-10-05 13:12:39 +02:00
CMakeLists.txt Add convenience functions and a macro to libs/CMakeLists.txt 2017-10-03 14:28:16 +02:00
edge_storage.cpp Edge storage benchmark added 2017-09-08 13:12:20 +02:00
expansion.cpp Fix expansion benchmark 2017-08-25 10:09:21 +02:00
mvcc.cpp Small cleanup of some mvcc classes 2017-09-27 15:16:30 +02:00