Skip to content

Commit

Permalink
Quick fix for OOM issue with transitive paths
Browse files Browse the repository at this point in the history
TODO: This only works when the start side of the transitive path
operation has an empty local vocab. What is the right way to fix this?
  • Loading branch information
Hannah Bast committed Nov 17, 2024
1 parent 39ca684 commit 85cd239
Showing 1 changed file with 10 additions and 2 deletions.
12 changes: 10 additions & 2 deletions src/engine/TransitivePathImpl.h
Original file line number Diff line number Diff line change
Expand Up @@ -314,8 +314,16 @@ class TransitivePathImpl : public TransitivePathBase {
// Bound -> var|id
std::span<const Id> startNodes = startSideResult->idTable().getColumn(
startSide.treeAndCol_.value().second);
co_yield TableColumnWithVocab{&startSideResult->idTable(), startNodes,
startSideResult->getCopyOfLocalVocab()};
// Non-empty local vocab for map is not supported yet.
if (!startSideResult->localVocab().empty()) {
AD_THROW(
"Local vocab in `startSideResult` of `TransitivePath` is not "
"supported, please report this issue");
}
co_yield TableColumnWithVocab{
&startSideResult->idTable(), startNodes, {}};
// co_yield TableColumnWithVocab{&startSideResult->idTable(), startNodes,
// startSideResult->getCopyOfLocalVocab()};
} else {
for (auto& [idTable, localVocab] : startSideResult->idTables()) {
// Bound -> var|id
Expand Down

0 comments on commit 85cd239

Please sign in to comment.