memgraph/tests/unit
Matej Ferencevic 28590aea53 Fix variable expand between same symbol
Summary:
This diff fixes the variable expand operator to work correctly then the start
and destination nodes use the same symbol or when the destination symbol is an
existing symbol.

Previously, the variable expand operator produced paths that were both
completely wrong (they shouldn't have been produced) and nonexistent (they
didn't even exist in the storage). Invalid data was produced because of a
wrong equality check that was introduced in D1703.

This issue was reported externally and the supplied test case was:
```
CREATE (p1:Person {id: 1})-[:KNOWS]->(:Person {id: 2})-[:KNOWS]->(:Person {id: 3})-[:KNOWS]->(:Person {id: 4})-[:KNOWS]->(p1);
MATCH path = (pers:Person {id: 3})-[:KNOWS*2]->(pers) RETURN path;
```

Also, tests have been added so the behavior remains correct.

Reviewers: buda

Reviewed By: buda

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2793
2020-07-01 00:17:25 +02:00
..
auth.cpp Migrate to C++17 2019-04-23 14:46:44 +02:00
bfs_common.hpp Remove old storage types 2020-01-23 14:32:33 +01:00
bfs_single_node.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
bolt_chunked_decoder_buffer.cpp Refactor network stack to use * instead of & 2018-09-03 20:20:42 +02:00
bolt_chunked_encoder_buffer.cpp Support streaming of Bolt results 2018-07-18 13:01:50 +02:00
bolt_common.hpp Support streaming of Bolt results 2018-07-18 13:01:50 +02:00
bolt_decoder.cpp Rename bolt::DecodedValue to bolt::Value 2018-07-24 15:59:20 +02:00
bolt_encoder.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
bolt_session.cpp Add server name to Bolt 2020-01-21 12:03:16 +01:00
bolt_testdata.hpp Removed large bolt encoder test to reduce runtime. 2017-05-03 14:50:02 +02:00
CMakeLists.txt Remove leftover raft unit test 2020-04-01 13:48:02 +02:00
commit_log_v2.cpp Fix CommitLog namespace in storage v2 2019-07-05 13:53:32 +02:00
communication_buffer.cpp Refactor network stack to use * instead of & 2018-09-03 20:20:42 +02:00
cypher_main_visitor.cpp Add support for rescanning query modules 2020-05-13 21:33:28 +02:00
formatters.hpp Remove output formatters from vertex/edge accessors 2019-11-20 20:12:19 +01:00
interpreter.cpp Fix multi-command transaction handling 2020-06-10 12:25:41 +02:00
kvstore.cpp Move KVStore to root source directory 2020-01-24 16:01:51 +01:00
metrics.cpp Migrate to C++17 2019-04-23 14:46:44 +02:00
network_endpoint.cpp Rename NetworkEndpoint 2018-01-15 15:47:37 +01:00
network_timeouts.cpp Add explicit start to servers 2018-10-16 11:39:42 +02:00
network_utils.cpp Extract utils into mg-utils static library and explicitly list tests 2018-05-30 09:41:56 +02:00
plan_pretty_print.cpp Implement pretty printing CallProcedure operator 2020-03-18 10:32:16 +01:00
property_value_v2.cpp Fix label+property index iteration in v2 2019-11-18 14:54:45 +01:00
query_common.hpp Add 'none' function implementation, its unit and TCK tests 2020-06-23 13:06:06 +02:00
query_cost_estimator.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
query_dump.cpp Make DUMP DATABASE work correctly in explicit transactions 2020-06-08 15:56:16 +02:00
query_expression_evaluator.cpp Fix 'all' and 'single' functions; update their unit and TCK tests 2020-06-24 13:43:25 +02:00
query_plan_accumulate_aggregate.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
query_plan_bag_semantics.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
query_plan_checker.hpp Remove old storage types 2020-01-23 14:32:33 +01:00
query_plan_common.hpp Remove old storage types 2020-01-23 14:32:33 +01:00
query_plan_create_set_remove_delete.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
query_plan_edge_cases.cpp Migrate tests to storage v2 part 1 2019-11-21 19:00:32 +01:00
query_plan_match_filter_return.cpp Fix variable expand between same symbol 2020-07-01 00:17:25 +02:00
query_plan_v2_create_set_remove_delete.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
query_plan.cpp Optimize IN list execution 2020-04-21 11:38:38 +02:00
query_pretty_print.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
query_procedure_mgp_module.cpp Correctly delimit arguments when printing signature 2020-03-19 14:19:53 +01:00
query_procedure_mgp_type.cpp Remove MG_SINGLE_NODE_V2 define 2020-01-23 17:24:33 +01:00
query_procedure_py_module.cpp Make py::Object conversion to PyObject * explicit 2020-03-24 12:23:13 +01:00
query_profile.cpp Output profiling data within the summary in JSON format 2019-01-17 13:54:06 +01:00
query_required_privileges.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
query_semantic.cpp Optimize IN list execution 2020-04-21 11:38:38 +02:00
query_variable_start_planner.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
ring_buffer.cpp Remove leftover implementation required by the old storage 2020-03-02 12:45:18 +01:00
rpc_messages.hpp Move RPC to root source directory 2020-01-27 11:50:24 +01:00
rpc.cpp Move RPC to root source directory 2020-01-27 11:50:24 +01:00
skip_list.cpp Add clear method to SkipList 2019-09-13 15:24:14 +02:00
slk_advanced.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
slk_common.hpp Finish SLK implementation 2019-05-02 15:47:38 +02:00
slk_core.cpp Finish SLK implementation 2019-05-02 15:47:38 +02:00
slk_streams.cpp Finish SLK implementation 2019-05-02 15:47:38 +02:00
small_vector.cpp Migrate to C++17 2019-04-23 14:46:44 +02:00
socket.cpp Implement SSL support for servers and clients 2018-06-20 17:56:47 +02:00
storage_v2_constraints.cpp Implement unique constraint functionality in query module 2020-03-02 13:00:04 +01:00
storage_v2_decoder_encoder.cpp Implement durability functionality for unique constraints 2020-03-06 14:14:54 +01:00
storage_v2_durability.cpp Implement durability functionality for unique constraints 2020-03-06 14:14:54 +01:00
storage_v2_edge.cpp Implement all edge filters for storage v2 2019-12-04 10:13:28 +01:00
storage_v2_gc.cpp Implement all edge filters for storage v2 2019-12-04 10:13:28 +01:00
storage_v2_indices.cpp Fix label+property index iteration in v2 2019-11-18 14:54:45 +01:00
storage_v2_name_id_mapper.cpp Implement name to id mapper in storage v2 2019-07-19 11:24:27 +02:00
storage_v2_property_store.cpp Implement IsPropertyEqual for property store 2020-05-20 15:41:13 +02:00
storage_v2_wal_file.cpp Integrate property store 2020-06-01 14:11:11 +02:00
storage_v2.cpp Improve storage unit test 2020-04-01 15:26:44 +02:00
stripped.cpp Remove old storage types 2020-01-23 14:32:33 +01:00
test_lcp.lisp LCP: Small test fixes 2019-05-10 16:10:17 +02:00
typed_value.cpp Migrate tests to storage v2 part 1 2019-11-21 19:00:32 +01:00
utils_algorithm.cpp Add new PrintIterable to utils algorithm 2019-05-06 14:51:32 +02:00
utils_exceptions.cpp Extract utils into mg-utils static library and explicitly list tests 2018-05-30 09:41:56 +02:00
utils_file.cpp Add utils::InputFile wrapper 2019-09-12 16:30:11 +02:00
utils_math.cpp Add logarithmic functions 2019-01-17 14:26:16 +01:00
utils_memory.cpp Fix MonotonicBufferResource buffer growth 2019-10-15 15:04:35 +02:00
utils_on_scope_exit.cpp utils::auto_scope refactor 2017-08-11 09:43:10 +02:00
utils_rwlock.cpp Cleanup locks 2019-07-17 10:33:44 +02:00
utils_scheduler.cpp Extract utils into mg-utils static library and explicitly list tests 2018-05-30 09:41:56 +02:00
utils_signals.cpp Extract utils into mg-utils static library and explicitly list tests 2018-05-30 09:41:56 +02:00
utils_string.cpp Add utils::Substr which can use different allocator 2019-06-03 17:07:50 +02:00
utils_synchronized.cpp Implement Synchronized<T> utility 2019-07-22 14:55:21 +02:00
utils_timestamp.cpp Extract utils into mg-utils static library and explicitly list tests 2018-05-30 09:41:56 +02:00