1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-30 19:23:07 +03:00

when eq Filtercount <6 ,the speed of for loop is faster than hashmap

add threshold for eqFilter
This commit is contained in:
NTH19
2022-08-19 22:35:28 +08:00
parent 50d95bf60a
commit df7c967d54
3 changed files with 5 additions and 4 deletions

View File

@ -49,14 +49,16 @@ DictStepJL::DictStepJL(const pDictionaryStep& dict)
hasEqFilter = dict.hasEqualityFilter; hasEqFilter = dict.hasEqualityFilter;
if (hasEqFilter) if (hasEqFilter && dict.eqFilter.size()> USEEQFILTERTHRESHOLD)
{ {
eqOp = dict.tmpCOP; eqOp = dict.tmpCOP;
eqFilter = dict.eqFilter; eqFilter = dict.eqFilter;
} }
else else
{
hasEqFilter=false;
filterString = dict.fFilterString; filterString = dict.fFilterString;
}
filterCount = dict.fFilterCount; filterCount = dict.fFilterCount;
charsetNumber = dict.fColType.charsetNumber; charsetNumber = dict.fColType.charsetNumber;
} }

View File

@ -544,6 +544,7 @@ class pColScanStep : public JobStep
/** @brief class pDictionaryStep /** @brief class pDictionaryStep
* *
*/ */
#define USEEQFILTERTHRESHOLD 6
class pDictionaryStep : public JobStep class pDictionaryStep : public JobStep
{ {
public: public:

View File

@ -346,8 +346,6 @@ void DictStep::_execute()
newRidList[i].pos = i; newRidList[i].pos = i;
} }
sort(&newRidList[0], &newRidList[bpp->ridCount], TokenSorter());
tmpResultCounter = 0; tmpResultCounter = 0;
i = 0; i = 0;