* @throws TeiidComponentException
*/
void resolveBetweenCriteria(BetweenCriteria criteria)
throws QueryResolverException, TeiidComponentException {
Expression exp = criteria.getExpression();
Expression lower = criteria.getLowerExpression();
Expression upper = criteria.getUpperExpression();
// invariants: none of the expressions is an aggregate symbol
setDesiredType(exp,
(lower.getType() == null)
? upper.getType()
: lower.getType(), criteria);
// invariants: exp.getType() != null
setDesiredType(lower, exp.getType(), criteria);
setDesiredType(upper, exp.getType(), criteria);
// invariants: none of the types is null
String expTypeName = DataTypeManager.getDataTypeName(exp.getType());
String lowerTypeName = DataTypeManager.getDataTypeName(lower.getType());
String upperTypeName = DataTypeManager.getDataTypeName(upper.getType());
if (exp.getType().equals(lower.getType()) && exp.getType().equals(upper.getType())) {
return;
}
String commonType = ResolverUtil.getCommonType(new String[] {expTypeName, lowerTypeName, upperTypeName});
if (commonType != null) {