Summary:
A new variable has been added to CMakeLists -- `PREFERRED_DEBUGGER`.
Here, you can specify which debugger you are using, so that the compiler
produces tuned debug builds for that debugger. Currently only 'gdb' and
'lldb' are supported, since we use 'gcc' and 'clang' compilers.
Unsupported combination of `PREFERRED_DEBUGGER` and used compiler is
displayed as a warning, and the build uses default debug flags.
Reviewers: florijan, mislav.bradac, dgleich, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D426
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
Summary:
File buffer added
Implemented little more of snapshoter.
Resolved conflicts
More stuff implemented of snapshot durability.
More things in snapshoter.
Refactored, added comments
Merge branch 'dev' into durability_snapshot
Merge branch 'dev' into durability_snapshot
Resolved bug in scheduler, snapshoter is running in grpah_db.
Reviewers: mferencevic, buda, dgleich, mislav.bradac
Reviewed By: mferencevic, buda, dgleich, mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D232
Summary:
Bolt buffer is now a template.
Communication worker now has a new interface.
Fixed network tests to use new interface.
Fixed bolt tests to use new interface.
Added more functions to bolt decoder.
Reviewers: dgleich, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D256
Summary:
Add join function to functions.cmake
This is a convenience function which will join a list of values by
replacing ';' with the given separator.
cmake: Add fetching compile flags in gcc format
This is a utility function which takes all target compilation flags that
can be passed to gcc or clang.
Generate flags for PlanCompiler via cmake
Cmake will now collect all compiler options and definitions which are
then stored in a generated `query/plan_compiler.hpp`. The generated file
is not tracked by git and is stored inside cmake's build directory. The
file is fast to generate and may change often depending on the build
type.
Additionally, link and include directories are also generated as
absolute paths. In the future, we may want to support relative paths so
that copying/installing the build dir creates runnable binaries.
Add -Wall flag for all build types
Lowercase #pragma once in tests for network_common
It seems 'once' may be case sensitive, since clang outputs a warning for
it that the pragma is unknown.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D107
Summary:
Coverage is by default set to OFF, but the new option can be used for convenient
toggle when building.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D109
Summary:
Makes cmake aware that parser source files are generated, so that it can
know how to set the dependencies for the underlying build tool. When the
files do not exist, invoking e.g. `make` will also run antlr to generate
them. Files will be regenerated only if their dependency changed
(Cypher.g4 file in this case).
Reviewers: buda, florijan
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D94
Summary:
#1 Hardcoded query integration test was failling because the .so files couldn't be linked, because of wrong compiled directory path (missing config flag).
#2 Hardcoded query not working in production because typed_value changed so some includes didn't work.
Reviewers: florijan, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D90
Summary:
Add detecting and blocking in-source builds
A simple cmake function, which detects if the source and build dir are
one and the same. This unfortunately does not catch the case when the
build dir is inside the source dir, since we actually want to support
that. For example, creating a 'build' directory inside the project
source directory should be allowed.
Add a clean_all custom target in cmake
This target will clean all the files inside the build directory. It
should be used with care!
A new cmake module is created, since invoking cmake -E remove_directory
will delete the directory and we want to keep it. This way, we also
avoid using platform specific shell command, i.e `rm -rf` and we can
make clean_all smarter in the future.
Untrack build/.gitignore from git
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D92
Summary:
Moved server and worker from bolt to communication. Started
templatization.
Started removal of Bolt class.
Removed unnecessary files from network.
Converted states to template functions.
Bolt::Session is now a template.
Merge remote-tracking branch 'origin/dev' into mg_refactor_network
Merged bolt_serializer.cpp into hpp.
Removed obsolete include.
Initial version of bolt session unit test.
Uncommented leftover log commands.
Reimplemented io::Socket.
Added client-stress.sh script.
Reviewers: dgleich, buda
Reviewed By: dgleich, buda
Subscribers: pullbot, mferencevic, buda
Differential Revision: https://phabricator.memgraph.io/D64
Summary: database/GraphDbAccessor and storage/...Accessor now returns iterators over lazily created Accessors (filtered on visibility). Dependecies and forward declarations reorganized to support new code
Reviewers: buda, teon.banek
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D83
Summary:
Rename TypedValue to PropertyValue.
Move original TypedValue to query/backend/cpp.
Fix undefined behaviours and memory leaks in PropertyValue.
Add list type to PropertyValue.
Operators and appropriate tests will be revised in following commits.
Fix bugs in TypedValue
Fix bugs in typed value
Reviewers: buda, florijan
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D77
Summary: For each hardcoded query plan there is a build target -> that will improve Memgraph's testability + update of release script (release/alpha.sh)
Reviewers: florijan, mislav.bradac, mferencevic, dgleich
Reviewed By: dgleich
Subscribers: pullbot, buda
Differential Revision: https://phabricator.memgraph.io/D75
Summary:
Adding ccache option improves each additional build time by a big factor.
Example of performance, modification to a header file:
src/io/network/socket.hpp
without ccache:
real 0m26.950s
user 1m18.636s
sys 0m6.160s
with ccache:
real 0m10.644s
user 0m30.616s
sys 0m4.548s
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D63