Commit Graph

1195 Commits

Author SHA1 Message Date
Mislav Bradac
026e0e6fbd Implement ast generation by cypher visitor 2017-03-11 23:22:38 +01:00
Teon Banek
9dada557a3 Add coverage option to cmake
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
2017-03-10 18:05:15 +01:00
Mislav Bradac
4bcee620bc Change clique to use in64_t
Summary: Fix int -> int64_t in query_stripper

Reviewers: teon.banek, buda

Reviewed By: buda

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D108
2017-03-10 13:58:02 +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
ca4ab42973 Supress intentional unused variable warning in for loop.
Reviewers: florijan, buda

Reviewed By: buda

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D101
2017-03-08 17:13:48 +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
Marko Budiselic
b834cdc94a memgraph coverage (lcov setup in progress...)
Summary: first version of coverage (will be polished)

Reviewers: dgleich, mferencevic, florijan, teon.banek

Reviewed By: dgleich

Subscribers: pullbot, buda

Differential Revision: https://phabricator.memgraph.io/D76
2017-03-07 18:27:03 +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
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
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
Mislav Bradac
b5274cd139 Reduce number of iterations in fswatcher test
Summary:
Trivial: iterations 10 -> 2. So that unit tests run for less time.
Put flaky warking in test.

Reviewers: buda

Reviewed By: buda

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D78
2017-03-01 11:24:51 +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
ede318c2dd Memgraph gmock support has been added
Summary: Memgraph gmock support has been added

Reviewers: mislav.bradac

Reviewed By: mislav.bradac

Subscribers: buda

Differential Revision: https://phabricator.memgraph.io/D59
2017-02-22 16:38:23 +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
Marko Budiselic
fb90394499 A better configuration of cmake & clion 2017-02-20 01:25:57 +01:00
Marko Budiselic
2a046bba78 all unit tests are gtests 2017-02-19 23:47:09 +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
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 Stamenkovic
b38704391c Typed-value migration in progress. UNSTABLE STATE 2017-02-06 12:40:55 +01:00
Florijan Stamenkovic
261797ea9c storage/model/typed_value - fixes after code review 2017-02-02 10:29:14 +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
sale
99b8a4f234 Added Skiplist ReverseIterator, Distance Approximation Prototype and documented some stuff
Summary: Skiplist ReverseIterator and Distance Approximation

Test Plan: manual

Reviewers: florijan, buda

Reviewed By: buda

Subscribers: pullbot, florijan, buda

Differential Revision: https://phabricator.memgraph.io/D44
2017-01-31 15:16:38 +01:00
Florijan Stamenkovic
4f649c9821 storage - UniqueObjectStore class added (with unit tests)
Summary: storage - UnoqueObjectStore documentation improved

Test Plan: no test plan

Reviewers: sale, buda

Reviewed By: sale, buda

Subscribers: pullbot, florijan, sale, buda

Differential Revision: https://phabricator.memgraph.io/D43
2017-01-24 14:46:11 +01:00
Florijan Stamenkovic
dee15acd1e data_structures/union_find - minor refactors and tests added
Summary: Minor refactor of the union_find data structure. Testing added for union_find.

Test Plan: Manual

Reviewers: sale, buda

Reviewed By: sale, buda

Subscribers: pullbot, florijan, sale, buda

Differential Revision: https://phabricator.memgraph.io/D42
2017-01-23 15:20:09 +01:00
Marko Budiselic
30951cdb4b Review updates (fswatcher test comments) 2017-01-13 10:21:45 +01:00
Marko Budiselic
b1c293ef72 Review updates (documentation, namespace naming) 2017-01-12 19:42:52 +01:00
Marko Budiselic
057af7ac14 Much more serious implementation of FSWatcher
Summary: Much more serious implementation of FSWatcher

Test Plan: ctest -R fswatcher

Reviewers: dtomicevic, sale

Subscribers: buda

Differential Revision: https://phabricator.memgraph.io/D33
2017-01-08 01:07:12 +01:00
Marko Budiselic
782fc05f93 Merge branch 'dev' into mgcore_T159_inotify 2017-01-03 16:01:53 +01:00
Marko Budiselic
6fe9da2578 gbenchmark reports are generated inside build/test_results/benchmark 2016-12-23 09:58:26 +01:00
Marko Budiselic
422f6a9957 mistake, I forgot to add some changes 2016-12-22 19:28:21 +01:00
Marko Budiselic
f91dcda97b unit test normalization 2016-12-22 19:22:45 +01: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
Marko Budiselic
fd804f5e58 Merge branch 'MG_test_T196-Stack_Allocator_Test' into dev 2016-12-21 10:34:57 +01:00
Marko Budiselic
362bc3ba48 Bug fixes: RELEASE MODE - asserts 2016-12-19 18:32:44 +01:00
sale
021da26ac9 Merge branch 'dev' of https://memgraph.phacility.com/diffusion/MG/memgraph into dev 2016-12-19 10:05:38 +00:00
sale
18612a3063 Added dump methods to stacktrace 2016-12-19 10:02:24 +00:00
Marko Budiselic
dc3433aa8a Stack Allocator Unit Test
Summary: Stack Allocator Unit Test

