@Override public Value getValue(ServerSession session) { Value v = condition.getValue(session); if (v == ValueNull.INSTANCE) { return v; } return v.convertTo(Value.BOOLEAN).negate(); }
private int readInt() { boolean minus = false; if (currentTokenType == MINUS) { minus = true; read(); } else if (currentTokenType == PLUS) { read(); } if (currentTokenType != VALUE) { throw DbException.getSyntaxError(sqlCommand, parseIndex, "integer"); } if (minus) { // must do that now, otherwise Integer.MIN_VALUE would not work currentValue = currentValue.negate(); } int i = currentValue.getInt(); read(); return i; }
private long readLong() { boolean minus = false; if (currentTokenType == MINUS) { minus = true; read(); } else if (currentTokenType == PLUS) { read(); } if (currentTokenType != VALUE) { throw DbException.getSyntaxError(sqlCommand, parseIndex, "long"); } if (minus) { // must do that now, otherwise Long.MIN_VALUE would not work currentValue = currentValue.negate(); } long i = currentValue.getLong(); read(); return i; }
return l == ValueNull.INSTANCE ? l : l.negate(); case CONCAT: { Mode mode = session.getDatabase().getMode();
@Override public Expression optimize(ServerSession session) { Expression e2 = condition.getNotIfPossible(session); if (e2 != null) { return e2.optimize(session); } Expression expr = condition.optimize(session); if (expr.isConstant()) { Value v = expr.getValue(session); if (v == ValueNull.INSTANCE) { return ValueExpression.getNull(); } return ValueExpression.get(v.convertTo(Value.BOOLEAN).negate()); } condition = expr; return this; }
switch (info.type) { case ABS: result = v0.getSignum() > 0 ? v0 : v0.negate(); break; case ACOS:
read(); if (currentTokenType == VALUE) { r = ValueExpression.get(currentValue.negate()); if (r.getType() == Value.LONG && r.getValue(session).getLong() == Integer.MIN_VALUE) {