public void addCompareExpr()

in empire-db/src/main/java/org/apache/empire/db/expr/compare/DBCompareColExpr.java [205:289]


    public void addCompareExpr(DBSQLBuilder sql, long context)
    {   // Assemble expression
        DBCmpType op = cmpop;
        if (ObjectUtils.isEmpty(value))
        { // Null oder Not Null!
            op = DBCmpType.getNullType(op);
        }
        // Array Separator
        String arraySep;
        switch (op)
        { // other than default:
            case BETWEEN:
            case NOTBETWEEN:
                arraySep = " AND ";
                break;
            case IN:
            case NOTIN:
                arraySep = ", ";
                break;
            default:
                arraySep = (expr.getDataType().isNumeric() ? "+" : sql.getPhrase(DBSqlPhrase.SQL_CONCAT_EXPR));
                break;
        }
        // Add comparison operator and value
        String suffix = null;
        switch (op)
        {
            case EQUAL:
                sql.append("=");
                break;
            case NOTEQUAL:
                sql.append("<>");
                break;
            case LESSTHAN:
                sql.append("<");
                break;
            case MOREOREQUAL:
                sql.append(">=");
                break;
            case GREATERTHAN:
                sql.append(">");
                break;
            case LESSOREQUAL:
                sql.append("<=");
                break;
            case LIKE:
                sql.append(" LIKE ");
                break;
            case NOTLIKE:
                sql.append(" NOT LIKE ");
                break;
            case NULL:
                sql.append(" IS NULL");
                return;
            case NOTNULL:
                sql.append(" IS NOT NULL");
                return;
            case BETWEEN:
                sql.append(" BETWEEN ");
                break;
            case NOTBETWEEN:
                sql.append(" NOT BETWEEN ");
                break;
            case IN:
                sql.append(" IN (");
                if (value instanceof DBCommandExpr)
                    context |= CTX_NOPARENTHESIS;
                suffix = ")";
                break;
            case NOTIN:
                sql.append(" NOT IN (");
                if (value instanceof DBCommandExpr)
                    context |= CTX_NOPARENTHESIS;
                suffix = ")";
                break;
            default:
                // NONE
                sql.append(" ");
        }
        // append value
        sql.appendValue(expr.getDataType(), value, context, arraySep);
        // append suffix
        if (suffix != null)
            sql.append(suffix);
    }