memgraph/tests
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
..
benchmark Variable expansion consolidaton 2017-10-05 13:12:39 +02:00
concurrent Add convenience functions and a macro to libs/CMakeLists.txt 2017-10-03 14:28:16 +02:00
data Replace map with bitset in stripped query 2017-08-02 22:17:36 +02:00
drivers Add transactions test to run script 2017-08-21 11:34:19 +02:00
macro_benchmark Implement record lock deadlock breaker 2017-09-27 16:11:05 +02:00
manual Variable expansion consolidaton 2017-10-05 13:12:39 +02:00
property_based Add convenience functions and a macro to libs/CMakeLists.txt 2017-10-03 14:28:16 +02:00
public_benchmark Remove ast-cache flag 2017-09-27 09:04:31 +02:00
qa Variable expansion consolidaton 2017-10-05 13:12:39 +02:00
stress Misc glog and gflags fixes. 2017-10-04 17:29:53 +02:00
unit Variable expansion consolidaton 2017-10-05 13:12:39 +02:00
client-stress.sh Migrate command line args to gflgs in tests 2017-07-06 13:54:12 +02:00
CMakeLists.txt Add convenience functions and a macro to libs/CMakeLists.txt 2017-10-03 14:28:16 +02:00