Query::Delete - can now delete Null (naturally occuring in optional match)
Reviewers: teon.banek Reviewed By: teon.banek Subscribers: pullbot Differential Revision: https://phabricator.memgraph.io/D339
This commit is contained in:
parent
cb7310fb6a
commit
0968224a3d
@ -576,7 +576,10 @@ bool Delete::DeleteCursor::Pull(Frame &frame, const SymbolTable &symbol_table) {
|
|||||||
"connections. Consider using DETACH DELETE.");
|
"connections. Consider using DETACH DELETE.");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// skip Edges (already deleted) and Nulls (can occur in optional match)
|
||||||
case TypedValue::Type::Edge:
|
case TypedValue::Type::Edge:
|
||||||
|
case TypedValue::Type::Null:
|
||||||
break;
|
break;
|
||||||
// check we're not trying to delete anything except vertices and edges
|
// check we're not trying to delete anything except vertices and edges
|
||||||
default:
|
default:
|
||||||
|
@ -412,6 +412,19 @@ TEST(QueryPlan, DeleteReturn) {
|
|||||||
EXPECT_EQ(0, CountIterable(dba->vertices()));
|
EXPECT_EQ(0, CountIterable(dba->vertices()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST(QueryPlan, DeleteNull) {
|
||||||
|
// test (simplified) WITH Null as x delete x
|
||||||
|
Dbms dbms;
|
||||||
|
auto dba = dbms.active();
|
||||||
|
AstTreeStorage storage;
|
||||||
|
SymbolTable symbol_table;
|
||||||
|
|
||||||
|
auto once = std::make_shared<Once>();
|
||||||
|
auto delete_op = std::make_shared<plan::Delete>(
|
||||||
|
once, std::vector<Expression *>{LITERAL(TypedValue::Null)}, false);
|
||||||
|
EXPECT_EQ(1, PullAll(delete_op, *dba, symbol_table));
|
||||||
|
}
|
||||||
|
|
||||||
TEST(QueryPlan, DeleteAdvance) {
|
TEST(QueryPlan, DeleteAdvance) {
|
||||||
// test queries on empty DB:
|
// test queries on empty DB:
|
||||||
// CREATE (n)
|
// CREATE (n)
|
||||||
|
Loading…
Reference in New Issue
Block a user