Teon Banek
dbe5ffc4ea
Raise if Abs
function got a boolean
...
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D289
2017-04-18 13:28:34 +02:00
florijan
231b84e834
Query::Plan - Reconstruct fails after delete
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D287
2017-04-18 12:25:41 +02:00
florijan
21770e2aca
Query::Plan::Aggregate - first value type check bugfix
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D285
2017-04-18 09:46:43 +02:00
Teon Banek
ffade52fca
Remove unused query exceptions
...
Reviewers: florijan, mislav.bradac, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D283
2017-04-18 09:20:01 +02:00
Matej Ferencevic
f05fcd91c3
Refactored bolt session to use new decoder.
...
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
2017-04-15 16:35:09 +02:00
Dominik Gleich
db30e72069
Change back to seq_cst memory ordering.
...
Summary: This probably made the sl_simulation test hang. We'll update it to this for now and see how it will behave in the future.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D284
2017-04-14 17:50:08 +02:00
Dominik Gleich
461ea65ad4
Deferred deleter added.
...
Summary:
Add tests.
Merge branch 'dev' into remove_locks
Everything works. Refactor complete.
Documentation:
https://phabricator.memgraph.io/w/memgraph_implementation/indexing/
Reviewers: buda, mislav.bradac, florijan
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D258
2017-04-14 17:46:16 +02:00
florijan
0a09a6ac64
Storage, Query - deletion bugfix and improvements
...
Summary:
Multiple attempts to delete a record dont crash anymore.
Deleting a vertex and its blocking edge in the same delete op now supported.
Utils::Assert - permanent_fail bug fix
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D282
2017-04-14 16:34:38 +02:00
florijan
3d0181b28b
Query::Plan::Aggregation - optional input bugfix
...
Reviewers: teon.banek, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D280
2017-04-14 15:06:24 +02:00
Mislav Bradac
bba20cf89c
Remove unneccessary files from utils
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D276
2017-04-13 17:55:33 +02:00
florijan
59a9aaea16
Query::Context - removed some junk
...
Reviewers: teon.banek, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D278
2017-04-13 16:49:18 +02:00
Teon Banek
67b7428e5e
Reset in_create_node flag during symbol generation
...
Reviewers: florijan, mislav.bradac
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D279
2017-04-13 16:44:51 +02:00
Teon Banek
15d5328957
Check if aggregation is used in right clause
...
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D274
2017-04-13 13:31:52 +02:00
florijan
d9e02d624d
Query::TypedValue - equality, functionality
...
Summary:
Changed the equality to always return Null or Bool TypedValue and never throw.
Changed BoolEquality to use the new raw equality.
Added equality, BoolEquality and hash support for Type::Map.
Added tests for new stuff.
Reviewers: teon.banek, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D273
2017-04-13 11:50:47 +02:00
Teon Banek
3b27b20992
Reorganize query directory tree
...
Summary:
Move query/frontend/interpret to query/interpret.
Split interpret.hpp to frame.hpp and eval.hpp.
Move query/frontend/logical to query/plan.
Nest namespace frontend::opencypher inside query.
Reviewers: florijan, mislav.bradac, buda
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D272
2017-04-13 11:28:11 +02:00
florijan
c89c65a748
Query::Plan::Aggregate - count edge-case fix
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D270
2017-04-13 08:30:34 +02:00
Dominik Gleich
afbec0a26e
Test GarbageCollector in skiplist.
...
Summary: Tests the skiplist GC.
Reviewers: florijan, mferencevic, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D145
2017-04-12 17:02:29 +02:00
Teon Banek
596b015e99
Correctly check variables inside property maps
...
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D271
2017-04-12 16:44:16 +02:00
Mislav Bradac
55ef48c78e
Add antlr error description to SyntaxException
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D269
2017-04-12 15:51:21 +02:00
Teon Banek
b69c162c9f
Add base QueryException class
...
Summary:
Also, inherit `TypedValueException` from `BasicException` instead of
`StacktraceException`.
This is meant as a basic API change, so that catching query exceptions becomes
simpler. The error message can be obtained from `what` method, inherited from
`BasicException`. In the future, we may extend the `QueryException`. It could
take column/row position in query source, as well as other information. Then
provide (or override `what`) a method to format the error message nicely for
the user.
Reviewers: florijan, buda, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D267
2017-04-12 15:35:51 +02:00
florijan
ea202dc52a
Query::Plan::EdgeFilter bugfix
...
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
2017-04-12 13:47:27 +02:00
Teon Banek
355b9a9b9a
Plan aggregation in WITH and RETURN clauses
...
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
2017-04-12 13:22:23 +02:00
Teon Banek
6cb1cdc607
Raise if setting label/property in CREATE on declared node
...
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D266
2017-04-12 11:11:27 +02:00
Teon Banek
6ed297e1d9
Remove src/query/util.hpp
...
Summary:
`query/util.hpp` isn't used anywhere, but in `copy_hardcoded_queries.cpp`. That
file may be removed in the future, but for now it is needed.
Reviewers: mislav.bradac, florijan, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D261
2017-04-12 10:20:59 +02:00
Mislav Bradac
36129cdcae
Implement simple function conversion
...
Reviewers: buda
Reviewed By: buda
Subscribers: florijan, teon.banek
Differential Revision: https://phabricator.memgraph.io/D264
2017-04-11 19:14:08 +02:00
florijan
1273cea870
EdgeAccessor::is_cycle added. Query::Plan::Expand fixed
...
Reviewers: mislav.bradac
Reviewed By: mislav.bradac
Differential Revision: https://phabricator.memgraph.io/D262
2017-04-11 15:52:01 +02:00
florijan
593e4e72b9
Query::Plan::Aggregate
...
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
2017-04-11 15:12:06 +02:00
Mislav Bradac
dfa6800edd
Add aggregation conversion from antlr to ast
...
Reviewers: teon.banek
Reviewed By: teon.banek
Differential Revision: https://phabricator.memgraph.io/D260
2017-04-11 14:55:26 +02:00
florijan
7981bd19e0
Query::Plan - const correctness
...
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
2017-04-11 14:27:56 +02:00
Mislav Bradac
d92caf1163
Check clauses ordering
...
Reviewers: buda, florijan, teon.banek
Reviewed By: buda, teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D257
2017-04-11 12:30:17 +02:00
Teon Banek
804d0b09b9
Move typed_value to query top level and namespace it
...
Summary:
Upgraded old uses of TypedValue.
Also, implemented operator<< for EdgeAccessor and VertexAccessor.
Reviewers: buda, florijan, mislav.bradac, mferencevic
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D251
2017-04-11 08:50:46 +02:00
Mislav Bradac
b7ee09785b
Implement IS NULL and IS NOT NULL
...
Reviewers: teon.banek, florijan
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D254
2017-04-10 16:55:58 +02:00
Dominik Gleich
fd2780155a
Refactor GC to use scheduler.
...
Reviewers: buda, matej.gradicek
Reviewed By: matej.gradicek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D247
2017-04-10 15:57:45 +02:00
Teon Banek
9855621c9e
Fix planning CREATE with expanding a created node
...
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D253
2017-04-10 15:11:23 +02:00
Teon Banek
7d0958b1a4
Add PreVisit method to utils::Visitor
...
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D242
2017-04-10 15:03:02 +02:00
Dominik Gleich
e8fd479bbc
Fix memory leak. Refactor mvcc. Revert commit function to old and introduce new one.
...
Summary:
Update tests.
Documentation:
https://phabricator.memgraph.io/w/memgraph_implementation/mvcc/
Reviewers: mislav.bradac, florijan, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D227
2017-04-10 12:16:03 +02:00
Teon Banek
64d0163aad
Handle QueryRuntimeException in AM-REPL
...
Reviewers: florijan
Reviewed By: florijan
Differential Revision: https://phabricator.memgraph.io/D250
2017-04-10 09:13:14 +02:00
Mislav Bradac
7a58ec5afb
Fix bug in parenthesized expression
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D249
2017-04-07 18:33:07 +02:00
Matej Ferencevic
db740fb9fc
Started working on network hang fix.
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot, mislav.bradac
Differential Revision: https://phabricator.memgraph.io/D228
2017-04-07 17:09:58 +02:00
Dominik Gleich
2032466e2a
New version of scheduler.
...
Summary: New scheduler declaration.
Reviewers: matej.gradicek, buda
Reviewed By: matej.gradicek
Differential Revision: https://phabricator.memgraph.io/D246
2017-04-07 11:55:10 +02:00
Dominik Gleich
74740dd162
Fix gradiceks mess.
...
Summary: Fix fix fix.
Reviewers: matej.gradicek
Reviewed By: matej.gradicek
Differential Revision: https://phabricator.memgraph.io/D245
2017-04-07 10:55:40 +02:00
Matej Ferencevic
22dfe61fe1
Added socket write verification to bolt buffer.
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D199
2017-04-07 10:06:55 +02:00
Dominik Gleich
e8fe25bc61
Remove move constructor and delete move =
...
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D237
2017-04-06 14:38:48 +02:00
Matej Ferencevic
e5c814e022
First version of new bolt decoder and tests.
...
Summary:
Extracted constants to codes.hpp.
Extracted bolt constants.
Extracted StreamBuffer and fixed data type.
Extracted bolt testdata.
Added bolt buffer and tests.
Added bolt decoder buffer and tests.
Renamed bolt testdata.
Reviewers: dgleich, buda, matej.gradicek
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D220
2017-04-06 14:30:19 +02:00
Teon Banek
aa6cae0b16
Plan WITH clause without aggregation
...
Summary: Generate symbols for WITH clause.
Reviewers: florijan, mislav.bradac, buda
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D231
2017-04-06 14:10:28 +02:00
Dominik Gleich
919258d6f6
Fix integration_engine crash.
...
Summary:
This should fix the integration query engine test. I'm not exactly sure what caused the SEGFAULT to occur, but from my debugging sessions; I would say, as an educated guess that it's closely related to logger. What I believe happens is that logger gets somehow initialized from the dynamic_library when it's opened. And when the library is closed the corresponding logger is freed, but, other parts of memgraph still see that instance of logger and trying to use to emit code makes the whole thing crash. I've removed one include of logger from something which gets included in the hardcoded queries, but I noticed there are some more.
I've changed the dlopen to now open with DEEPBIND, which should cause symbols to be resolved locally and not globally and stop the logger from the dynamic lib to interfer with the one used in the rest of memgraph.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D234
2017-04-06 11:49:12 +02:00
florijan
feee6ed80e
Query::Plan::Aggregate API
...
Reviewers: mislav.bradac, buda, teon.banek
Reviewed By: mislav.bradac, teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D229
2017-04-06 09:38:24 +02:00
Mislav Bradac
f7f44a3e81
Bug fix in interpreter (dynamic wrong cast type)
...
Reviewers: buda, florijan
Reviewed By: buda
Differential Revision: https://phabricator.memgraph.io/D233
2017-04-05 18:03:09 +02:00
Dominik Gleich
8c7ed8c186
Add edge_types indexes.
...
Summary: Refactor label_index. Also add edge_type indexes.
Reviewers: mislav.bradac, florijan
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D217
2017-04-05 17:23:12 +02:00
Mislav Bradac
a0049c9691
Convert With clause from antlr to high level ast
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D230
2017-04-05 16:22:46 +02:00
florijan
4c73a0a71c
Query::Plan::Accumulate[Advance] implementation and test
...
Summary: see above
Reviewers: teon.banek, buda, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D226
2017-04-05 15:04:58 +02:00
matej.gradicek
5243ab00c2
Scheduler and tests.
...
Reviewers: dgleich, buda
Reviewed By: dgleich, buda
Subscribers: pullbot, matej.gradicek
Differential Revision: https://phabricator.memgraph.io/D213
2017-04-05 08:43:43 +00:00
florijan
263749508c
Query::Plan - WITH API
...
Reviewers: teon.banek, buda
Reviewed By: teon.banek
Differential Revision: https://phabricator.memgraph.io/D224
2017-04-05 10:35:28 +02:00
Teon Banek
b33b671505
Plan multiple MATCH clauses and multiple patterns
...
Reviewers: mislav.bradac, florijan
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D218
2017-04-05 09:23:03 +02:00
Mislav Bradac
6112454b08
Throw exception on trailing text in query
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D222
2017-04-04 18:48:55 +02:00
Mislav Bradac
a58e269176
Fix bugs needed to run qa tests
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D216
2017-04-04 17:28:08 +02:00
florijan
e2949a88ce
Storage::EdgeAccessor::set_edge_type removed
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D221
2017-04-04 16:58:30 +02:00
florijan
9eb4428023
Query::Plan::ScanAll accepts optional input (for cartesian)
...
Reviewers: buda, mislav.bradac, teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D219
2017-04-04 16:58:05 +02:00
florijan
bffc406662
Query::Plan - ExpansionUniquenessFilter
...
Reviewers: buda, mislav.bradac, teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D214
2017-04-04 12:20:01 +02:00
Teon Banek
c09d237e05
Use doxygen style comments for Visitor and Visitable
...
Summary: Update the documentation to be picked up by doxygen. Additionally, don't use anonymous namespace in header file.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D212
2017-04-03 16:17:54 +02:00
florijan
0a47bace72
Query::Interpreter-added support for missing ops
...
Reviewers: teon.banek, buda
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D215
2017-04-03 16:11:36 +02:00
Teon Banek
05d19f6218
Use new/old on Accessor in logical operators
...
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
2017-04-03 15:37:06 +02:00
florijan
9ce2081103
Storage::RecordAccessor - added multiple pointers to RecordAcessors and switching capabilities. Rewired GraphDbAccessor and VersionList accordingly. Added tests for new RecordAccessor functions.
...
Reviewers: teon.banek, dtomicevic, mislav.bradac, dgleich, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D207
2017-04-03 12:29:56 +02:00
Dominik Gleich
863f55dc2f
Labels implementation.
...
Summary: Labels implementation
Reviewers: buda, teon.banek
Reviewed By: buda, teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D201
2017-04-03 11:50:22 +02:00
Dominik Gleich
3ad55dd352
Fix config include in GC. This somehow breaks integration_query_engine. Argh.
...
Reviewers: mislav.bradac, mferencevic
Reviewed By: mferencevic
Differential Revision: https://phabricator.memgraph.io/D211
2017-03-31 16:59:24 +02:00
Dominik Gleich
4a6d17658c
Fix unnecessary multiple inserts.
...
Summary: Unnecessary inserts into skiplist. Skiplist when calls insert alredy blocks untill it inserts or finds that record.
Reviewers: mislav.bradac, teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D210
2017-03-31 14:02:54 +02:00
Dominik Gleich
67d916e459
Logger fix.
...
Summary: This should be a temporary fix for logger. We won't emit anything. This is useful in case tests don't initialize logger.
Reviewers: mferencevic, buda, teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D209
2017-03-31 13:00:43 +02:00
Teon Banek
a3da7cd5a8
Plan Remove operators
...
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D203
2017-03-30 13:56:25 +02:00
florijan
078b50a154
Storage::RecordAccessor - added SwitchNew, SwitchOld and Reconstruct API and placeholder implementations
...
Reviewers: teon.banek, mislav.bradac, buda
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D205
2017-03-30 13:49:17 +02:00
florijan
d3692d439c
Query::Plan::Operator - split into hpp and cpp
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D204
2017-03-30 13:48:16 +02:00
Dominik Gleich
cac422f6a8
Fix conditional wait.
...
Summary: It could happen that the garbage collector waits for the sleep period before exiting thread since notify_one wasn't done after mutex locking.
Reviewers: mislav.bradac
Reviewed By: mislav.bradac
Differential Revision: https://phabricator.memgraph.io/D206
2017-03-30 13:26:08 +02:00
Matej Ferencevic
3d2b37ed35
Split bolt encoder into two.
...
Summary:
Added temporary_id to record_accessor.
Added ID encoding to encoder.
Reviewers: florijan
Reviewed By: florijan
Subscribers: pullbot, matej.gradicek
Differential Revision: https://phabricator.memgraph.io/D197
2017-03-30 09:59:47 +02:00
florijan
5134a94f1c
Query::Plan - RemoveLabels added and tested
...
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
2017-03-30 08:53:18 +02:00
Dominik Gleich
bd0b81526e
Initial version of mvcc_gc.
...
Summary:
Tested MVCC garbage collector.
Also refactors graph_db forward declarations of vertex and edge which were causing issues.
Reviewers: mislav.bradac, dtomicevic, florijan, teon.banek, buda
Reviewed By: teon.banek, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D177
2017-03-29 12:38:24 +02:00
Dominik Gleich
45999d04be
Fix mvcc bug.
...
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
2017-03-29 10:50:52 +02:00
Teon Banek
9d3b4aab4b
Make Where and NamedExpression macros easier to use
...
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
2017-03-29 09:09:54 +02:00
florijan
af8df9e282
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.
...
Reviewers: buda, teon.banek, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D194
2017-03-29 08:51:12 +02:00
Marko Budiselic
d00c08bf15
Bolt PullAll works.
...
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
2017-03-28 12:43:04 +02:00
Teon Banek
68e94e64e4
Plan set operations
...
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
2017-03-28 12:23:52 +02:00
Mislav Bradac
e40bd83636
Add SET conversion from low to highlevel ast
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D192
2017-03-28 10:56:20 +02:00
Teon Banek
7c36529aec
Move Variable::Type to Symbol
...
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D191
2017-03-28 10:43:53 +02:00
florijan
7b81b2b132
Query::Plan::Set - set ops API defined. ConsoleTest random graph generation modified
...
Reviewers: teon.banek, mislav.bradac, buda
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D190
2017-03-28 09:39:06 +02:00
Teon Banek
d9500337f2
Add planning Delete operation
...
Reviewers: florijan, mislav.bradac
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D188
2017-03-27 16:30:35 +02:00
Teon Banek
4bfae46150
Add basic planning of WHERE
...
Summary:
Add testing unbound variable in WHERE
Remove some duplication in planner tests
Reviewers: florijan, mislav.bradac
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D186
2017-03-27 16:02:24 +02:00
florijan
d387651205
Query::Plan::Produce - added support for Produce without input
...
Reviewers: teon.banek, buda
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D189
2017-03-27 15:55:25 +02:00
florijan
34cdbc2f39
Query::Plan::CreateExpand frame bugfix
...
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
2017-03-27 15:32:50 +02:00
florijan
1280e77fd3
Query - Logical - Delete op added and tested. Minor refactors.
...
Reviewers: buda, teon.banek, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D184
2017-03-27 14:57:44 +02:00
florijan
eca90c43b3
Query - LogicalOp - Filter op added
...
Reviewers: buda, teon.banek, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D176
2017-03-27 13:16:58 +02:00
Mislav Bradac
1cf4b95c58
Add ast nodes for SET clause
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D182
2017-03-27 11:41:04 +02:00
Mislav Bradac
6a547839e1
Where and delete from antlr to highlevel ast
...
Reviewers: teon.banek
Reviewed By: teon.banek
Differential Revision: https://phabricator.memgraph.io/D181
2017-03-27 10:18:08 +02:00
Mislav Bradac
9c7acf780c
Implement expression evaluation
...
Reviewers: buda
Reviewed By: buda
Differential Revision: https://phabricator.memgraph.io/D179
2017-03-24 17:44:05 +01:00
florijan
3a07a95f61
Query - EdgeFilter - test improvements and bugfix
...
Summary: EdgeFiltering on type was implemented wrong, requiring ALL the given edge types to be satisfied instead of OR. Added a test and fixed implementation. Also resolved a few TODOs in EdgeFilterTest.
Reviewers: buda, teon.banek, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D170
2017-03-24 14:18:05 +01:00
florijan
f9b91cf680
Query - Logical - CreateNode now accepts an optional input. If provided, CreateNode creates a node for each successful Pull from input. If not provided, CreateNode creates a single node
...
Reviewers: buda, mislav.bradac, teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D173
2017-03-24 14:17:32 +01:00
florijan
63aae05ec0
GraphDbAccessor - DetachRemove - commands re-ordered for better (assumed) efficiency
...
Summary: See above
Reviewers: buda, dtomicevic
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D174
2017-03-24 14:17:04 +01:00
florijan
2215173a58
Utils - random graph generator hacked
...
Summary: RandomGraphGenerator added
Reviewers: teon.banek, mislav.bradac, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D165
2017-03-24 13:13:04 +01:00
Teon Banek
35668d5b9f
Make GNU Readline dependency optional
...
Reviewers: florijan, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D171
2017-03-24 12:42:45 +01:00
Dominik Gleich
087c56315e
Fix engine.
...
Summary:
Test engine update.
https://docs.google.com/document/d/1rnFsCFock-K3ZbuvMiCYWhGS_m7-DZV37JtxWRClD_8/edit
Reviewers: mislav.bradac, dtomicevic, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D167
2017-03-24 12:37:01 +01:00
Teon Banek
c2c34336c3
Split symbol_generator.hpp to .cpp
...
Reviewers: florijan, mislav.bradac
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D172
2017-03-24 12:07:42 +01:00
florijan
11eb643a5e
Query - REPL fixes
...
Summary: Minor fixes.
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D168
2017-03-24 09:50:53 +01:00
Teon Banek
99a9bf5901
Abstract reducing a pattern to a function
...
Reviewers: mislav.bradac, florijan, buda
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D162
2017-03-24 08:34:31 +01:00
Mislav Bradac
f146c458be
Implement opencypher to ast expression conversion
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D164
2017-03-23 16:46:15 +01:00
florijan
f304dfef28
Query Console implemented
...
Summary: buda, teon.banek, mislav.bradac
Reviewers: mislav.bradac, buda, teon.banek
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D163
2017-03-23 15:51:25 +01:00
Marko Budiselic
e9357ea13b
Bug fix implicit conversion from PropertyValue to TypedValue.
...
Summary: Bug fix implicit conversion from PropertyValue to TypedValue.
Reviewers: mislav.bradac
Reviewed By: mislav.bradac
Subscribers: buda
Differential Revision: https://phabricator.memgraph.io/D160
2017-03-22 19:40:11 +01:00
Marko Budiselic
3b42cd2579
Everything is merged (communication + query engine) but we have to fix the PULL_ALL issue.
2017-03-22 17:57:06 +01:00
Matej Ferencevic
5a5ffface3
Modified hardcoded queries to use new encoder.
...
Summary:
Removed old encoder.
Changed namespace from bolt to communication::bolt.
Removed old include from new encoder.
Added an empty message success to encoder.
Changed order in communication::Server.
Changed bolt session to use new encoder.
Merge remote-tracking branch 'origin/dev' into mg_hardcoded_queries
Fixed PrintRecordStream.
Reviewers: buda, dgleich
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D158
2017-03-22 17:09:22 +01:00
florijan
b236694fd2
Query - entry.hpp renamed to interpreter.hpp, Engine renamed to Interpreter
...
Summary: Query - interpreter console hack
Reviewers: buda, teon.banek, mislav.bradac
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D157
2017-03-22 16:39:00 +01:00
Matej Ferencevic
3bf0bd40a7
Initial version of new bolt encoder.
...
Reviewers: dgleich, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D104
2017-03-22 16:13:47 +01:00
Teon Banek
8da6ce67c0
Add planning CreateExpand operator
...
Summary: Add planning CreateExpand operator. This is quite similar to planning Expand, but I wouldn't abstract the duplicated parts yet. Also, raise semantic error if creating bidirectional edges
Reviewers: buda, mislav.bradac, florijan
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D155
2017-03-22 15:41:50 +01:00
Dominik Gleich
f505c76189
Fix lock store bug.
...
Summary: Lock store was not locking properly. It created a lock object which was destructed in the end of function scope which caused bits to be set to UNLOCKED.
Reviewers: matej.gradicek, buda
Reviewed By: matej.gradicek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D154
2017-03-22 15:40:37 +01:00
florijan
83c20fd47f
Query - LogicalOp - visitable bug fix
...
Summary: Made CreateExpand visitable (I forgot before landing).
Reviewers: teon.banek
Reviewed By: teon.banek
Differential Revision: https://phabricator.memgraph.io/D153
2017-03-22 14:14:01 +01:00
florijan
981f93d575
Query - ExpandCreate, prop tests, MATCH_CREATE
...
Summary: Query - ExpandCreate op added (with tests). LogicalOp tests have property enabled. MATCH-CREATE test started but disabled due to MVCC.
Reviewers: buda, mislav.bradac, teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D150
2017-03-22 13:41:21 +01:00
Mislav Bradac
33eaf80344
Change thrown exception classes in cypher visitor
...
Reviewers: buda
Reviewed By: buda
Differential Revision: https://phabricator.memgraph.io/D151
2017-03-22 11:19:28 +01:00
Teon Banek
bff671af43
Add planning Expand logical operator
...
Summary:
Make LogicalOperator visitable.
Add unit tests for logical planner.
Add planning Expand logical operators.
Test planning edge expansion.
Add documentation to planner implementation.
Reviewers: florijan, buda, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D147
2017-03-22 10:58:42 +01:00
Teon Banek
b33a654137
Add basic type checking to SymbolGenerator
...
Summary:
Test for simple type mismatch of node/edge types.
Add basic type checking of variables.
Check for edge type when creating an edge.
Add documentation to private structs and methods.
Reviewers: mislav.bradac, buda, florijan
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D148
2017-03-22 10:49:52 +01:00
Dominik Gleich
6be2399ad1
Fix warnings all over the codebase.
...
Reviewers: florijan, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D146
2017-03-22 09:32:06 +01:00
Mislav Bradac
8e7ccf6e83
Extract literals to ast
...
Summary:
Extract literals to ast Literal node
Fix bugs in TypedValue
Add tests for properties to cypher_main_visitor test
Reviewers: buda, florijan, dgleich, teon.banek
Reviewed By: dgleich, teon.banek
Subscribers: dgleich, pullbot
Differential Revision: https://phabricator.memgraph.io/D149
2017-03-21 15:23:54 +01:00
florijan
a2a4c28168
Query - Add expansion LogicalOp and tests
...
Summary: Query - AstTreeStorage - TODO for forwarding resolved
Reviewers: teon.banek, mislav.bradac, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D139
2017-03-21 11:26:05 +01:00
Mislav Bradac
848d022c60
Bug fixes in cypher_main_visitor and add create clause
...
Reviewers: teon.banek, florijan
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D143
2017-03-17 16:47:29 +01:00
Teon Banek
5e6aaf231d
Add tests for symbol generation in CREATE clause
...
Summary:
Add tests for symbol generation in CREATE clause and correctly (hopefully)
check symbols in create clause and properties.
Reviewers: florijan, mislav.bradac, buda
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D135
2017-03-17 15:50:19 +01:00
Mislav Bradac
dd56acf375
Add tests for CypherMainVisitor
...
Summary:
Add tests for CypherMainVisitor
Initialise members to nullptrs in ast.hpp data structures
Preserver users identifier names
Reviewers: teon.banek
Reviewed By: teon.banek
Differential Revision: https://phabricator.memgraph.io/D138
2017-03-17 10:45:13 +01:00
Mislav Bradac
0db7883670
Add AstTreeStorage
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D134
2017-03-16 15:07:22 +01:00
Teon Banek
baa644e9b7
Support creating NodeFilter and CreateOp logical operators
...
Reviewers: mislav.bradac, buda, florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D133
2017-03-16 10:06:01 +01:00
florijan
da0c9c03d6
Query - create implementation started
...
Summary: CreateOp tests
Reviewers: teon.banek, buda, mislav.bradac
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D132
2017-03-16 09:31:04 +01:00
Teon Banek
ffd399906a
Use Symbol to get frame value
...
Summary:
Since we always use the symbol position to read from frame, it's more
convenient for `Frame::operator[]` to accept `Symbol` instead of `int`.
Reviewers: florijan, mislav.bradac, buda
Reviewed By: florijan, buda
Differential Revision: https://phabricator.memgraph.io/D129
2017-03-15 16:31:13 +01:00
Teon Banek
74991c8289
Document and tweak the generic visitor
...
Summary:
Document and tweak the generic visitor
Use the generic visitor for AST visiting
Reviewers: buda, mislav.bradac, florijan
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D128
2017-03-15 16:16:47 +01:00
florijan
6c7372b3c5
Query - AST tests in progress
...
Summary:
Query compiler AST test in progress
Logical operator testing. NodeFilter LogicalOperator added
Reviewers: mislav.bradac, buda, teon.banek
Reviewed By: buda, teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D126
2017-03-15 16:05:23 +01:00
Teon Banek
42e8d339c5
Add tests for symbol generation
...
Summary:
Add tests for symbol generator
Also, remove redundant PreVisit method from AST visitor
Reviewers: mislav.bradac, buda, florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D124
2017-03-15 14:27:21 +01:00
Teon Banek
b956d0812b
Move all query related exceptions to a single file
...
Reviewers: mislav.bradac, buda, florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D125
2017-03-15 14:13:14 +01:00
florijan
1a6aaaed58
DBMS now returns a unique pointer to a GraphDbAccessor
...
Summary: See above.
Reviewers: mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D120
2017-03-14 13:37:23 +01:00
florijan
09999e877f
RecordAccessor uses pointers for storage so it's move/copy assignable
...
Summary: See above.
Reviewers: buda, teon.banek, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D118
2017-03-14 13:04:07 +01:00
florijan
2e0cc13813
Produce logical op can now be streamed out by query/entry.hpp. Streaming, header and output functions removed from LogicalOperator
...
Summary: See above.
Reviewers: teon.banek, mislav.bradac, buda
Reviewed By: teon.banek, mislav.bradac, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D117
2017-03-14 12:40:46 +01:00
Teon Banek
de9e4991ac
Rename folders and API in query/logical directory
...
Summary:
Rename typecheck folder to semantic
Rename TypecheckVisitor to SymbolGenerator
Rename Apply to MakeLogicalPlan
Reviewers: florijan, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D119
2017-03-14 12:01:30 +01:00
florijan
1d2d609896
VertexAccessor::in_out() added
...
Reviewers: buda, dgleich
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D100
2017-03-14 07:48:11 +01:00
Mislav Bradac
f626e308c4
Adapt cpyher visitor to changes in AST
...
Reviewers: teon.banek
Reviewed By: teon.banek
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D116
2017-03-13 17:16:58 +01:00
Mislav Bradac
a5a15673de
TypedValue getters return references
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D113
2017-03-13 17:09:05 +01:00
Teon Banek
e9b8dbd205
Adapt logical operators to changes in AST
...
Summary: Logical and semantic parts have been adapted to renames and other changes in AST. Evaluation has been extracted to a visitor class.
Reviewers: florijan, mislav.bradac, buda
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D115
2017-03-13 17:08:03 +01:00
Teon Banek
40e842286d
Rename identifier_ string to name_ inside Identifier
2017-03-13 15:43:55 +01:00
Teon Banek
915688b0d7
Clean up the ast and split base visitor into file
2017-03-13 15:32:53 +01:00
florijan
12c7cdcf0e
Add virtual destructor to TreeVisitorBase
2017-03-13 15:05:16 +01:00
Marko Budiselic
3e0b12f646
Merge branch 'compiler_prototype' into dev
2017-03-13 13:35:23 +01:00
Marko Budiselic
d0abb9f023
Interpreter works!
2017-03-12 03:05:31 +01:00
Marko Budiselic
1f75572d5e
it compilesga -A!
2017-03-12 00:04:10 +01:00
Mislav Bradac
026e0e6fbd
Implement ast generation by cypher visitor
2017-03-11 23:22:38 +01:00
Teon Banek
cfd2eae9d0
Use make_*_ptr to construct pointers
2017-03-11 23:05:38 +01:00
Teon Banek
bce605851d
Handle NamedExpr in TypeCheckVisitor
2017-03-11 21:49:50 +01:00
Marko Budiselic
10062b143c
Interpreter merge.
2017-03-11 21:21:09 +01:00
Marko Budiselic
0eeb1fc5b4
Basic interpreter implementation.
2017-03-11 21:09:26 +01:00
Marko Budiselic
9030454132
Add compiler prototype entry point (work in progress).
2017-03-11 21:02:25 +01:00
Teon Banek
34416bc505
Add basic generation of LogicalOperator tree
2017-03-11 20:49:22 +01:00
Teon Banek
fbf70de089
Add type checker which fills symbols for Ident
2017-03-11 18:04:48 +01:00
Mislav Bradac
8d8a1cef6a
Add basic ast types
2017-03-11 15:52:08 +01:00
Teon Banek
3adce8313c
Add default constructor for Symbol
...
SymbolTable should probably have different methods for adding a Symbol
to the table, instead of [] operator.
2017-03-11 15:39:02 +01:00
Teon Banek
425e1f8907
Correct iterator usage
2017-03-11 15:38:03 +01:00
Teon Banek
7d883ff008
Remove using uptr and sptr
2017-03-11 14:42:11 +01:00
Teon Banek
ef764e0367
Add ProduceCursor and Evaluate to expression
2017-03-11 14:39:13 +01:00
Marko Budiselic
1428ce0639
Add basic interpreter skeleton.
2017-03-11 13:47:11 +01:00
Dominik Gleich
4a220411e1
Fix warnings.
...
Reviewers: buda, mferencevic
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D110
2017-03-10 21:36:55 +01:00
Teon Banek
333861e7e9
Generate flags for PlanCompiler via cmake
...
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
2017-03-10 18:21:31 +01:00
Mislav Bradac
725ebd1a0e
int -> int64_t in in Typed and PropertyValue
...
Reviewers: buda, mferencevic
Reviewed By: buda, mferencevic
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D106
2017-03-09 11:44:10 +01:00
Dominik Gleich
b4d88ddcde
Dynamic lib seems to be unloading normally now.
...
Turning it on again so if something breaks in the future because of it I'll investigate.
Summary:
Merge branch 'dev' into dynamic_lib_add
Merge branch 'dev' into dynamic_lib_add
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D99
2017-03-08 18:47:16 +01:00
Dominik Gleich
97aa4b92e1
Static bitset with tests created.
...
Summary:
After manual merge of dev.
Merge branch 'dev' into separate_bitset
Include bitset in template.
Merge branch 'dev' into separate_bitset
Reviewers: florijan, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D97
2017-03-08 17:13:20 +01:00
florijan
971e006d13
Query stripping now uses a parse tree and differentiates between int literals in a range expression (not stripped) and outside of a range (stripped).
...
Summary: See above
Reviewers: buda, mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D98
2017-03-08 14:19:55 +01:00
Mislav Bradac
00d818c762
Implement expression code generator
...
Summary: Work in progress, this is not usable yet
Reviewers: florijan
Reviewed By: florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D84
2017-03-08 14:10:16 +01:00
Dominik Gleich
8e1a897b7a
Fix query integration test because of config. Fix hardcoded queries not working because of include bug.
...
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
2017-03-07 12:37:30 +01:00
Dominik Gleich
57f1b40d8d
Refactor transaction inside db_accessor. Also introduce advance_command.
...
Summary:
Modification to MVCC - CHECK!
Refactor transaction_read
Add automatic commit/abort functionality to graph_db_accessor.
Fix failing test in graph_db_accessor.
Reviewers: buda, dtomicevic, florijan
Reviewed By: buda, florijan
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D87
2017-03-07 09:42:04 +01:00
Dominik Gleich
91bd7ccfb6
Fix comments in assert.
...
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D93
2017-03-06 18:19:46 +01:00
Matej Ferencevic
813a3b9eed
Started network refactorization.
...
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
2017-03-06 13:52:34 +01:00
florijan
38c3c513fa
Serialization, record stream refactor in progress. UNSTABLE STATE.
...
Summary: Bolt record stream refactoring. BOLT STACK IN UNSTABLE STATE. RecordStreamMocker also refactored
Reviewers: buda, dgleich, mferencevic
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D88
2017-03-03 14:06:40 +01:00
florijan
2aeef25881
Traversal namespace specialization added for real DB primitives
...
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
2017-03-03 14:01:01 +01:00
florijan
92aa235a26
traversal/test.hpp contents moved to tests/unit/traversal.cpp
...
Summary: See above.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot, florijan, buda
Differential Revision: https://phabricator.memgraph.io/D82
2017-03-02 09:22:54 +01:00
Mislav Bradac
1125331649
Add edge and vertex to TypedValue
...
Summary:
Merge branch 'dev' into mg_full_typed_value
Add Path and Map to TypedValue
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D80
2017-03-01 18:26:56 +01:00
florijan
80c266ce21
Traversal added. Only the core, tests and template specialization is on the way
...
Summary: See above.
Reviewers: buda, dgleich, mislav.bradac
Reviewed By: buda, dgleich, mislav.bradac
Subscribers: pullbot, mislav.bradac, buda, florijan
Differential Revision: https://phabricator.memgraph.io/D67
2017-03-01 16:45:00 +01:00
Mislav Bradac
ccdffa1d7e
Refactor TypedValue to PropertyValue
...
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
2017-03-01 12:31:47 +01:00
Marko Budiselic
082465ff15
For each hardcoded query plan there is a build target -> that will improve Memgraph's testability + update of release script (release/alpha.sh)
...
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
2017-02-28 19:00:59 +01:00
Dominik Gleich
f6529cd4c3
Clique #1 and #2 works.
...
Summary:
Merge branch 'dev' into clique_1
Started implementing clique.
Merge branch 'dev' into clique_1
Add multilne query reload.
Clique 1# implementation.
Merge branch 'dev' into clique_1
Clique #1 and #2 implemented.
Add delete all query. Remove unique from clique.
Reviewers: florijan, mislav.bradac, buda
Reviewed By: florijan, mislav.bradac, buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D73
2017-02-28 12:51:40 +01:00
Marko Budiselic
a32b2831e5
copy hardcoded queries
...
Summary: copy hardcoded queries
Reviewers: dgleich, mislav.bradac, florijan, mferencevic
Reviewed By: dgleich
Subscribers: buda
Differential Revision: https://phabricator.memgraph.io/D74
2017-02-27 18:26:51 +01:00
Dominik Gleich
82414b9111
Fix naming of asserts.runtime_assert & assert -> debug_assert
...
Summary:
Merge branch 'dev' into rename_assert
Fix new files.
Remove cassert.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D66
2017-02-24 11:41:55 +01:00
Dominik Gleich
af23253e7e
Implement less than operator.
...
Summary:
Add test.
Vertex accessor test checks for sortability.
Reviewers: buda, florijan, mislav.bradac
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D62
2017-02-24 10:10:24 +01:00
Mislav Bradac
ca90f813ad
Start implementing compiler structures
...
Summary:
Merge remote-tracking branch 'origin/dev' into mg_compiler_structs
Merge remote-tracking branch 'origin/dev' into mg_compiler_structs
Implement compiler structures and tests
Reviewers: florijan, buda
Reviewed By: buda
Subscribers: pullbot, florijan, buda
Differential Revision: https://phabricator.memgraph.io/D61
2017-02-23 18:12:24 +01:00
Marko Budiselic
d1842571d6
Cpp17 support has been added
...
Summary: Cpp17 support has been added
Reviewers: mferencevic, dgleich, mislav.bradac, florijan
Reviewed By: mislav.bradac
Subscribers: pullbot, buda
Differential Revision: https://phabricator.memgraph.io/D57
2017-02-22 14:28:37 +01:00
Mislav Bradac
7a647dffca
Add overloads for Code and cast enums explicitly
...
Summary:
Cast pack::Code enum to byte and size_t where neccessary. g++ is
confused by some of implicit casts when function has different
valid overloads. There is still problem in states/init.cpp but that file
will disappear after bolt is refactored. Next step towards safe code is
to make Code and Rule enum class.
Reviewers: buda, mferencevic
Reviewed By: buda
Subscribers: pullbot, mferencevic, buda
Differential Revision: https://phabricator.memgraph.io/D58
2017-02-22 12:42:22 +01:00
Dominik Gleich
d72383c0af
Implement record stream mocker.
...
Summary:
Begin record stream mocker implementation.
Record stream mocker alongside tests created.
Test Plan: Run record_stream_mocker in tests.
Reviewers: mislav.bradac, florijan, buda
Reviewed By: buda
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D54
2017-02-21 15:50:10 +01:00
Dominik Gleich
40aa500a88
Improve complexity of union_find, better explain complexity.
...
Summary:
Old union find implementation was not true about it's complexity.
Take a look at http://www.brpreiss.com/books/opus4/html/page411.html#theoremsetsi .
Test Plan: Run union_find in tests.
Reviewers: mislav.bradac, buda
Reviewed By: mislav.bradac
Subscribers: pullbot
Differential Revision: https://phabricator.memgraph.io/D51
2017-02-20 18:57:37 +01:00
Marko Budiselic
4583d8bde3
antlropencypher + youcompleteme update
...
Summary: antlropencypher + youcompleteme update
Test Plan: manual
Reviewers: mislav.bradac
Reviewed By: mislav.bradac
Subscribers: pullbot, mislav.bradac, buda
Differential Revision: https://phabricator.memgraph.io/D52
2017-02-20 14:06:25 +01:00
florijan
68f57fa47d
CMakeLists cleanup w.r.t. Antlr linking. Removed the unused typed_value_store.cpp
...
Summary: See above.
Test Plan: Building tested.
Reviewers: buda
Reviewed By: buda
Subscribers: pullbot, buda
Differential Revision: https://phabricator.memgraph.io/D50
2017-02-20 09:43:58 +01:00
Marko Budiselic
3642fb1312
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
Marko Budiselic
0198b37f21
benchmark folder has been removed from the root dir, README update, measure_time.hpp comments
2017-02-18 14:36:50 +01:00
Marko Budiselic
d4e3c4cd10
clang format has been run on all hpp and cpp files under src and tests
2017-02-18 11:54:37 +01:00
Marko Budiselic
e7f5bd4c21
antlr integration, *.hpp and *.cpp inside src dir, cleanup
...
Summary: antlr integration, *.hpp and *.cpp inside src dir, cleanup
Test Plan: manual
Reviewers: mislav.bradac, dgleich, florijan
Reviewed By: florijan
Subscribers: pullbot, buda
Differential Revision: https://phabricator.memgraph.io/D49
2017-02-17 16:20:31 +01:00
florijan
a11ebef9c5
Properties system and core storage major refactor. STABLE STATE, unit tests added.
2017-02-16 17:43:39 +01:00
florijan
55f1912910
Properties refactoring: STABLE STATE. Memgraph compiles. Properties are out. Tests are in progress.
2017-02-16 15:47:55 +01:00
florijan
70a8b93b0b
Major properties system and database accessor refactor: first stable state (compiles).
2017-02-15 14:10:16 +01:00
florijan
9e09186d30
Properties refactor in progress. Dev merge (query execution landed). UNSTABLE STATE
2017-02-14 10:17:03 +01:00
Marko Budiselic
0fcda94162
Hardcoded query infrastructure - first concrete version - USEFUL FOR: POCs & pilots
...
Summary: Hardcoded query infrastructure - first concrete version - USEFUL FOR: POCs & pilots
Test Plan: manual + jenkins
Reviewers: sale, florijan
Reviewed By: florijan
Subscribers: pullbot, buda
Differential Revision: https://phabricator.memgraph.io/D45
2017-02-14 09:40:31 +01:00
Florijan Stamenkovic
9adf5699d9
Major properties and storage refactoring in progress. UNSTABLE STATE
2017-02-13 09:21:35 +01:00
Florijan Stamenkovic
ee523d5080
Continuing major refactor, UNSTABLE STATE. Merged current dev
2017-02-07 13:22:07 +01:00
Florijan Stamenkovic
b38704391c
Typed-value migration in progress. UNSTABLE STATE
2017-02-06 12:40:55 +01:00
Florijan Stamenkovic
b374ae1dbb
storage and database major refactor in progress, also switching from properties to typed-value system. a lot of overdesigned functionalities cut down, new implementations just started. VERY UNSTABLE STATE
2017-02-04 09:01:56 +01:00
Florijan Stamenkovic
029a3ff09b
Deleted src/api - this is the old HTTP
2017-02-02 15:53:34 +01:00
Florijan Stamenkovic
10c7514c8a
storage/model - added typed_value system and tests. Modified utils slightly (backward compatible).
...
Summary: Added TypedValue system.
Test Plan: ???
Reviewers: sale, buda
Reviewed By: buda
Subscribers: pullbot, florijan, buda, sale
Differential Revision: https://phabricator.memgraph.io/D46
2017-02-02 15:48:16 +01:00
Florijan Stamenkovic
46dbc08d4e
Merge branch 'MG_typed_values-new_implementation' into MG_typed_value_migration
2017-02-02 10:37:01 +01:00
Florijan Stamenkovic
261797ea9c
storage/model/typed_value - fixes after code review
2017-02-02 10:29:14 +01:00
Florijan Stamenkovic
e508482ab9
Deleted storage/model/properties, started refactoring
2017-02-02 09:03:48 +01:00
Florijan Stamenkovic
b329225322
storage/model - added typed_value system and tests. Modified utils slightly (backward compatible).
...
Summary: Added TypedValue system.
Test Plan: ???
Reviewers: sale, buda
Subscribers: florijan, buda, sale
Differential Revision: https://phabricator.memgraph.io/D46
2017-02-01 14:05:08 +01:00
Marko Budiselic
28ad69b536
use of Google Style (clang-format)
...
Summary: use of Google Style (clang-format)
Test Plan: manual
Reviewers: sale
Reviewed By: sale
Subscribers: buda
Differential Revision: https://phabricator.memgraph.io/D39
2017-01-23 12:04:54 +01:00
Florijan Stamenkovic
f097b91430
DownloadProject,idea ignored
...
Summary: as above
Test Plan: manual
Reviewers: buda
Reviewed By: buda
Subscribers: buda
Differential Revision: https://phabricator.memgraph.io/D36
2017-01-17 16:54:31 +01:00
Marko Budiselic
d7de5cfe08
merge + conflict resolution
2017-01-13 11:31:56 +01:00
sale
d475b79a58
Merge
2017-01-11 09:18:10 +00:00
sale
1c1cf1ad88
Review changes fixed
2016-12-28 11:56:53 +00:00
Marko Budiselic
55a62f9640
Bugs from concurrent tests aren't solved. TODO: we have to introduce memory tracker for tests
2016-12-21 21:33:58 +01:00
sale
02f332c34f
Update on Configuration and CppCheck refactor
2016-12-21 17:48:38 +00:00
Marko Budiselic
1ae474d15c
code documantation work in progress
2016-12-21 11:35:04 +01:00
sale
08c8bd4aee
Initial configuration memgraph which needs review
...
Summary: MG configuration commit for review
Test Plan: manual
Reviewers: buda
Subscribers: buda
Differential Revision: https://memgraph.phacility.com/D24
2016-12-20 22:26:03 +00:00
Marko Budiselic
362bc3ba48
Bug fixes: RELEASE MODE - asserts
2016-12-19 18:32:44 +01:00
sale
18612a3063
Added dump methods to stacktrace
2016-12-19 10:02:24 +00:00
sale
b4c65d9680
Stacktrace dump method added
...
Summary: Stacktrace dump method added
Test Plan: manual
Reviewers: buda
Subscribers: buda
Differential Revision: https://memgraph.phacility.com/D19
2016-12-16 14:50:19 +00:00
sale
9154f9b719
Added signal handler and refactored exception handler
...
Summary: Added signal handler and refactored exception handler
Test Plan: manual
Reviewers: buda
Subscribers: buda
Differential Revision: https://memgraph.phacility.com/D17
2016-12-16 12:58:49 +00:00
Marko Budiselic
a2d9ab7231
bolt_decoder bug fix based on warning from clang-tidy (steps to run clang-tidy: 1. cmake ... 2. make clang-tidy). TODO: fix remaining issues
2016-12-04 11:06:22 +01:00
Marko Budiselic
ae28cdc424
Merge branch 'mgcore_T157_dsmove' into mgcore_T156_lintfix
2016-12-04 10:20:21 +01:00
Marko Budiselic
0a0e5e93da
src/demo was removed, src/examples and src/benchmarks were moved to the top level
2016-12-04 10:20:14 +01:00
Marko Budiselic
f9af76c364
data_structures moved from src/
...
Summary: data_structures moved from src/
Test Plan: manual
Reviewers: sale
Subscribers: buda, sale
Differential Revision: https://memgraph.phacility.com/D14
2016-12-03 23:28:07 +01:00
Marko Budiselic
cfd36be2e0
All possible request changes from D9#146 are done
2016-11-30 11:05:48 +01:00
Marko Budiselic
5eb90f9e52
DRESSIPI BUILD #2 ; some queries are hardcoded + bug fixes (still in progress)
2016-11-29 14:08:29 +01:00
Marko Budiselic
21788d003a
Dressipi CRUD queries are dummy implemented; Fixes T99 and T131
...
Summary: Dressipi CRUD queries are dummy implemented; Fixes T99 and T131
Test Plan: manual
Reviewers: sale
Subscribers: buda, sale
Maniphest Tasks: T131, T99
Differential Revision: https://memgraph.phacility.com/D9
2016-11-29 04:08:49 +01:00
Marko Budiselic
afc0a4a176
better architecture for hardcoded test queries (still has to be polished)
2016-11-17 15:46:36 +01:00
Marko Budiselic
8362b64e9f
DRESSIPI FIRST PILOT RELEASE (release script update)
2016-11-04 12:05:35 +01:00
Marko Budiselic
d45121a1a2
scenario 000001 pass, dressipi scenario 1 - 3 more queries have to be implemented
2016-11-02 16:05:02 +01:00
Marko Budiselic
c312c2e369
iterators, properties, search by properties in index hardcoded query; TODO: implement in compiler
2016-10-19 02:41:06 +02:00
Marko Budiselic
51b17c2402
dressipi sprint 1 work in progress, labels function support, delete all
2016-10-11 02:43:41 +02:00
Kruno Tomola Fabro
d806d635f9
Added documentation.
...
Fixed test for index.
2016-09-18 23:22:36 +01:00
Kruno Tomola Fabro
8fd713d93d
Changes for benchmarking on AWS.
...
Added files missing file to copy in barier.sh.
Updated barrier.
2016-09-16 20:33:30 +01:00
Kruno Tomola Fabro
ed919b615a
Merge branch 'tests' into demo
2016-09-16 20:29:57 +01:00
Marko Budiselic
c67742e3fa
dressipi usecase hardcoded
2016-09-14 12:19:56 +01:00
Kruno Tomola Fabro
a6f72dc3fd
Added stress test for ConncurentList.
2016-09-13 17:53:40 +01:00
Kruno Tomola Fabro
e22074ad9f
Added test for snapshot with stored index.
2016-09-13 17:02:04 +01:00
Kruno Tomola Fabro
266d8ed055
Transformed dressipi astar into a query.
2016-09-13 14:17:50 +01:00
Kruno Tomola Fabro
6e4096d619
Added flag for optional import of database.
2016-09-13 12:21:07 +01:00
Kruno Tomola Fabro
be1a936944
Fixed logging of index creation.
2016-09-12 20:38:03 +01:00
Kruno Tomola Fabro
2a59ed8906
Minor refactorings:
...
Importes now use logger.
Refactored order of constrution of objects in Db.
Moved index creation/removing from Db to Indexes.
Completed Garbage class.
Cleaner now calls garbage.clean() for databases.
Renamed List to ConcurrentList which better names it.
2016-09-12 20:13:04 +01:00
Kruno Tomola Fabro
efbae39f41
Added logic for cleaning older snapshots.
2016-09-11 22:22:52 +01:00
Kruno Tomola Fabro
cd528b9bd6
Uplifted int32 to int64 and float to double in csv_import.
2016-09-11 21:30:31 +01:00
Kruno Tomola Fabro
443d0e0098
Changed TransactionId to TransactionRead.
2016-09-09 20:56:53 +01:00
Kruno Tomola Fabro
cf497dd522
Extracted from snapshoter => snapshot_engine.
2016-09-09 18:48:15 +01:00
Kruno Tomola Fabro
911eeff1d9
Snapshot store and load works.
2016-09-09 16:14:20 +01:00
Kruno Tomola Fabro
74b9305285
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into snapshot
2016-09-08 13:30:44 +01:00
Kruno Tomola Fabro
4443cb8b7b
Finished creating part of snapshot.
2016-09-08 13:25:52 +01:00
Marko Budiselic
35f882644e
config is better now (yaml-cpp) + web::Client + web::Logger
...
Summary:
init struct size problem fix
cast issue bolt::State::init
TCP server bugfix EPOLLET + bolt bug fix
Test Plan: normal
Reviewers: ktf
Subscribers: ktf
Maniphest Tasks: T87
Differential Revision: https://phabricator.tomicevic.com/D2
2016-09-08 12:13:30 +01:00
Kruno Tomola Fabro
e1e7f3759d
Decreased footprint of union in StoredProperty.
2016-09-06 12:13:08 +01:00
Kruno Tomola Fabro
537730ed94
Merge branch 'T87' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into property
2016-09-05 16:05:58 +01:00
Marko Budiselic
b0951a3f76
cast issue bolt::State::init
2016-09-05 16:05:35 +01:00
Kruno Tomola Fabro
cfc807cc03
Merge branch 'T87' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into property
2016-09-05 15:56:57 +01:00
Kruno Tomola Fabro
0ca1436703
Fixed bug where mask for casting Flags to Type was to small.
2016-09-05 15:56:08 +01:00
Marko Budiselic
c14a692493
init struct size problem fix
2016-09-05 15:54:56 +01:00
Kruno Tomola Fabro
5d235b51f3
tmp commit
...
tmp commit
tmp commit v2
Finished reimplementation of propertys.
They now can be placed in a holder with different source of type information.
Tmp commit
2016-09-05 10:02:48 +01:00
Marko Budiselic
8e5dbd4703
config is better now (yaml-cpp) + web::Client + web::Logger
2016-09-05 01:39:30 +01:00
Marko Budiselic
f3af0effda
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-30 23:37:45 +01:00
Kruno Tomola Fabro
6a937fa334
Added template instatnce.
2016-08-30 23:37:10 +01:00
Marko Budiselic
32bdc4fd5e
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-30 23:23:20 +01:00
Marko Budiselic
5bba920944
release/barrier
2016-08-30 23:23:12 +01:00
Kruno Tomola Fabro
8fa73eee43
Merge with dev.
2016-08-30 23:09:56 +01:00
Kruno Tomola Fabro
2ab3600117
Added partial test for cleaner.
2016-08-30 23:07:42 +01:00
Marko Budiselic
1f448ef1fd
Merge branch 'error_handlig' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-30 21:00:12 +01:00
Marko Budiselic
781376a960
First version which will be sent to the pilot users
2016-08-30 20:52:46 +01:00
Kruno Tomola Fabro
ae4e52ff69
Extracted class Composable from BaseIterator.
...
Added iter::Virtual.
Indexes::for_all now return iter::Virtual
2016-08-30 18:13:23 +01:00
Kruno Tomola Fabro
7f4206e25c
Added more logging to cleaner.
2016-08-30 15:25:11 +01:00
Kruno Tomola Fabro
2eb5d3c3ff
Added basic exception handlig.
...
Changed methods insert in Vertices and Edges to be valid even if exception occurs.
2016-08-30 15:12:30 +01:00
Kruno Tomola Fabro
035e508840
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-30 08:54:48 +01:00
Kruno Tomola Fabro
0f249c4f1f
Added support for some queries.
2016-08-30 08:53:02 +01:00
Marko Budiselic
1048ea8849
bolt failure isn't finished
2016-08-30 06:49:47 +01:00
Marko Budiselic
b5db8d8d1e
match vertex by id, label and from main vertex store
2016-08-30 06:26:27 +01:00
Marko Budiselic
0f7be340fa
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-30 06:16:30 +01:00
Kruno Tomola Fabro
027dce0d9a
Commint which extracts iterator_base methods to hpp.
2016-08-30 06:16:04 +01:00
Marko Budiselic
5dcba58d2b
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-30 05:34:16 +01:00
Marko Budiselic
32ca896425
merge with dev
2016-08-30 05:34:08 +01:00
Kruno Tomola Fabro
ff07babeba
Commmit for buda.
2016-08-30 05:29:30 +01:00
Kruno Tomola Fabro
4542b56c18
tmp commit
2016-08-30 02:32:31 +01:00
Marko Budiselic
be820ce915
tmp commit, work in progress, relationship create
2016-08-30 01:01:03 +01:00
Kruno Tomola Fabro
b2ce3d58a4
Added cleaner.
...
Added multithreading to dbms.
Skiplist now supports emplace insert.
2016-08-30 00:45:07 +01:00
Kruno Tomola Fabro
2218b0e472
Merged border and testes two querys.
2016-08-29 14:51:31 +01:00
Marko Budiselic
12880ba990
work in progress engine <-> barrier integration
2016-08-29 01:01:42 +01:00
Kruno Tomola Fabro
eaf2025cab
Merged with dev.
2016-08-28 21:16:36 +01:00
Kruno Tomola Fabro
6a4e2d8d64
Final barrier commit.
2016-08-28 21:10:13 +01:00
Kruno Tomola Fabro
e908d6588b
Tidied up barrier files.
...
MEMGRAPH has linked/definistion errors during compile.
2016-08-28 20:46:30 +01:00
Kruno Tomola Fabro
8ace2927c9
poc/profile.cpp works over barrier.hpp
2016-08-28 19:36:52 +01:00
Marko Budiselic
9416bc7085
QueryEngine is now templated with Stream, Bolt bugfix (one message can have many chunks)
2016-08-28 18:50:54 +01:00
Kruno Tomola Fabro
fc71e9930b
commit before changing profile.cpp
2016-08-28 18:04:00 +01:00
Kruno Tomola Fabro
cdfa0e7106
Works but with ptr instead of unique_ptr.
2016-08-28 16:31:36 +01:00
Kruno Tomola Fabro
77a3298d1e
tmp
2016-08-28 15:47:13 +01:00
Kruno Tomola Fabro
9469d09c57
Poc example works.
2016-08-26 12:21:42 +01:00
Kruno Tomola Fabro
9304c2945b
Merge branch 'index' into dev
2016-08-25 15:37:53 +01:00
Kruno Tomola Fabro
8a89f6601d
EdgeType indexes added.
...
Implemented untested UniqueOrderedIndex.
Introduced TypeGroupEdge/Vertex into database.
Added Index capabilityes to PropertyFamily.
Added method for adding index.
Added method for removing index.
2016-08-25 15:29:45 +01:00
Marko Budiselic
e2212d57a5
src/import moved to include cmake conf update
2016-08-23 17:41:19 +01:00
Kruno Tomola Fabro
85dbf1bd86
Extracted import tool for csv to file with CSVImporter.
...
Astar now uses csv import tool.
2016-08-23 10:58:55 +01:00
Kruno Tomola Fabro
fbd9ca8420
First version of CSVImport tool.
...
Query and import works.
Properties now use unordered_map.
Reduced memory footprint of properties by more than half.
2016-08-22 19:03:45 +01:00
Kruno Tomola Fabro
eba7fd8be4
Fixed Query compiler to use new interface.
2016-08-19 18:40:04 +01:00
Marko Budiselic
e5f161974f
merged T70
2016-08-19 11:29:15 +01:00
Marko Budiselic
427a7bbe4b
merged interface branch
2016-08-19 11:28:10 +01:00
Marko Budiselic
e22cb3aee4
review fixes + T70
2016-08-19 01:28:37 +01:00
Marko Budiselic
9bb0b8983d
LOG error fixed + BOLT queries + Fixes T70
2016-08-18 17:48:13 +01:00
Kruno Tomola Fabro
cdd7188747
Changes for audit of previous commit.
2016-08-18 17:43:06 +01:00
Kruno Tomola Fabro
5a42e15c4a
Alpha version of label indexes.
...
Squashed messages from 9 commits:
9.
Properties now uses PropertyFamily and contained classes.
Fetching,seting,clearing properties can be done with PropertyFamilyKey or PropertyTypeKey.
Hierarchy of newly added clases is:
Vertices -n-> PropertyFamily {name: String} <-1-n-> PropertyType {type: Property::Flags}
Edges -n-> PropertyFamily {name: String} <-1-n-> PropertyType {type: Property::Flags}
PropertyFamilyKey -> PropertyType
PropertyTypeKey -> PropertyType
PropertyType t0,t1;
let t0!=t1 be true
let t0.family==t1.family be true
then next is true
PropertyTypeKey{&t0}!=PropertyTypeKey{&t1}
PropertyFamilyKey{&t0}==PropertyFamilyKey{&t1}
PropertyFamilyKey{&t0}==PropertyTypeKey{&t1}
PropertyTypeKey{&t0}==PropertyFamilyKey{&t1}
8.
Intermedate commit.
Noticed that integration queries throw SEGFAULT.
7.
Defined interface for indexes.
Fixed three memory leaks.
Fixed integration_queries test which now passes.
6.
Commit which return Xorshift128plus to valid shape.
5.
Tmp commit.
4.
Label Index is compiling.
3.
tmp
2.
Vertex::Accessor now updates Label index.
1.
Applied changes for code review.
2016-08-18 15:34:36 +01:00
Marko Budiselic
e1cca548ba
alpha release script + bolt serialization works (nodes and edges)
2016-08-15 15:10:30 +01:00
Kruno Tomola Fabro
530be96b36
.FIX T68
...
.FIX T67
.FIX T65
Modifed astar main for benchmark.
Experimented with map of best visited and confirmed:
-it is faster by 25%
-observed that it founds best resoult
-loses some non best resoults
Added convinent method at() to get property from RecordAccessor.
Method requires value_ref() method on property object.
2016-08-15 13:21:38 +01:00
Kruno Tomola Fabro
df0bf6fa5f
Database interface refactor.
...
DbAccessor:
-Guarantees that access to Vertex and Edge is possible only through
Vertex::Accessor and Edge::Accessor.
-Guarantees that changing Vertex and Edge is possible only using
Vertex::Accessor returned by vertex_insert() method and
Edge::Accessor returned by edge_insert() method.
-Offers CRUD for Vertex and Edge except iterating over all edges.
Squashed commit messages:
First step in database accessor refactoring done.
It's compiling.
All tests with exception of integration_querys pass
Tests now initialize logging facilities.
Refactored accessors.
RecordAccessor now has 3 states.
From,To,Out,In in there respecive Accessors return unfilled RecordAccessor.
Added iterator classes into utils/itearator/.
2016-08-15 00:09:58 +01:00
Marko Budiselic
a9419b559d
Small fixes not done yet, first the whole DB interface has to be finished
2016-08-14 13:45:47 +01:00
Marko Budiselic
6d8fccde8f
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-14 12:44:02 +01:00
Marko Budiselic
a3a8dc7c28
logger update, stderr stream is added
2016-08-14 12:43:34 +01:00
Kruno Tomola Fabro
1849514159
First step in database accessor refactoring done.
...
It's compiling.
All tests with exception of integration_querys pass
2016-08-12 23:01:39 +01:00
Kruno Tomola Fabro
2113546b9c
build fixes
2016-08-11 15:32:58 +01:00
Kruno Tomola Fabro
02ec6dd401
merge with edges, from and to are moved to the EdgeRecord, they are not copied along with properties inside the MVCC, TODO: graph interface, Accessor and Stores
2016-08-11 15:13:19 +01:00
Kruno Tomola Fabro
635c55cc45
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-11 14:15:48 +01:00
Kruno Tomola Fabro
fdd64dd6ed
Refactored
2016-08-11 14:08:11 +01:00
Marko Budiselic
93b174afd7
First integration almost done. BOLT still doesn't work as expected, problem is only serialization order.
2016-08-11 04:47:30 +01:00
Kruno Tomola Fabro
15f7b14704
Finished remove method in RhMultiMap.
...
Remove passes tests.
Needs refactoring, has lot of duplicate code.
2016-08-10 23:05:24 +01:00
Kruno Tomola Fabro
3fffa17b0d
Started adding remove methods.
...
Discovered bugs in HashMultiMap and after fixing it add method is now little slower but
find method is medium faster. So it turned out good.
2016-08-10 20:02:54 +01:00
Marko Budiselic
35d8f6d7ab
Bolt integration: RecordStream -> BoltSerializer -> BoltEncoder -> ChunkedEncoder -> ChunkedBuffer -> SockerStream
2016-08-10 19:17:38 +01:00
Marko Budiselic
869da8dcda
All files for the Release are now isolated
2016-08-10 09:39:02 +01:00
Kruno Tomola Fabro
61eccc28ce
Created EdgeRecord as class and changed in edge vector for map.
...
EdgeRecord now contains from,to fields as immutables.
Vertex in place of in vector of edges has in RbHashMultimap of edges.
Astar exepriment now uses real filters based on before mentioned map.
2016-08-09 20:29:03 +01:00
Kruno Tomola Fabro
c3c8fb6620
Commit before branching to chane EdgeModel and EdgeRecord.
2016-08-09 16:44:39 +01:00
Kruno Tomola Fabro
3016494669
Added RobinHood HashMap and unit tested.
2016-08-09 11:53:10 +01:00
Marko Budiselic
95aa385e31
bolt binary was removed (src/examples/bolt)
2016-08-08 09:34:28 +01:00
Marko Budiselic
e4d9258df9
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-08 09:32:45 +01:00
Marko Budiselic
84e69bb1d3
fmt wrapper + proof of concept folder
2016-08-08 09:32:34 +01:00
Dominik Tomičević
2a12335246
added features to bolt
2016-08-07 21:19:04 +01:00
Marko Budiselic
b5f884d428
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-02 17:05:15 +01:00
Kruno Tomola Fabro
0dfb8d13c3
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into tests
2016-08-02 15:45:12 +01:00
Marko Budiselic
3b8746573d
Merge branch 'dev' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into dev
2016-08-02 15:42:38 +01:00
Marko Budiselic
f05c1f6dab
CRU operations are fully supported, D (delete) is missing
2016-08-02 15:41:53 +01:00
Kruno Tomola Fabro
e16b576a6e
Added support for multiset.
...
Minor fixes to tests.
MultiIterator & MultiMap work.
There are some unfinished optimizations in the code commented.
All tests pass. Some common parts from tests have been moved.
2016-08-02 13:23:39 +01:00
Dominik Tomičević
da15775afa
Merge branch 'bolt-protocol' into dev
...
* bolt-protocol:
implemented bolt protocol
2016-08-01 22:21:49 +01:00
Dominik Tomičević
eda9d67bbe
implemented bolt protocol
2016-08-01 22:14:09 +01:00
Marko Budiselic
d04cf101b4
Cypher CRUD support is becomes bigger and bigger. Implemented: create relationship, match relationship and update relationship
2016-07-31 18:58:12 +01:00
Kruno Tomola Fabro
bf174644de
Reformated code acording to format rules in .clang-format.
2016-07-31 13:56:13 +01:00
Kruno Tomola Fabro
b32a727b75
Removed old SkipListMap and skiplist directory.
2016-07-30 23:06:51 +01:00
Kruno Tomola Fabro
ac7f6f507f
Implemented ConncurentMap and updated it's users.
...
Added tests for ConcurrentMap.
Implemented ~SkipList.
2016-07-30 21:20:21 +01:00
Marko Budiselic
6970170f69
Query engine work in progress: code_generator handlers, update clause generator, delete clause generator, return clause generator, SemanticError
2016-07-25 02:09:40 +01:00
Marko Budiselic
356e9444ec
A lot of work on query_engine. Still in progress!
2016-07-24 03:47:48 +01:00
Marko Budiselic
b1459a891b
work in progress query_engine
2016-07-17 18:32:35 +01:00
Marko Budiselic
396f0d9c31
query engine better version
2016-07-17 01:22:43 +01:00
Marko Budiselic
8a3aee1ba6
cypher parser is extended again (find by internal_id ID(n)=internal_id)
2016-07-11 20:10:53 +01:00
Marko Budiselic
c8440b4671
tests/manual/query_engine.cpp work in compiler in progress
2016-07-11 02:39:33 +01:00
Marko Budiselic
84db4b6657
cypher parser update
2016-07-09 19:05:02 +01:00
Marko Budiselic
b538fb041c
first integration test (basic set of queries is tested)
2016-07-07 01:58:26 +01:00
Marko Budiselic
a8a1ce9f0a
edge type store
2016-07-06 17:37:05 +01:00
Marko Budiselic
2b1fc70695
some header files are splitted (WORK IN PROGRESS)
2016-07-05 13:20:33 +01:00
Marko Budiselic
b94cae12d1
some new header + source files (vertices, vertex_accessor, properties), first version of Index works, skiplist<T> + concurrent_set + concurrent_map (still has to be finished)
2016-07-05 04:01:22 +01:00
Marko Budiselic
18e7394d9e
basic queries are manually implemented inside src/query_engine/main_queries
2016-07-03 01:02:42 +01:00
Marko Budiselic
5110cde698
query engine code, labels (unfinished), TODO: query engine module system
2016-07-01 22:05:03 +01:00
Marko Budiselic
1d1242af50
query_engine executable file
2016-06-26 23:43:28 +01:00
Marko Budiselic
04319c09e3
expression can be eather pattern expression or value expression
2016-06-26 12:27:26 +01:00
Marko Budiselic
b5536d70fa
delete accessor from version list + build flow update + memgraph docker file + TODO: debug cypher grammar
2016-06-25 17:26:26 +01:00
Marko Budiselic
62a58f05b5
First part of T56 (crash server)
2016-06-16 20:38:05 +01:00
Marko Budiselic
83f094a15f
utils/assert code, static array, skiplist tests and bug fix
2016-06-16 19:07:49 +01:00
Marko Budiselic
425be0acad
permanent and runtime assert
2016-06-14 23:06:21 +01:00
Marko Budiselic
65b9af05d4
cache benchmark and utils/time/timer improvement
2016-06-08 23:39:24 +02:00
Marko Budiselic
c79706c249
concurrent and unit tests, concurrently linked list test (not production ready linked list :))
2016-06-06 23:57:16 +02:00
Marko Budiselic
894ef67bc0
clang format was applied on src/memgraph and on some files at the src/query_engine folder
2016-06-06 11:29:52 +02:00
Marko Budiselic
4d03dcd545
Number of tests is now 6
2016-06-05 14:30:40 +02:00
Marko Budiselic
a4cadedffe
more appropriate test for storage/indexes/index.hpp (very beginning of indexes work); utils/type_discovery.hpp is created
2016-06-05 12:12:25 +02:00
Marko Budiselic
18ee30f69e
db_index test -> the index creation is tested for now
2016-06-05 09:48:34 +02:00
Marko Budiselic
38b6040529
Merge branch 'master' into dev
2016-06-05 09:29:16 +02:00
Dominik Tomičević
1ffcd28053
fixed skiplist issue with keys and values that have no default constructors
2016-06-04 22:00:20 +02:00
Dominik Tomičević
287f667ef8
fixed whitespace inside r3.hpp
2016-06-04 21:58:12 +02:00
Marko Budiselic
83880f8244
Return list is expanded, this commit is related to T45
2016-06-03 16:48:23 +02:00
Marko Budiselic
c4e0e68e0b
lemon and lexertl are removed from src folder, cmake custom target is created to better automate process of testing, cypher return list is now list of expressions
2016-05-28 21:24:48 +02:00
Marko Budiselic
14e38ff358
Test infrastructure (ctest)
2016-05-25 00:37:14 +02:00
Marko Budiselic
18838f5318
cypher_quries are moved to the tests folder and another part of CMakeLists file is written
2016-05-23 07:51:36 +02:00
Marko Budiselic
8aed81de38
Resolves T46; CMake + CTest setup
2016-05-15 22:43:42 +02:00
Marko Budiselic
84e40c9061
r3 submodule bug fix
2016-05-14 20:18:49 +02:00
Dominik Tomičević
39d952b629
conformed code to the new directory structure
2016-05-11 12:06:24 +02:00
Dominik Tomičević
83769d7daf
Merge branch 'master' of https://phabricator.tomicevic.com/diffusion/MG/memgraph into logging
...
* 'master' of https://phabricator.tomicevic.com/diffusion/MG/memgraph :
old r3 commit was checked out
added speedy to include path (root Makefile)
test docker file update
submodule reinitialization
.gitmodules path updates
The folder structure was changed, all source code is now within the src dir.
Basic timer implementation; TODO: implement timer wheel
2016-05-11 07:33:20 +02:00
Marko Budiselic
f40240ae13
old r3 commit was checked out
2016-05-08 13:05:54 +02:00
Marko Budiselic
5a95e15201
submodule reinitialization
2016-05-08 12:01:16 +02:00
Marko Budiselic
52625e39a3
The folder structure was changed, all source code is now within the src dir.
2016-05-08 11:33:07 +02:00