1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-11-02 06:13:16 +03:00

feat(rbo,rules,QA): SC::setSimpleColumn does not have more than 1 SC in its SimpleColumn list.

This commit is contained in:
drrtuy
2025-07-29 12:48:41 +00:00
parent bd168834b1
commit 8f4e9228b2
2 changed files with 11 additions and 10 deletions

View File

@@ -1018,18 +1018,12 @@ execplan::SCSEP CalpontSelectExecutionPlan::cloneForTableWORecursiveSelects(
for (const auto& rc : fReturnedCols) for (const auto& rc : fReturnedCols)
{ {
rc->setSimpleColumnList(); rc->setSimpleColumnList();
for (auto* simpleColumn : rc->simpleColumnList()) for (auto* sc : rc->simpleColumnList())
{ {
// TODO check that is columnstore is correct if (targetTableAlias.weakerEq(*sc->singleTable()))
// use RC::singleTable here
execplan::CalpontSystemCatalog::TableAliasName rcTable(
simpleColumn->schemaName(), simpleColumn->tableName(), simpleColumn->tableAlias(), "",
simpleColumn->isColumnStore());
if (!targetTableAlias.weakerEq(rcTable))
{ {
continue; newReturnedCols.push_back(SRCP(rc->clone()));
} }
newReturnedCols.push_back(SRCP(rc->clone()));
} }
} }
if (newReturnedCols.empty()) if (newReturnedCols.empty())

View File

@@ -749,7 +749,14 @@ void SimpleColumn::evaluate(Row& row, bool& isNull)
void SimpleColumn::setSimpleColumnList() void SimpleColumn::setSimpleColumnList()
{ {
fSimpleColumnList.push_back(this); if (fSimpleColumnList.empty())
{
fSimpleColumnList.push_back(this);
}
else
{
fSimpleColumnList.back() = this;
}
} }
std::optional<CalpontSystemCatalog::TableAliasName> sameTableCheck(std::vector<SimpleColumn*> simpleColumnList) std::optional<CalpontSystemCatalog::TableAliasName> sameTableCheck(std::vector<SimpleColumn*> simpleColumnList)