memgraph/tests/unit
Teon Banek 93de41e717 Throw RecordDeletedError if updating a deleted record
Summary:
Previously, we would have a `DCHECK` which crashes the application. This
was evident when testing a queries, such as:

    MATCH (n) DELETE n SET n.prop = 42

Since the argument to update clauses is evaluated during execution, it
makes it very difficult to prevent such errors during semantic analysis.
For example:

    MATCH (n)--(m) WITH collect(n) as ns, m
    DETACH DELETE ns[m.prop] SET head(ns).prop = 42

Test query updates on deleted graph elements

Reviewers: florijan, dgleich

Reviewed By: florijan

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D1114
2018-01-17 14:30:57 +01:00
..
bolt_buffer.cpp Use GLogger instead of broken memgraph Logger. 2017-06-21 15:33:24 +02:00
bolt_chunked_decoder_buffer.cpp Fixed bolt decoder chunked buffer implementation. 2017-09-06 13:19:42 +02:00
bolt_chunked_encoder_buffer.cpp Fixed bolt chunked encoder buffer for big data. 2017-09-06 15:36:24 +02:00
bolt_common.hpp Close session on timeouts 2017-10-17 14:34:31 +02:00
bolt_decoder.cpp First version of bolt cpp client. 2017-08-24 17:44:44 +02:00
bolt_encoder.cpp Refactor GraphDb 2018-01-12 16:47:24 +01:00
bolt_result_stream.cpp Use GLogger instead of broken memgraph Logger. 2017-06-21 15:33:24 +02:00
bolt_session.cpp Refactor GraphDb 2018-01-12 16:47:24 +01:00
bolt_testdata.hpp Removed large bolt encoder test to reduce runtime. 2017-05-03 14:50:02 +02:00
CMakeLists.txt Integrate code coverage with Apollo 2018-01-15 12:20:11 +01:00
concurrent_id_mapper_distributed.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
concurrent_id_mapper_single_node.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
concurrent_list.cpp clang format has been run on all hpp and cpp files under src and tests 2017-02-18 11:54:37 +01:00
concurrent_map_access.cpp Const map/set iteration. 2017-10-12 16:35:39 +02:00
concurrent_map.cpp Remove traces of custom assert 2017-10-13 09:34:13 +02:00
concurrent_set.cpp Remove traces of custom assert 2017-10-13 09:34:13 +02:00
counters.cpp Rename NetworkEndpoint 2018-01-15 15:47:37 +01:00
cypher_main_visitor.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
database_key_index.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
database_label_property_index.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
database_transaction_timeout.cpp Refactor GraphDb 2018-01-12 16:47:24 +01:00
datastructure_union_find.cpp Add parallel customers/Otto test 2017-11-23 09:20:53 +01:00
deferred_deleter.cpp Make gc more aggressive and optimise is_not_visible function 2017-10-06 10:07:55 +02:00
distributed_coordination.cpp Rename NetworkEndpoint 2018-01-15 15:47:37 +01:00
distributed_serialization.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
durability.cpp Reduce durability test flakyness 2018-01-15 11:12:05 +01:00
dynamic_bitset.cpp Newer bits on head chunk in DynamicBitset 2017-09-20 16:56:58 +02:00
exceptions.cpp Merge utils/exceptions into single file 2017-04-20 16:53:21 +02:00
executor.cpp Remove executor not run option 2017-12-18 14:36:15 +01:00
gid.cpp Change gid bit size 2017-12-28 11:04:52 +01:00
graph_db_accessor_index_api.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
graph_db_accessor.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
graph_db.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
interpreter.cpp Refactor GraphDb 2018-01-12 16:47:24 +01:00
messaging_distributed.cpp Rename NetworkEndpoint 2018-01-15 15:47:37 +01:00
messaging_local.cpp Add first version of message passing and rpc 2017-12-05 14:51:18 +01:00
mvcc_find_update_common.hpp Extract tx::SingleNodeEngine from tx::MasterEngine 2018-01-11 15:44:42 +01:00
mvcc_find.cpp GC bugfixes, MVCC and transaction refactoring 2017-06-12 10:46:12 +02:00
mvcc_gc_common.hpp Extract tx::SingleNodeEngine from tx::MasterEngine 2018-01-11 15:44:42 +01:00
mvcc_gc.cpp Extract tx::SingleNodeEngine from tx::MasterEngine 2018-01-11 15:44:42 +01:00
mvcc_one_transaction.cpp Fix mvcc tests 2017-10-19 12:58:23 +02:00
mvcc_parallel_update.cpp Fix mvcc tests 2017-10-19 12:58:23 +02:00
mvcc.cpp Extract tx::SingleNodeEngine from tx::MasterEngine 2018-01-11 15:44:42 +01:00
network_endpoint.cpp Rename NetworkEndpoint 2018-01-15 15:47:37 +01:00
network_timeouts.cpp Rename NetworkEndpoint 2018-01-15 15:47:37 +01:00
property_value_store.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
query_common.hpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
query_cost_estimator.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
query_expression_evaluator.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
query_plan_accumulate_aggregate.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
query_plan_bag_semantics.cpp Refactor GraphDb 2018-01-12 16:47:24 +01:00
query_plan_common.hpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
query_plan_create_set_remove_delete.cpp Throw RecordDeletedError if updating a deleted record 2018-01-17 14:30:57 +01:00
query_plan_edge_cases.cpp Refactor GraphDb 2018-01-12 16:47:24 +01:00
query_plan_match_filter_return.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
query_planner.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
query_semantic.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
query_variable_start_planner.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
queue.cpp Add first version of message passing and rpc 2017-12-05 14:51:18 +01:00
raft_storage.cpp Cleanup utils::File API 2018-01-16 15:38:12 +01:00
raft.cpp Implement simple log file storage for raft 2018-01-15 18:07:45 +01:00
record_edge_vertex_accessor.cpp Migrate db::types to storage:: 2018-01-17 10:35:12 +01:00
ring_buffer.cpp RingBuffer - buffer on heap instead of stack 2017-11-02 12:07:23 +01:00
rpc.cpp Rename NetworkEndpoint 2018-01-15 15:47:37 +01:00
scheduler.cpp Change scheduler to first wait then execute 2017-10-09 15:40:00 +02:00
serialization_optional.cpp Implement vertex/edge serialization 2018-01-10 13:32:18 +01:00
signal_handler.cpp Prevent double termination signals causing crashes 2017-11-09 10:41:16 +01:00
skiplist_access.cpp Const map/set iteration. 2017-10-12 16:35:39 +02:00
skiplist_gc.cpp Remove executor not run option 2017-12-18 14:36:15 +01:00
skiplist_position_and_count.cpp Replace debug_assert, permanent_assert with DCHECK/CHECK 2017-10-11 14:43:32 +02:00
skiplist_reverse_iteration.cpp Logger in this test somehow breaks code coverage. Argh... 2017-04-07 09:44:12 +02:00
skiplist_suffix.cpp Refactor GraphDb 2018-01-12 16:47:24 +01:00
state_delta.cpp Refactor GraphDb 2018-01-12 16:47:24 +01:00
static_bitset.cpp Fix tests that expect debug_assert to fail 2017-08-07 16:38:15 +02:00
storage_address.cpp Change gid bit size 2017-12-28 11:04:52 +01:00
stripped.cpp Fix semicolon in column name 2017-12-14 09:44:21 +01:00
timestamp.cpp all unit tests are gtests 2017-02-19 23:47:09 +01:00
transaction_engine_distributed.cpp Rename NetworkEndpoint 2018-01-15 15:47:37 +01:00
transaction_engine_single_node.cpp Extract tx::SingleNodeEngine from tx::MasterEngine 2018-01-11 15:44:42 +01:00
typed_value.cpp Refactor GraphDb 2018-01-12 16:47:24 +01:00
utils_network.cpp Rename NetworkEndpoint 2018-01-15 15:47:37 +01:00
utils_on_scope_exit.cpp utils::auto_scope refactor 2017-08-11 09:43:10 +02:00
utils_string.cpp Fix durability test flakyness 2017-12-04 13:46:56 +01:00
watchdog.cpp Add Watchdog utility 2017-11-09 11:23:11 +01:00