1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-27 21:01:50 +03:00

MCOL-4766 ROLLBACK kept ranges changed inside rolled back transaction

Now ROLLBACK drops ranges to INVALID state which makes engine to rescan
blocks and discover correct ranges.
This commit is contained in:
Sergey Zefirov
2021-06-23 17:06:21 +03:00
parent 866dc25729
commit 9e0851e4cf
9 changed files with 56 additions and 10 deletions

View File

@ -4501,7 +4501,7 @@ void DBRM::deleteAISequence(uint32_t OID)
}
}
void DBRM::invalidateUncommittedExtentLBIDs(execplan::CalpontSystemCatalog::SCN txnid, vector<LBID_t>* plbidList)
void DBRM::invalidateUncommittedExtentLBIDs(execplan::CalpontSystemCatalog::SCN txnid, bool allExtents, vector<LBID_t>* plbidList)
{
// Here we want to minimize the number of calls to dbrm
// Given that, and the fact that we need to know the column type
@ -4594,7 +4594,7 @@ void DBRM::invalidateUncommittedExtentLBIDs(execplan::CalpontSystemCatalog::SCN
aInfo.isBinaryColumn = false;
}
aInfo.seqNum = SEQNUM_MARK_UPDATING_INVALID_SET_RANGE;
aInfo.seqNum = allExtents ? SEQNUM_MARK_INVALID_SET_RANGE : SEQNUM_MARK_UPDATING_INVALID_SET_RANGE;
cpInfos.push_back(aInfo);
}