Skip to content

Wrong Connections / links established between nodes and relationships after executing Ldbc IU_Queries

1) Issue Description: For example run LDBC_IU_QUERY_1 in poseidon ( https://ldbc.github.io/ldbc_snb_docs_snapshot/interactive-insert-01.pdf). After query execution, check the connections from source nodes -->relationships--> destination nodes.

2) How to reproduce the issue:

Scenario:

  1. Load the required data.
  2. As an example, run "LDBC_IU_QUERY_1".
  3. Check if the nodes are reachable from the relationships.

Detailed steps to reproduce:

load any SF data by : ./ldbc_loader

Run only LDBC_IU_1 by commenting-out other queries at line https://dbgit.prakinf.tu-ilmenau.de/code/poseidon_core/-/blob/null_values/src/ldbc/ldbc_updates.cpp#L1704

void run_benchmark(graph_db_ptr gdb) { double t = 0.0; t = run_query_1(gdb); }

To get to the issue, insert the following DEBUG-1 & DEBUG-2 code at line https://dbgit.prakinf.tu-ilmenau.de/code/poseidon_core/-/blob/null_values/src/ldbc/ldbc_updates.cpp#L1797

and then Execute ==> ./run_ldbc_updates

//DEBUG-1: This below code displays correctly

graph->nodes_by_label("Person" , [&] (node& src_node) {

graph->foreach_from_relationship_of_node(src_node, [&] (auto &r) {

auto label = std::string(graph->get_string(r.rship_label));

auto &dest_node = graph->node_by_id(r.to_node_id());

std::cout << src_node.id() << "-[" << label << "]->" << dest_node.id() << std::endl;

}); });

// DEBUG-1's: Correct output :

"person-id"-[:workAt]->"company-id"

"person-id"-[:studyAt]->"organization-id"

"person-id"-[:hasInterest]->"Tag-id"

"person-id"-[:isLocatedIn]->"Place-id"

Where ids are the node.id() in poseidon

//DEBUG-2: Below code displays wrong connection between relationship and a destination node.

graph->nodes_by_label("Place" , [&] (node& src_node) {

graph->foreach_from_relationship_of_node(src_node, [&] (auto &r) {

auto label = std::string(graph->get_string(r.rship_label));

auto &dest_node = graph->node_by_id(r.to_node_id());

std::cout << src_node.id() << "-[" << label << "]->" << dest_node.id() << std::endl;

}); });

Similarly check output for "Tag" & "Organisation" using DEBUG-2.

Edited by Arun Kumar Tharanatha