Jure Bajic
bd2c30fddc
Websocket unit tests ( #334 )
2022-02-17 10:35:56 +01:00
Antonio Andelic
48a531aac1
Add websocket authentication ( #322 )
2022-02-17 10:35:48 +01:00
Antonio Andelic
69eca9b043
Procedures for handling modules ( #330 )
2022-02-11 11:29:41 +01:00
Antonio Andelic
5aeaad198b
Define SHOW VERSION query ( #265 )
2022-02-10 10:30:14 +01:00
Kostas Kyrimis
4fd8bdce4c
Make temporal types now functions use the query context timestamp ( #333 )
2022-02-04 12:57:38 +01:00
János Benjamin Antal
6c00d146f2
Add configs for kafka streams ( #328 )
2022-01-31 17:26:53 +01:00
Antonio Andelic
bb1308acc7
Use libs from toolchain ( #326 )
2022-01-21 10:22:36 +01:00
Antonio Andelic
7deac4ac8b
Extra procedures transformation info ( #310 )
2022-01-13 13:46:32 +01:00
Antonio Andelic
8716b8e992
Update to newest spdlog and fmt ( #309 )
2021-12-07 11:05:33 +01:00
Antonio Andelic
d9bb4e2e46
Use default values instantly for batch size/interval ( #306 )
2021-11-30 16:29:51 +01:00
Antonio Andelic
e8976e0f1c
Update mgp API for Pulsar ( #298 )
2021-11-16 16:00:25 +01:00
Antonio Andelic
b66cc66503
Add support for Pulsar queries ( #292 )
2021-11-16 15:52:58 +01:00
Antonio Andelic
0e4719018a
Introduce pulsar dependency ( #286 )
2021-11-16 15:47:40 +01:00
Antonio Andelic
0ebd52aac3
Support for different consumers ( #280 )
2021-11-16 15:40:27 +01:00
Jure Bajic
16709dff6c
Add stats and notifications in results metadata ( #285 )
2021-11-15 13:51:13 +01:00
Kostas Kyrimis
47c0c629c7
Add procedure for setting a kafka stream offset ( #282 )
2021-11-11 12:07:58 +01:00
Jure Bajic
a9b1ff9bea
Support Bolt v4.3 protocol ( #226 )
2021-10-28 13:05:09 +02:00
Antonio Andelic
bd21bc82b7
Add license to cpp/hpp/py test files ( #283 )
2021-10-26 08:53:56 +02:00
Antonio Andelic
1a78c3695d
Support multiple types for weighted shortest path ( #278 )
2021-10-19 14:39:23 +02:00
Kostas Kyrimis
10196f3d7d
Add bootstrap servers to create stream ( #274 )
2021-10-18 10:49:00 +02:00
Kostas Kyrimis
24a576c8e9
Make write procedures trigger aware ( #262 )
2021-10-11 13:39:57 +02:00
Kostas Kyrimis
7e82cc6550
Add uniform naming for temporal type properties ( #246 )
2021-10-02 16:14:27 +02:00
Kostas Kyrimis
18b801a722
Add e2e tests for temporal types ( #241 )
2021-10-02 15:31:00 +02:00
Kostas Kyrimis
7e81a95b81
Fix parsing negative durations ( #237 )
2021-10-02 15:30:35 +02:00
Kostas Kyrimis
8ea281649a
Remove support for iso duration and fix bolt ( #235 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
da68f86fc9
Add support for printing out in the ast temporal data values ( #227 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
738b5fb8d8
Add duration support for timestamp function ( #236 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
b45ae403e6
Define dump command for all temporal types ( #225 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
d744711e5e
Define functions that return a specific field of each temporal type ( #221 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
8d87e38c64
Add temporal type arithmetic for queries ( #214 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
086fc47769
Define subtraction and addition for temporal types ( #209 )
2021-10-02 14:54:48 +02:00
Kostas Kyrimis
5abcb5081d
Define timestamp function that return temporal types in microseconds since epoch representation ( #205 )
2021-10-02 14:54:48 +02:00
antonio2368
e2112faff0
Functions for defining temporals ( #197 )
2021-10-02 14:54:47 +02:00
Kostas Kyrimis
6913feacc7
Add support for temporal data types in the communication Bolt layer ( #198 )
2021-10-02 14:54:47 +02:00
antonio2368
4e604de9d7
Add support for parsing temporal types ( #187 )
2021-10-02 14:54:45 +02:00
antonio2368
e628b5ba6e
Add temporal types to TypedValue ( #176 )
2021-10-02 14:53:53 +02:00
antonio2368
5da32c1bff
Add TemporalData to PropertyValue ( #174 )
2021-10-02 14:53:53 +02:00
János Benjamin Antal
ccca46370d
Fix RWTypeChecker and some small improvements ( #247 )
...
* Fix doc of mgp_graph_vertices
* Make write_proc example meaningful write procedure example
* Improve wrap_exceptions
* Add check for write procedures for ReadWriteTypeChecker
* Change error code in case of invalid default value for optional arguments
2021-10-02 13:18:37 +02:00
János Benjamin Antal
721eefe263
Handle write procedures in queries and update docs of properties iterator ( #238 )
2021-10-02 13:18:36 +02:00
János Benjamin Antal
be9ed7e879
Python wrapper for write procedures ( #234 )
...
* Rename mgp_graph_remove to mgp_graph_delete
* Add mgp_graph_detach_delete
* Add PyGraph functions
* Add _mgp exceptions
* Use unified error handling in python wrapper
* Ignore clang-tidy warnings
* Add mgp.Graph, mgp.Vertex and mgp.Edge mutable functions
* Add python write procedure registration
* Add `is_write` result field to mg.procedures
* Use storage::View::NEW for write procedures
* Add simple tests for write procedures
* Remove false information about IDs
2021-10-02 13:17:41 +02:00
Benjamin Antal
482798295e
Add write procedures
2021-10-02 13:17:41 +02:00
antonio2368
d58a1cbb58
License key introduction and removing community edition package ( #232 )
2021-09-29 19:14:39 +02:00
antonio2368
8dc3153fde
Don't strip queries after execute for CREATE TRIGGER only ( #245 )
2021-09-24 13:14:05 +02:00
antonio2368
9f855676cb
Add jemalloc purge ( #239 )
2021-09-21 14:43:27 +02:00
Jure Bajic
f560293657
Add Property Map support in CREATE clause ( #220 )
2021-09-09 12:39:13 +02:00
János Benjamin Antal
2afc1b99f6
New MGP API ( #219 )
2021-09-09 10:44:47 +02:00
antonio2368
5a8bda2531
Improve MERGE performance by using indices ( #213 )
2021-08-30 11:39:06 +02:00
János Benjamin Antal
09cfca35f8
Add privilege check in triggers and streams ( #200 )
2021-07-22 16:22:08 +02:00
antonio2368
ae280fd8db
Polishing and fixes ( #196 )
...
* Remove SHOW from Memgraph lexer
* Change get_payload to payload
2021-07-07 18:04:17 +02:00
János Benjamin Antal
fb5a2ed4b6
Small improvements for streams ( #193 )
...
* Add timeout to CHECK STREAM
* Handle RdKafka::ERR__MAX_POLL_EXCEEDED in consumer
Co-authored-by: Jure Bajic <jbajic@users.noreply.github.com>
Co-authored-by: Jure Bajic <jbajic@users.noreply.github.com>
2021-07-07 16:19:59 +02:00
antonio2368
6cfec787dc
Allow dash in topic name ( #192 )
...
* Support dash in the topic names
* Add more topic names and consumer groups in tests
2021-07-07 16:19:59 +02:00
János Benjamin Antal
13c9bf76af
Add e2e tests for streams ( #190 )
...
* Add base of e2e tests
* Add python dependencies
* Explicitly close customer in destructor
* Parametrize tests and add test for CHECK STREAM
* Add tests for SHOW STREAMS
* Add test for concurrent start/stop during check
* Add test for calling check with an already started stream
* Run streams e2e tests on CI servers
Co-authored-by: antonio2368 <antonio2368@users.noreply.github.com>
Co-authored-by: Jure Bajic <jbajic@users.noreply.github.com>
2021-07-07 16:19:59 +02:00
János Benjamin Antal
ad32db5168
Use transformations in streams and CHECK STREAM ( #185 )
...
* Use the correct transformation result type
* Execute the result queries in streams
* Change the result type of parameters to nullable map
* Serialize transformation name
* Fix order of transformation parameters
* Use actual transformation in Streams
* Clear the Python transformations under GIL
* Add CHECK STREAM query
* Handle missing record fields properly
2021-07-07 16:19:59 +02:00
Kostas Kyrimis
a37755ce43
Add remaining query functionality SHOW STREAMS ( #184 )
...
* Add query functionality SHOW STREAMS
2021-07-07 16:13:26 +02:00
Kostas Kyrimis
a928c158da
Add python API for messages transformations ( #181 )
...
* Add python messages/transformations implementation
* Added fixed result return type to transformations
* Added is_deprecated to mgp_trans
2021-07-07 16:08:23 +02:00
János Benjamin Antal
ac230d0c2d
Add basic queries for managing streams ( #179 )
...
* Add CREATE, START, STOP and DROP queries
* Fix definition of port in replica query
* Explicitly stop the consumer before removing
* Fix offset committing in Consumer
* Add tests for basic stream queries
* Remove unnecessary WITH keywords from CREATE query
* Add tests
* Add STREAM privilege
* Disable not working test
The functionality is tested manually, but I couldn't make it work with
the mock kafka cluster.
* Add support for multiple topic names
* Replace skiplist by synchronized map
* Make Consumer::Test const and improve error handling
The improvement in the error handling is mostly done regarding to the
Test function. Instead of trying to revert the assignments, Test just
stores the last commited assignment. When Start or Test is called, they
check for the last commited assignments, and if it is saved, then they
try to restore it. This way:
1. All the failures are returned to the user (failed to save/restore)
2. Failed assignment cannot terminate Memgraph
* Make Test do not block creating/droping other streams
2021-07-07 16:08:22 +02:00
Kostas Kyrimis
d80ff745eb
Introduce mgp_trans api ( #175 )
...
* Added public interface for registering mgp_trans and extended modules accordingly
* Added test for mgp_trans
* Added mg.transformations() to the module registry
Co-authored-by: János Benjamin Antal <antaljanosbenjamin@users.noreply.github.com>
2021-07-07 15:57:36 +02:00
János Benjamin Antal
d6a6d280dd
Add Streams on top of Kafka Consumer ( #172 )
...
* Stop the Consumer grafefully when it is destroyed
* Add Streams
* Add Streams to InterpreterContext
* Remove options to limit processed batches in Consumer
* Add Streams unit tests
* Stop waiting for a full batch if the Consumer stopped
* Add ReadLock functionality to Synchronized
* Use per Consumer-based locking
* Replace shared_mutex with RWLock
2021-07-07 15:57:36 +02:00
Kostas Kyrimis
4004e94ca1
Introduce messages C-API ( #168 )
2021-07-07 15:38:51 +02:00
János Benjamin Antal
36afc6c5f3
Add Kafka consumer ( #167 )
...
* Add CMake config for Kafka integration
* Add Consumer
* Add simple unit test for consumer
* Add explicit offset handling and test for it
2021-07-07 15:38:51 +02:00
antonio2368
3b336e3e0b
Add CREATE SNAPSHOT query ( #182 )
2021-06-30 12:31:30 +02:00
antonio2368
715162e205
Disable LOAD CSV with config ( #180 )
2021-06-30 11:19:13 +02:00
antonio2368
e016c74e4b
Trigger restore after query modules load ( #183 )
2021-06-30 10:01:51 +02:00
antonio2368
15911b64dc
Use timers for query timeout thread ( #163 )
...
Co-authored-by: Benjamin Antal <benjamin.antal@memgraph.io>
2021-06-16 16:03:58 +02:00
antonio2368
8cd9f696cf
Multiple isolation levels ( #171 )
...
This PR introduces READ COMMITTED and READ UNCOMMITTED isolation levels.
The isolation level can be set with a config or with a query for different scopes.
2021-06-14 15:47:57 +02:00
János Benjamin Antal
a3ecc52429
Use all available predefined variables ( #157 )
2021-05-26 14:37:11 +02:00
János Benjamin Antal
e8a1d15a55
Add filtering based on registered event types ( #155 )
...
* Add filtering to TriggerContextCollector
* Add all predefined variable to ANY triggers
* Make variable names consistent with event types
2021-05-26 14:37:11 +02:00
János Benjamin Antal
5af3d0ff68
Add e2e tests for triggers ( #152 )
2021-05-26 14:36:41 +02:00
antonio2368
62a628c51f
Add trigger queries and trigger store ( #145 )
...
Co-authored-by: Benjamin Antal <benjamin.antal@memgraph.io>
2021-05-26 14:36:41 +02:00
antonio2368
883f9c7ed3
Trigger event types ( #144 )
...
Co-authored-by: Benjamin Antal <benjamin.antal@memgraph.io>
2021-05-26 14:13:14 +02:00
antonio2368
b459639968
Other predefined variables ( #143 )
2021-05-26 14:13:14 +02:00
antonio2368
11c0dde11c
Support removed vertices in the triggers ( #140 )
2021-05-26 14:13:14 +02:00
antonio2368
2f3fa656d9
Predefined variables ( #138 )
...
* Add support for injecting predefined variables in any scope
2021-05-26 14:13:14 +02:00
antonio2368
13ea35af2d
Fix permission for newer queries ( #156 )
2021-05-26 10:02:25 +02:00
antonio2368
30413a7b4f
Ignore carriage return at the end of line for a CSV file ( #151 )
2021-05-18 13:44:29 +02:00
János Benjamin Antal
6d4fe5cdd5
Explore and implement the usage of clang-tidy and sanitizers ( #125 )
...
* Run clang-tidy on the full code base
* Run clang-tidy on diffs
* Enable ASAN in coverage build
* Add UBSAN to code analysis
2021-04-01 17:08:40 +02:00
antonio2368
276e09d7d3
Fix reading rows with empty columns at the end ( #127 )
...
* Fix reading rows with empty columns at the end
* Update CHANGELOG for the recovery logs
2021-03-27 09:47:41 +01:00
antonio2368
ad4c80af13
Add memory limit clause for cypher queries ( #106 )
...
* Add memory limit clause for cypher queries
* Add PROCEDURE and QUERY keywords
* Improve memory limit logs
* Update CHANGELOG
2021-03-24 15:21:11 +01:00
antonio2368
cc56ac3dd8
Expose query for cleaning memory and add memory limit flag ( #100 )
...
* Add memory flag, add additional meminfo utilities
* Add free memory query
2021-03-24 15:10:28 +01:00
antonio2368
bbed7a2397
Add memory tracker definition ( #93 )
...
* Allow size 0 in MemoryTracker
* Block only exception throwing
* Subtract unsuccessfully allocated size in memory tracker
* Add oom exception enablers and blockers
2021-03-24 14:53:15 +01:00
antonio2368
e8810a4152
Add and use jemalloc lib ( #90 )
...
* Add and use jemalloc lib
* Add autoconf
* Silence macro redefinition warning
2021-03-24 14:53:15 +01:00
Josip Seljan
25eb2c147a
LOAD CSV implementation fixes ( #120 )
...
* Change how csv::Reader handles memory resources
* Add multiline quoted string test
2021-03-24 12:21:07 +01:00
Josip Seljan
f950a91732
Add LOAD CSV clause infrastructure ( #101 )
...
* Add LOAD CSV clause infrastructure
* Add LoadCsv operator
* Update csv::Reader class
* Support csv files with and without header
Co-authored-by: jseljan <josip.seljan@memgraph.io>
2021-03-24 12:21:07 +01:00
Josip Seljan
f6d5f576d5
CSV reader class ( #98 )
...
* CSV parsing class
* Basic CSV parsing tests
2021-03-24 12:21:07 +01:00
antonio2368
16715d5005
Enable replication in community ( #104 )
...
* Enable replication in community
2021-03-10 10:36:38 +01:00
antonio2368
f807b495ab
Update commit log after recovery ( #96 )
...
* Define additional commit log constructor which takes an oldest active id
* Delay commit log construction until the recovery process is finished
* Add test for commit log with initial id
* Silence the macro redefinition warning
2021-02-19 11:00:10 +01:00
antonio2368
3f3c55a4aa
Format all the memgraph and test source files ( #97 )
2021-02-18 15:32:43 +01:00
Marko Budiselić
fae407d3fe
Add implementation of average number of equals estimate in SkipList ( #9 )
...
* Implement average number of equals estimate in SkipList
2021-02-10 14:38:54 +01:00
antonio2368
28413fd626
Change log library to spdlog, expose log levels to user ( #72 )
...
* Change from glog to spdlog
* Remove HA tests
* Remove logrotate log configuration
* Define custom main for unit gtests
2021-01-21 16:30:55 +01:00
antonio2368
a84ffe86c1
Add LOCK DATA DIRECTORY query ( #68 )
2021-01-21 15:56:21 +01:00
Josip Seljan
8f5b88f24a
Fix how query read/write type RWType is determined ( #71 )
...
Co-authored-by: jseljan <josip.seljan@memgraph.io>
2021-01-21 15:56:21 +01:00
Josip Seljan
8fc9298832
Avoid crashing the db when the ip address is invalid in a REGISTER REPLICA query ( #74 )
...
Co-authored-by: jseljan <josip.seljan@memgraph.io>
2021-01-21 15:56:21 +01:00
Josip Seljan
a0fb3fc463
Implement ReplicationQueryHandler class ( #52 )
...
* Refactor io::network::Endpoint class
* Add ParseSocketOrIpAddress static method to Endpoint class
* Implement ReplQueryHandler methods
* Add implementation of SetReplicationRole to ReplQueryHandler
* Fix PrepareReplicationQuery (create PullPlanVector)
Co-authored-by: jseljan <josip.seljan@memgraph.io>
2021-01-21 15:56:21 +01:00
Josip Seljan
87e00f4fef
Add support for specifying the replica port to SET REPLICATION ROLE query ( #61 )
...
Co-authored-by: jseljan <josip.seljan@memgraph.io>
2021-01-21 15:49:32 +01:00
antonio2368
200ce5f45e
Add configs and support for semi-sync and SSL ( #55 )
...
* Add config for replication client/server
* Add SSL to replication
* Add semi-sync replication
* Expose necessary information about replication
* Thread pool fix
* Set BasicResult value type to void
2021-01-21 15:49:32 +01:00
antonio2368
a0705746cb
Add epoch id and refactor replication client/server ( #51 )
2021-01-21 15:49:32 +01:00
Josip Seljan
4e36b646df
Replace "CREATE REPLICA" query with "REGISTER REPLICA" ( #50 )
...
Co-authored-by: jseljan <josip.seljan@memgraph.io>
2021-01-21 15:49:32 +01:00
antonio2368
7e9175052a
Define communication process ( #49 )
...
* Add basic communication process using commit timestamp
* Add file number to req
* Add proper recovery handling
* Allow loading of WALs with same seq num
* Allow always desired commit timestamp
* Set replica timestamp for operation
* Mark non-transactional timestamp as finished
2021-01-21 15:49:32 +01:00
Josip Seljan
3c85319701
Update replication queries to follow the new replication nomenclature ( #48 )
...
* MODE -> ROLE
Co-authored-by: jseljan <josip.seljan@memgraph.io>
2021-01-21 15:49:32 +01:00
antonio2368
76f0d5873b
Use unfinished tasks num instead of idle thread num ( #45 )
2021-01-21 15:49:32 +01:00