f0422c0e117dd0d622174f2e26fe57dbef8fc483
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
memgraph
Memgraph is an ACID compliant high performance transactional distributed in-memory graph database featuring runtime native query compiling, lock free data structures, multi-version concurrency control and asynchronous IO.
dependencies
Memgraph can be compiled using any modern c++ compiler. It mostly relies on the standard template library, however, some things do require external libraries.
Some code contains linux-specific libraries and the build is only supported on a 64 bit linux kernel.
- linux
- clang 3.8 (good c++11 support, especially lock free atomics)
- antlr (compiler frontend)
- cppitertools
- fmt format
- google benchmark
- google test
- yaml-cpp
Description
Open-source graph database, built for real-time streaming data, compatible with Neo4j.
cyphergraphgraph-algorithmsgraph-analysisgraph-databasekafkakafka-streamsnosqlopencypherstream-processingstreaming-data
Readme
62 MiB
Languages
C++
70.6%
Python
14.1%
Gherkin
6.7%
Shell
2.9%
Common Lisp
1.5%
Other
4.2%