presto-main/src/main/java/io/prestosql/sql/planner/DesugarLikeRewriter.java/DesugarLikeRewriter/rewriteLikePredicate
class DesugarLikeRewriter:        @Override
        public FunctionCall rewriteLikePredicate(LikePredicate node, Void context, ExpressionTreeRewriter<Void> treeRewriter)
        {
            LikePredicate rewritten = treeRewriter.defaultRewrite(node, context);

            FunctionCall patternCall;
            if (rewritten.getEscape().isPresent()) {
                patternCall = new FunctionCallBuilder(metadata)
                        .setName(QualifiedName.of(LIKE_PATTERN_FUNCTION_NAME))
                        .addArgument(getType(node.getPattern()), rewritten.getPattern())
                        .addArgument(getType(node.getEscape().get()), rewritten.getEscape().get())
                        .build();
            }
            else {
                patternCall = new FunctionCallBuilder(metadata)
                        .setName(QualifiedName.of(LIKE_PATTERN_FUNCTION_NAME))
                        .addArgument(VARCHAR, rewritten.getPattern())
                        .build();
            }

            return new FunctionCallBuilder(metadata)
                    .setName(QualifiedName.of("LIKE"))
                    .addArgument(getType(node.getValue()), rewritten.getValue())
                    .addArgument(LIKE_PATTERN, patternCall)
                    .build();
        }