Skip to content

Commit f2f310e

Browse files
committed
Fix the gar loader
Committed-by: acezen from Dev container
1 parent 2abf79f commit f2f310e

File tree

1 file changed

+24
-9
lines changed

1 file changed

+24
-9
lines changed

analytical_engine/core/fragment/arrow_projected_fragment.h

+24-9
Original file line numberDiff line numberDiff line change
@@ -862,17 +862,17 @@ class ArrowProjectedFragment
862862
size_t nbytes = 0;
863863
if (fragment->directed()) {
864864
vineyard::FixedInt64Builder ie_offsets_begin_builder(
865-
client, fragment->tvnums_[v_label]);
865+
client, fragment->ivnums_[v_label]);
866866
vineyard::FixedInt64Builder ie_offsets_end_builder(
867-
client, fragment->tvnums_[v_label]);
867+
client, fragment->ivnums_[v_label]);
868868
std::shared_ptr<vineyard::FixedInt64Builder> ie_boffsets_begin_builder;
869869
std::shared_ptr<vineyard::FixedInt64Builder> ie_boffsets_end_builder;
870870
if (COMPACT) {
871871
ie_boffsets_begin_builder =
872872
std::make_shared<vineyard::FixedInt64Builder>(
873-
client, fragment->tvnums_[v_label]);
873+
client, fragment->ivnums_[v_label]);
874874
ie_boffsets_end_builder = std::make_shared<vineyard::FixedInt64Builder>(
875-
client, fragment->tvnums_[v_label]);
875+
client, fragment->ivnums_[v_label]);
876876
selectEdgeByNeighborLabel(
877877
fragment, v_label,
878878
fragment->compact_ie_lists_[v_label][e_label]->GetArray(),
@@ -914,17 +914,17 @@ class ArrowProjectedFragment
914914
oe_boffsets_end;
915915
{
916916
vineyard::FixedInt64Builder oe_offsets_begin_builder(
917-
client, fragment->tvnums_[v_label]);
917+
client, fragment->ivnums_[v_label]);
918918
vineyard::FixedInt64Builder oe_offsets_end_builder(
919-
client, fragment->tvnums_[v_label]);
919+
client, fragment->ivnums_[v_label]);
920920
std::shared_ptr<vineyard::FixedInt64Builder> oe_boffsets_begin_builder;
921921
std::shared_ptr<vineyard::FixedInt64Builder> oe_boffsets_end_builder;
922922
if (COMPACT) {
923923
oe_boffsets_begin_builder =
924924
std::make_shared<vineyard::FixedInt64Builder>(
925-
client, fragment->tvnums_[v_label]);
925+
client, fragment->ivnums_[v_label]);
926926
oe_boffsets_end_builder = std::make_shared<vineyard::FixedInt64Builder>(
927-
client, fragment->tvnums_[v_label]);
927+
client, fragment->ivnums_[v_label]);
928928
selectEdgeByNeighborLabel(
929929
fragment, v_label,
930930
fragment->compact_oe_lists_[v_label][e_label]->GetArray(),
@@ -1680,7 +1680,21 @@ class ArrowProjectedFragment
16801680
const std::shared_ptr<arrow::FixedSizeBinaryArray>& nbr_list,
16811681
const std::shared_ptr<arrow::Int64Array>& offsets, int64_t* begins,
16821682
int64_t* ends) {
1683+
LOG(INFO) << "selectEdgeByNeighborLabel: " << v_label << " tvnm: " << fragment->tvnums_[v_label] << " offsets: " << offsets->length();
16831684
const int64_t* offset_values = offsets->raw_values();
1685+
for (vid_t i = 0; i < fragment->ivnums_[v_label]; ++i) {
1686+
int64_t begin = offset_values[i], end = offset_values[i + 1];
1687+
if (begin == end) { // optimize for vertices that has no edge.
1688+
begins[i] = begin;
1689+
ends[i] = end;
1690+
} else {
1691+
auto range =
1692+
getRangeOfLabel(fragment, v_label, nbr_list, begin, end);
1693+
begins[i] = range.first;
1694+
ends[i] = range.second;
1695+
}
1696+
}
1697+
/*
16841698
vineyard::parallel_for(
16851699
static_cast<vid_t>(0), fragment->tvnums_[v_label],
16861700
[&](vid_t i) {
@@ -1696,6 +1710,7 @@ class ArrowProjectedFragment
16961710
}
16971711
},
16981712
std::thread::hardware_concurrency(), 1024);
1713+
*/
16991714
return {};
17001715
}
17011716

@@ -1708,7 +1723,7 @@ class ArrowProjectedFragment
17081723
const int64_t* offset_values = offsets->raw_values();
17091724
const int64_t* boffset_values = boffsets->raw_values();
17101725
vineyard::parallel_for(
1711-
static_cast<vid_t>(0), fragment->tvnums_[v_label],
1726+
static_cast<vid_t>(0), fragment->ivnums_[v_label],
17121727
[&](vid_t i) {
17131728
int64_t begin = offset_values[i], end = offset_values[i + 1];
17141729
int64_t bbegin = boffset_values[i], bend = boffset_values[i + 1];

0 commit comments

Comments
 (0)