Skip to content

Commit

Permalink
Next
Browse files Browse the repository at this point in the history
  • Loading branch information
joka921 committed Jan 15, 2024
1 parent 33ffb80 commit b2d7e4f
Show file tree
Hide file tree
Showing 3 changed files with 13 additions and 5 deletions.
7 changes: 4 additions & 3 deletions src/engine/HasPredicateScan.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ static constexpr auto makeJoin = [](auto* qec, auto subtree,
subtree->getVariableAndInfoByColumnIndex(subtreeColIndex).first;
auto hasPatternScan = ad_utility::makeExecutionTree<IndexScan>(
qec, Permutation::Enum::PSO,
SparqlTriple{subtreeVar, HAS_PATTERN_PREDICATE, Variable{"?pattern"}});
SparqlTriple{subtreeVar, HAS_PATTERN_PREDICATE, Variable{"?patternInternal"}});
auto joinedSubtree = ad_utility::makeExecutionTree<Join>(
qec, std::move(subtree), std::move(hasPatternScan), subtreeColIndex, 0);
auto column = joinedSubtree->getVariableColumns().at(subtreeVar).columnIndex_;
Expand Down Expand Up @@ -103,7 +103,7 @@ size_t HasPredicateScan::getResultWidth() const {
case ScanType::FULL_SCAN:
return 2;
case ScanType::SUBQUERY_S:
return subtree().getResultWidth() + 1;
return subtree().getResultWidth();
}
return -1;
}
Expand Down Expand Up @@ -144,7 +144,8 @@ VariableToColumnMap HasPredicateScan::computeVariableToColumnMap() const {
break;
case ScanType::SUBQUERY_S:
varCols = subtree().getVariableColumns();
varCols.insert(std::make_pair(V{_object}, col(getResultWidth() - 1)));
varCols.insert(std::make_pair(V{_object}, col(subtreeColIdx())));
varCols.erase(Variable{"?patternInternal"});
break;
}
return varCols;
Expand Down
4 changes: 4 additions & 0 deletions src/engine/IndexScan.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ class IndexScan : public Operation {

vector<ColumnIndex> resultSortedOn() const override;

size_t numVariables() const {
return numVariables_;
}

void setTextLimit(size_t) override {
// Do nothing.
}
Expand Down
7 changes: 5 additions & 2 deletions src/engine/Join.h
Original file line number Diff line number Diff line change
Expand Up @@ -122,8 +122,11 @@ class Join : public Operation {
ColumnIndex jc2, IdTable* dynRes);

static bool isFullScanDummy(std::shared_ptr<QueryExecutionTree> tree) {
return tree->getType() == QueryExecutionTree::SCAN &&
tree->getResultWidth() == 3;
if (tree->getType() != QueryExecutionTree::SCAN) {
return false;
}
const auto& scan = dynamic_cast<const IndexScan&>(*tree->getRootOperation());
return scan.numVariables() == 3;
}

protected:
Expand Down

0 comments on commit b2d7e4f

Please sign in to comment.