memgraph/tests/unit
Teon Banek f0422c0e11 Generate multiple plans depending on starting node
Summary:
Permute query parts.

Permute matching only by selecting the starting node.

Flip the expansion when expanding from the other node.

Split planner into rule_based_planner and variable_start_planner

Use symbol hash when collecting expansion nodes

Multiple node atoms may point to the same symbol, and we could generate
multiple starting positions per atom which are the same. Using symbol
hash and equality prevents generating those redundant plans.

Correctly permute optional and merge matchings

Test VariableStartPlanner

Reviewers: florijan, mislav.bradac, buda, lion

Reviewed By: florijan, buda

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D417
2017-06-01 16:38:21 +02:00
..
allocator.cpp examples folder has been removed; src/test folder has been removed; the existing tests were moved to tests folder; StacktraceException has been introduced; query_plan_templated has been moved to query folder; hazard pointers have been deleted because they are not used any more 2017-02-18 18:03:48 +01:00
basic_bloom_filter.cpp Query::Plan::Aggregate 2017-04-11 15:12:06 +02:00
block_allocator.cpp clang format has been run on all hpp and cpp files under src and tests 2017-02-18 11:54:37 +01:00
bolt_buffer.cpp Refactored bolt session to use new decoder. 2017-04-15 16:35:09 +02:00
bolt_chunked_decoder_buffer.cpp Refactored bolt session to use new decoder. 2017-04-15 16:35:09 +02:00
bolt_chunked_encoder_buffer.cpp First version of new bolt decoder and tests. 2017-04-06 14:30:19 +02:00
bolt_common.hpp Refactored bolt session to use new decoder. 2017-04-15 16:35:09 +02:00
bolt_decoder.cpp Move typed_value to query top level and namespace it 2017-04-11 08:50:46 +02:00
bolt_encoder.cpp Fixed bolt encoder test. 2017-05-03 14:33:33 +02:00
bolt_result_stream.cpp Refactored bolt session to use new decoder. 2017-04-15 16:35:09 +02:00
bolt_session.cpp Loosen up handshake size checks to accept javascript clients. 2017-05-16 10:55:19 +02:00
bolt_testdata.hpp Removed large bolt encoder test to reduce runtime. 2017-05-03 14:50:02 +02:00
CMakeLists.txt Add variable with all memgraph dependent libraries 2017-04-27 18:40:34 +02:00
concurrent_list.cpp clang format has been run on all hpp and cpp files under src and tests 2017-02-18 11:54:37 +01:00
concurrent_map.cpp examples folder has been removed; src/test folder has been removed; the existing tests were moved to tests folder; StacktraceException has been introduced; query_plan_templated has been moved to query folder; hazard pointers have been deleted because they are not used any more 2017-02-18 18:03:48 +01:00
concurrent_set.cpp clang format has been run on all hpp and cpp files under src and tests 2017-02-18 11:54:37 +01:00
cypher_main_visitor.cpp Rename directions from LEFT/RIGHT to IN/OUT 2017-05-30 13:14:34 +02:00
database_key_index.cpp LabelProperty index. 2017-05-16 16:33:20 +02:00
database_label_property_index.cpp LabelProperty index. 2017-05-16 16:33:20 +02:00
deferred_deleter.cpp Deferred deleter added. 2017-04-14 17:46:16 +02:00
dynamic_bitset.cpp clang format has been run on all hpp and cpp files under src and tests 2017-02-18 11:54:37 +01:00
exceptions.cpp Merge utils/exceptions into single file 2017-04-20 16:53:21 +02:00
fswatcher.cpp Reduce number of iterations in fswatcher test 2017-03-01 11:24:51 +01:00
gc_common.hpp Deferred deleter added. 2017-04-14 17:46:16 +02:00
graph_db_accessor_index_api.cpp LabelProperty index. 2017-05-16 16:33:20 +02:00
graph_db_accessor.cpp GraphDdAccessor and KeyIndex API upgrades. Test refactoring 2017-05-03 15:42:04 +02:00
id.cpp Deferred deleter added. 2017-04-14 17:46:16 +02:00
logging.cpp Fixed logging tests. 2017-03-20 08:18:52 +00:00
mvcc_find_update_common.hpp visibility tests 2017-05-29 14:43:41 +00:00
mvcc_find.cpp Mvcc - unit test infrastructure setup 2017-05-05 14:46:18 +02:00
mvcc_gc.cpp Mvcc.GcDeleted bugfix and test 2017-05-18 16:02:42 +02:00
mvcc_parallel_update.cpp visibility tests 2017-05-29 14:43:41 +00:00
mvcc.cpp visibility tests 2017-05-29 14:43:41 +00:00
network_endpoint.cpp Started network refactorization. 2017-03-06 13:52:34 +01:00
program_argument.cpp clang format has been run on all hpp and cpp files under src and tests 2017-02-18 11:54:37 +01:00
property_value_store.cpp Query::Plan - Set logical ops implementation and testing. PropertyValueStore set() overriden to handle Null values as a removal instead of setting them. PropertyValueStore.clear() function added. 2017-03-29 08:51:12 +02:00
ptr_int.cpp clang format has been run on all hpp and cpp files under src and tests 2017-02-18 11:54:37 +01:00
query_common.hpp Simplify using identifiers in RETURN/WITH test macros 2017-05-31 15:50:08 +02:00
query_expression_evaluator.cpp Implement STARTS WITH, ENDS WITH, CONTAINS 2017-05-19 19:28:06 +02:00
query_plan_accumulate_aggregate.cpp Change CollectProduce to immediately return results 2017-05-30 16:55:37 +02:00
query_plan_bag_semantics.cpp Change CollectProduce to immediately return results 2017-05-30 16:55:37 +02:00
query_plan_common.hpp Change CollectProduce to immediately return results 2017-05-30 16:55:37 +02:00
query_plan_create_set_remove_delete.cpp Change CollectProduce to immediately return results 2017-05-30 16:55:37 +02:00
query_plan_match_filter_return.cpp Change CollectProduce to immediately return results 2017-05-30 16:55:37 +02:00
query_planner.cpp Simplify using identifiers in RETURN/WITH test macros 2017-05-31 15:50:08 +02:00
query_semantic.cpp Simplify using identifiers in RETURN/WITH test macros 2017-05-31 15:50:08 +02:00
query_stripper.cpp Move typed_value to query top level and namespace it 2017-04-11 08:50:46 +02:00
query_variable_start_planner.cpp Generate multiple plans depending on starting node 2017-06-01 16:38:21 +02:00
record_edge_vertex_accessor.cpp Query::StateSwitch added 2017-04-25 15:54:30 +02:00
rh_hashmap.cpp Fix warnings all over the codebase. 2017-03-22 09:32:06 +01:00
rh_hashmultimap.cpp Fix warnings all over the codebase. 2017-03-22 09:32:06 +01:00
scheduler.cpp New version of scheduler. 2017-04-07 11:55:10 +02:00
signal_handler.cpp clang format has been run on all hpp and cpp files under src and tests 2017-02-18 11:54:37 +01:00
skiplist_gc.cpp Global thread pool added. 2017-05-16 16:23:55 +02:00
skiplist_reverse_iteration.cpp Logger in this test somehow breaks code coverage. Argh... 2017-04-07 09:44:12 +02:00
snapshot.cpp Summary:Added files for snapshot durability 2017-05-17 08:42:00 +00:00
stack_allocator.cpp Merge utils/exceptions into single file 2017-04-20 16:53:21 +02:00
static_bitset.cpp Static bitset with tests created. 2017-03-08 17:13:20 +01:00
template_engine.cpp Merge string utils to one file 2017-04-18 17:39:58 +02:00
timestamp.cpp all unit tests are gtests 2017-02-19 23:47:09 +01:00
transaction_engine.cpp Fix engine. 2017-03-24 12:37:01 +01:00
traversal.cpp Fix warnings all over the codebase. 2017-03-22 09:32:06 +01:00
typed_value.cpp Query::Plan::OrderBy 2017-04-20 15:04:48 +02:00
union_find.cpp clang format has been run on all hpp and cpp files under src and tests 2017-02-18 11:54:37 +01:00
unique_object_store.cpp clang format has been run on all hpp and cpp files under src and tests 2017-02-18 11:54:37 +01:00