Bugfix: use indices when dumping edges

Reviewers: teon.banek

Reviewed By: teon.banek

Subscribers: pullbot

Differential Revision: https://phabricator.memgraph.io/D2142
This commit is contained in:
Tonko Sabolcec 2019-06-21 14:46:12 +02:00
parent 7edf3e6935
commit 1253319710
2 changed files with 13 additions and 11 deletions
src/database/single_node
tests/unit

View File

@ -105,7 +105,9 @@ void DumpVertex(std::ostream *os, GraphDbAccessor *dba,
void DumpEdge(std::ostream *os, GraphDbAccessor *dba,
const EdgeAccessor &edge) {
*os << "MATCH (u), (v)";
*os << "MATCH ";
*os << "(u:" << kInternalVertexLabel << "), ";
*os << "(v:" << kInternalVertexLabel << ")";
*os << " WHERE ";
*os << "u." << kInternalPropertyId << " = " << edge.from().CypherId();
*os << " AND ";

View File

@ -355,8 +355,8 @@ TEST(DumpTest, SingleEdge) {
EXPECT_EQ(DumpNext(&dump), "CREATE (:__mg_vertex__ {__mg_id__: 0});");
EXPECT_EQ(DumpNext(&dump), "CREATE (:__mg_vertex__ {__mg_id__: 1});");
EXPECT_EQ(DumpNext(&dump),
"MATCH (u), (v) WHERE u.__mg_id__ = 0 AND v.__mg_id__ = 1 CREATE "
"(u)-[:EdgeType]->(v);");
"MATCH (u:__mg_vertex__), (v:__mg_vertex__) WHERE u.__mg_id__ = "
"0 AND v.__mg_id__ = 1 CREATE (u)-[:EdgeType]->(v);");
EXPECT_EQ(DumpNext(&dump), kDropInternalIndex);
EXPECT_EQ(DumpNext(&dump), kRemoveInternalLabelProperty);
EXPECT_EQ(DumpNext(&dump), "");
@ -385,14 +385,14 @@ TEST(DumpTest, MultipleEdges) {
EXPECT_EQ(DumpNext(&dump), "CREATE (:__mg_vertex__ {__mg_id__: 1});");
EXPECT_EQ(DumpNext(&dump), "CREATE (:__mg_vertex__ {__mg_id__: 2});");
EXPECT_EQ(DumpNext(&dump),
"MATCH (u), (v) WHERE u.__mg_id__ = 0 AND v.__mg_id__ = 1 CREATE "
"(u)-[:EdgeType]->(v);");
"MATCH (u:__mg_vertex__), (v:__mg_vertex__) WHERE u.__mg_id__ = "
"0 AND v.__mg_id__ = 1 CREATE (u)-[:EdgeType]->(v);");
EXPECT_EQ(DumpNext(&dump),
"MATCH (u), (v) WHERE u.__mg_id__ = 1 AND v.__mg_id__ = 0 CREATE "
"(u)-[:EdgeType]->(v);");
"MATCH (u:__mg_vertex__), (v:__mg_vertex__) WHERE u.__mg_id__ = "
"1 AND v.__mg_id__ = 0 CREATE (u)-[:EdgeType]->(v);");
EXPECT_EQ(DumpNext(&dump),
"MATCH (u), (v) WHERE u.__mg_id__ = 1 AND v.__mg_id__ = 2 CREATE "
"(u)-[:EdgeType]->(v);");
"MATCH (u:__mg_vertex__), (v:__mg_vertex__) WHERE u.__mg_id__ = "
"1 AND v.__mg_id__ = 2 CREATE (u)-[:EdgeType]->(v);");
EXPECT_EQ(DumpNext(&dump), kDropInternalIndex);
EXPECT_EQ(DumpNext(&dump), kRemoveInternalLabelProperty);
EXPECT_EQ(DumpNext(&dump), "");
@ -417,8 +417,8 @@ TEST(DumpTest, EdgeWithProperties) {
EXPECT_EQ(DumpNext(&dump), "CREATE (:__mg_vertex__ {__mg_id__: 0});");
EXPECT_EQ(DumpNext(&dump), "CREATE (:__mg_vertex__ {__mg_id__: 1});");
EXPECT_EQ(DumpNext(&dump),
"MATCH (u), (v) WHERE u.__mg_id__ = 0 AND v.__mg_id__ = 1 CREATE "
"(u)-[:EdgeType {prop: 13}]->(v);");
"MATCH (u:__mg_vertex__), (v:__mg_vertex__) WHERE u.__mg_id__ = "
"0 AND v.__mg_id__ = 1 CREATE (u)-[:EdgeType {prop: 13}]->(v);");
EXPECT_EQ(DumpNext(&dump), kDropInternalIndex);
EXPECT_EQ(DumpNext(&dump), kRemoveInternalLabelProperty);
EXPECT_EQ(DumpNext(&dump), "");