diff --git a/dbcon/joblist/dictstep-jl.cpp b/dbcon/joblist/dictstep-jl.cpp index 1e39d2407..86f6f4340 100644 --- a/dbcon/joblist/dictstep-jl.cpp +++ b/dbcon/joblist/dictstep-jl.cpp @@ -49,14 +49,16 @@ DictStepJL::DictStepJL(const pDictionaryStep& dict) hasEqFilter = dict.hasEqualityFilter; - if (hasEqFilter) + if (hasEqFilter && dict.eqFilter.size()> USEEQFILTERTHRESHOLD) { eqOp = dict.tmpCOP; eqFilter = dict.eqFilter; } else + { + hasEqFilter=false; filterString = dict.fFilterString; - + } filterCount = dict.fFilterCount; charsetNumber = dict.fColType.charsetNumber; } diff --git a/dbcon/joblist/primitivestep.h b/dbcon/joblist/primitivestep.h index 7b3ebe205..3a19b5b83 100644 --- a/dbcon/joblist/primitivestep.h +++ b/dbcon/joblist/primitivestep.h @@ -544,6 +544,7 @@ class pColScanStep : public JobStep /** @brief class pDictionaryStep * */ +#define USEEQFILTERTHRESHOLD 6 class pDictionaryStep : public JobStep { public: diff --git a/primitives/primproc/dictstep.cpp b/primitives/primproc/dictstep.cpp index 69fa86ccc..b4152e2d6 100644 --- a/primitives/primproc/dictstep.cpp +++ b/primitives/primproc/dictstep.cpp @@ -346,8 +346,6 @@ void DictStep::_execute() newRidList[i].pos = i; } - sort(&newRidList[0], &newRidList[bpp->ridCount], TokenSorter()); - tmpResultCounter = 0; i = 0;