Test Plan: manual (unit tests are not passing because malloc and free counters have to be added)

Reviewers: sale

Subscribers: sale, buda

Differential Revision: https://memgraph.phacility.com/D21
2016-12-18 20:32:41 +01:00
Marko Budiselic
4d6c315c1e Block Allocator Test - initial implementation
Summary: Block Allocator Test - initial implementation

Test Plan: ctest -R memgraph_unit_block_allocator

Reviewers: sale

Subscribers: sale, buda

Differential Revision: https://memgraph.phacility.com/D20
2016-12-18 19:23:58 +01:00
Marko Budiselic
948694fd27 tests data bug fix - too many copies of tests/data 2016-12-18 10:16:07 +01:00
Marko Budiselic
f4455daeb2 CMake refactor done - added single test granularity. Fixes T190, T194 2016-12-17 21:00:32 +01:00
sale
fcc1642cad Final signal handler test and stacktrace update 2016-12-16 16:10:29 +00:00
Marko Budiselic
d158333335 Added memgraph prefix. Fixes T160
Summary: Added memgraph prefix. Fixes T160

Test Plan: manual

Reviewers: sale

Subscribers: sale, buda

Maniphest Tasks: T160

Differential Revision: https://memgraph.phacility.com/D18
2016-12-16 14:05:29 +01: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
sale
58b9c45ff2 Merge branch 'dev' of https://memgraph.phacility.com/diffusion/MG/memgraph into dev 2016-12-12 09:22:32 +00:00
sale
52c5159bc0 Bloom filter code review changes 2016-12-07 13:20:53 +00:00
Marko Budiselic
874d79e678 File System Watcher Implementation
Summary:
Merge branch 'dev' into mgcore_T159_inotify

File System Watcher Implementation (unfinished) just sent for the initial review (the implementation will be updated soon)

Test Plan: manual

Reviewers: sale

Subscribers: sale, buda

Differential Revision: https://memgraph.phacility.com/D16
2016-12-05 13:35:17 +01:00
sale
9b03fd1f04 Added Basic BloomFilter and BloomConcurrentMap
Summary: Added Basic BloomFilter and BloomConcurrentMap

Test Plan: manual

Reviewers: buda

Subscribers: buda

Maniphest Tasks: T115

Differential Revision: https://memgraph.phacility.com/D15
2016-12-05 09:03:11 +00:00
Marko Budiselic
7362cab9f2 added test for size of PtrInt object
Summary: added test for size of PtrInt object

Test Plan: ctest -V ptr_int -R

Reviewers: sale

Subscribers: buda, sale

Differential Revision: https://memgraph.phacility.com/D12
2016-12-02 09:38:06 +01:00
Marko Budiselic
6355dd4f4d PtrInt data structure (Pointer Integer pair inside one pointer location). Part of T150
Summary: PtrInt data structure (Pointer Integer pair inside one pointer location). Part of T150

Test Plan: manual

Reviewers: sale

Subscribers: buda, sale

Differential Revision: https://memgraph.phacility.com/D11
2016-11-30 17:21:22 +01:00
sale
b4fc263be1 Code review D8 changes 2016-11-29 11:46:29 +00:00
sale
228ae4cc72 Added ProgramArguments util and test; Added ProgramArgument parser to concurrent benchmark tests 2016-11-28 15:39:25 +00: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
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
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
79015177b2 Fixed tests. 2016-08-19 19:09:24 +01:00
Kruno Tomola Fabro
a1fc3244ef Merge branch 'tests' into dev 2016-08-19 18:48:48 +01:00
Marko Budiselic
427a7bbe4b merged interface branch 2016-08-19 11:28:10 +01:00
Kruno Tomola Fabro
7527e91d56 Build pass changes. 2016-08-18 16:03:05 +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
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
a3a8dc7c28 logger update, stderr stream is added 2016-08-14 12:43:34 +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
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
84e69bb1d3 fmt wrapper + proof of concept folder 2016-08-08 09:32:34 +01:00
Kruno Tomola Fabro
36019f561b Implemented lockfree list and added unit test for it. 2016-08-03 10:27:18 +01:00
Kruno Tomola Fabro
f226a9d6c5 Added Bitset tests. 2016-08-02 17:05:10 +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
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
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
356e9444ec A lot of work on query_engine. Still in progress! 2016-07-24 03:47:48 +01:00
Marko Budiselic
396f0d9c31 query engine better version 2016-07-17 01:22:43 +01:00
Marko Budiselic
84db4b6657 cypher parser update 2016-07-09 19:05:02 +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
5110cde698 query engine code, labels (unfinished), TODO: query engine module system 2016-07-01 22:05:03 +01:00
Marko Budiselic
425be0acad permanent and runtime assert 2016-06-14 23:06:21 +01: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