JoinAlgType TwoDimensionalJoiner::ChooseJoinAlgorithm(MultiIndex& mind, Condition& cond) { JoinAlgType join_alg = JTYPE_GENERAL; if(cond[0].IsType_JoinSimple() && cond[0].op == O_EQ) { if(cond.Size() == 1) join_alg = JTYPE_MAP; // available types checked inside else join_alg = JTYPE_HASH; } else { if(cond[0].IsType_JoinSimple() && (cond[0].op == O_MORE_EQ || cond[0].op == O_MORE || cond[0].op == O_LESS_EQ || cond[0].op == O_LESS)) join_alg = JTYPE_SORT; } return join_alg; }