memgraph/tests/qa/tck_engine
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
..
results .gitignore wasn't updated. 2017-06-20 15:01:11 +02:00
steps .gitignore wasn't updated. 2017-06-20 15:01:11 +02:00
tests Variable expansion consolidaton 2017-10-05 13:12:39 +02:00
.gitignore .gitignore wasn't updated. 2017-06-20 15:01:11 +02:00
behave.ini .gitignore wasn't updated. 2017-06-20 15:01:11 +02:00
binary.todo .gitignore wasn't updated. 2017-06-20 15:01:11 +02:00
environment.py .gitignore wasn't updated. 2017-06-20 15:01:11 +02:00
test_executor.py Added qa tests to apollo generate. 2017-07-21 14:40:55 +02:00
test_results.py .gitignore wasn't updated. 2017-06-20 15:01:11 +02:00