}
else if (node instanceof CastExpression)
return assembleCastExpression((CastExpression)node,
columnContext, subqueryAssembler);
else if (node instanceof ComparisonCondition) {
ComparisonCondition cond = (ComparisonCondition)node;
TPreparedExpression left = assembleExpression(cond.getLeft(), columnContext, subqueryAssembler);
TPreparedExpression right = assembleExpression(cond.getRight(), columnContext, subqueryAssembler);
// never use a collator if we have a KeyComparable
AkCollator collator = (cond.getKeyComparable() == null) ? collator(cond, left, right) : null;
if (collator != null)
return collate(left, cond.getOperation(), right, collator);
else
return compare(left, cond, right);
}
else if (node instanceof FunctionExpression) {
FunctionExpression funcNode = (FunctionExpression)node;