Summary:
Resolved the bug where edge filters with no edge-types dont accept any edge.
Illustrated with the following queries:
CREATE ()-[]->()
MATCH ()-[]->()
(produces 0 results, expected 1)
Reviewers: mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D265
Summary:
Generate symbols for aggregation results.
Plan aggregation in WITH clause.
Plan aggregation in RETURN clause.
Extract handling write clauses to a function.
Reviewers: mislav.bradac, florijan
Reviewed By: mislav.bradac, florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D236
Summary:
- Aggregation LogicalOperation added, with tests.
- Added capabilities to TypedValue (hash, bool-equality)
to support std::unordered_map<TypedValue>.
- Removed some bad code from utils/hashing/fnv and added
a hashing function for collections.
Reviewers: buda, mislav.bradac, teon.banek
Reviewed By: teon.banek
Subscribers: lion, pullbot
Differential Revision: https://phabricator.memgraph.io/D252
Summary:
Made all LogicalOperators const correct.
Fixed one LogicalOperator test.
Added explicit return values to Frame and SymbolTable at and [] methods.
Reviewers: teon.banek
Reviewed By: teon.banek
Differential Revision: https://phabricator.memgraph.io/D259
Summary:
Replace includes in operator.hpp with forward declarations.
Provide basic documentation for remaining operators.
Use SwitchOld on accessors used in Expand and Filter operations.
Add SwitchOld and SwitchNew to ExpressionEvaluator.
Evaluate new or old state in operators.
Test operators use correct accessors.
Add some basic tests for cases where switching accessors to old and new
matters.
Reviewers: mislav.bradac, buda, florijan
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D208
Summary:
Query::Plan::RemoveProperty op added and tested
Query::AST:: Remove added to cypher main visitor. Tested. Grammar corrected on missing whitespace in removeItem production
Reviewers: buda, mislav.bradac, teon.banek
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D202
Summary: Changing mvcc again. This should be double-checked since it's quite a substantial change. The test here tests for the new behaviour - which should be correct.
Reviewers: matej.gradicek, dtomicevic, buda
Reviewed By: matej.gradicek, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D156
Summary:
`Where` can now be constructed in a `QUERY`, instead of requiring manual
addition to `Match`. For example:
auto query = QUERY(MATCH(pattern), WHERE(expr), ...);
compared to:
auto match = MATCH(pattern);
match->where_ = WHERE(expr);
auto query = QUERY(match, ...);
Similarly, `AS` can be used instead of `NEXPR` to create
`NamedExpressions` only with a name. This is meant to be used with
`RETURN` which will look at the previous `Expression` and store it
inside `NamedExpression`. For example:
auto ret = RETURN(IDENT("n"), AS("n"),
PROPERTY_LOOKUP("n", prop), AS("prop_val"));
compared to:
auto ret = RETURN(NEXPR("n", IDENT("n")),
NEXPR("prop_val", PROPERTY_LOOKUP("n", prop)));
Reviewers: florijan, mislav.bradac
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D195
Summary: Bolt PullAll works. ChunkedBuffer is implemented by the specification (the tests can be found in the tests/unit/bolt_chunked_buffer.cpp). Bolt session states method are refactored (all run methods have only one argument - active Session). Modifications related to the style guide.
Reviewers: mferencevic
Reviewed By: mferencevic
Subscribers: pullbot, buda
Differential Revision: https://phabricator.memgraph.io/D180
Summary:
Inline and remove GenProduce.
It doesn't do anything useful, so instantiating `Produce` can be done
inline.
Add dummy MakeCursor overrides for set operators so that the build passes.
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D193
Summary: CreateExpand now puts both node and edge on the frame. This is not unit-tested because it would require an infrastructure change, and the code is quite simple.
Reviewers: teon.banek, buda, mislav.bradac
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D187