Exemple #1
0
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; 
}