You've already forked mariadb-columnstore-engine
mirror of
https://github.com/mariadb-corporation/mariadb-columnstore-engine.git
synced 2025-07-29 08:21:15 +03:00
MCOL-641 Refactor initial extent elimination support.
This commit also adds support in TupleHashJoinStep::forwardCPData, although we currently do not support wide decimals as join keys. Row estimation to determine large-side of the join is also updated.
This commit is contained in:
committed by
Roman Nozdrin
parent
ca53b6348a
commit
d3bc68b02f
@ -476,7 +476,9 @@ void TupleHashJoinStep::forwardCPData()
|
||||
|
||||
for (col = 0; col < joiners[i]->getSmallKeyColumns().size(); col++)
|
||||
{
|
||||
if (smallRGs[i].isLongString(joiners[i]->getSmallKeyColumns()[col]))
|
||||
uint32_t idx = joiners[i]->getSmallKeyColumns()[col];
|
||||
|
||||
if (smallRGs[i].isLongString(idx))
|
||||
continue;
|
||||
|
||||
// @bug3683, not to add CP predicates if large side is not simple column
|
||||
@ -484,8 +486,12 @@ void TupleHashJoinStep::forwardCPData()
|
||||
fFunctionJoinKeys.end())
|
||||
continue;
|
||||
|
||||
bool isSmallSideWideDecimal =
|
||||
datatypes::Decimal::isWideDecimalType(smallRGs[i].getColType(idx), smallRGs[i].getColumnWidth(idx));
|
||||
|
||||
largeBPS->addCPPredicates(largeRG.getOIDs()[joiners[i]->getLargeKeyColumns()[col]],
|
||||
joiners[i]->getCPData()[col], !joiners[i]->discreteCPValues()[col]);
|
||||
joiners[i]->getCPData()[col], !joiners[i]->discreteCPValues()[col],
|
||||
isSmallSideWideDecimal);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user