@Override
    public Void visit(TemplateExpression<?> expr, Void context) {
        if (expr.equals(Expressions.TRUE)) {
            append(templates.serialize("1", Types.BOOLEAN));
        } else if (expr.equals(Expressions.FALSE)) {
            append(templates.serialize("0", Types.BOOLEAN));
        } else if (inJoin && expr instanceof RelationalFunctionCall
                && templates.isFunctionJoinsWrapped()) {
            append("table(");
            super.visit(expr, context);
            append(")");
        } else {
            super.visit(expr, context);
        }
        return null;
    }
Return a list of expressions that can be used to uniquely define the query sources

@param joins
@return identifier columns
querydsl-sql/src/main/java/com/querydsl/sql/SQLSerializer.java