@Override protected Type visitLikePredicate(LikePredicate node, AnalysisContext context) { coerceType(context, node.getValue(), VARCHAR, "Left side of LIKE expression"); coerceType(context, node.getPattern(), VARCHAR, "Pattern for LIKE expression"); if (node.getEscape() != null) { coerceType(context, node.getEscape(), VARCHAR, "Escape for LIKE expression"); } expressionTypes.put(node, BOOLEAN); return BOOLEAN; }
@Override protected String visitLikePredicate(LikePredicate node, Boolean unmangleNames) { StringBuilder builder = new StringBuilder(); builder .append('(') .append(process(node.getValue(), unmangleNames)) .append(" LIKE ") .append(process(node.getPattern(), unmangleNames)); if (node.getEscape() != null) { builder.append(" ESCAPE ").append(process(node.getEscape(), unmangleNames)); } builder.append(')'); return builder.toString(); }