/** * Create a new expression with the given value. * * @param value the value * @return the expression */ public static ValueExpression get(Value value) { if (value == ValueNull.INSTANCE) { return getNull(); } return new ValueExpression(value); }
@Override public Expression optimize(Session 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; }
@Override public Expression[] getExpressionColumns(Session session) { if (getType() == Value.ARRAY) { return getExpressionColumns(session, (ValueArray) getValue(session)); } return super.getExpressionColumns(session); }
public void setInt(int value) { this.expression = ValueExpression.get(ValueInt.get(value)); }
Function f = Function.getFunction(database, "ARRAY_GET"); f.setParameter(0, expression); f.setParameter(1, ValueExpression.get(ValueInt.get(i + 1))); f.doneWithParameters(); command.setAssignment(column, f); Expression expression; if (readIf("DEFAULT")) { expression = ValueExpression.getDefault(); } else { expression = readExpression();
Expression expression; if (readIf("DEFAULT")) { expression = ValueExpression.getDefault(); } else { expression = readExpression(); Expression expression; if (readIf("DEFAULT")) { expression = ValueExpression.getDefault(); } else { expression = readExpression();
@Override public Expression getNotIfPossible(Session session) { return new Comparison(session, Comparison.EQUAL, this, ValueExpression.get(ValueBoolean.get(false))); }
IndexCondition.get( Comparison.EQUAL_NULL_SAFE, l, ValueExpression.getNull()));
if (r == ValueNull.INSTANCE) { if ((compareType & NULL_SAFE) == 0) { return ValueExpression.getNull(); return ValueExpression.get(getValue(session)); DbException.throwInternalError(); if (left == ValueExpression.getNull() || right == ValueExpression.getNull()) { return ValueExpression.getNull(); return ValueExpression.get(getValue(session));
@Override public Expression getNotIfPossible(Session session) { return new Comparison(session, Comparison.EQUAL, this, ValueExpression.get(ValueBoolean.get(false))); }
@Override public Expression getNotIfPossible(Session session) { return new Comparison(session, Comparison.EQUAL, this, ValueExpression.get(ValueBoolean.get(false))); }
if (l == ValueNull.INSTANCE) { return ValueExpression.getNull(); return ValueExpression.get(getValue(session)); return ValueExpression.getNull(); return ValueExpression.getNull(); return ValueExpression.getNull(); Expression expr = ValueExpression.get(value); return new Comparison(session, Comparison.EQUAL, left, expr).optimize(session);
private Table getDualTable(boolean noColumns) { Schema main = database.findSchema(Constants.SCHEMA_MAIN); Expression one = ValueExpression.get(ValueLong.get(1)); return new RangeTable(main, one, one, noColumns); }
d = 0; for (Expression e : args) { if (e != ValueExpression.getNull()) { int type = e.getType(); if (type != Value.UNKNOWN && type != Value.NULL) { if (then != ValueExpression.getNull()) { int type = then.getType(); if (type != Value.UNKNOWN && type != Value.NULL) { if (elsePart != ValueExpression.getNull()) { int type = elsePart.getType(); if (type != Value.UNKNOWN && type != Value.NULL) { return ValueExpression.get(v);
@Override public Expression optimize(Session session) { boolean allConst = true; for (int i = 0; i < list.length; i++) { Expression e = list[i].optimize(session); if (!e.isConstant()) { allConst = false; } list[i] = e; } if (allConst) { return ValueExpression.get(getValue(session)); } return this; }
String date = currentValue.getString(); read(); r = ValueExpression.get(ValueDate.parse(date)); } else if (equalsToken("TIME", name) || equalsToken("T", name)) { String time = currentValue.getString(); read(); r = ValueExpression.get(ValueTime.parse(time)); } else if (equalsToken("TIMESTAMP", name) || equalsToken("TS", name)) { read(); r = ValueExpression .get(ValueTimestamp.parse(timestamp)); } else if (equalsToken("X", name)) { read(); byte[] buffer = StringUtils .convertHexToBytes(currentValue.getString()); r = ValueExpression.get(ValueBytes.getNoCopy(buffer)); } else if (equalsToken("E", name)) { String text = currentValue.getString(); r = ValueExpression.get(ValueString.get(text)); } else if (equalsToken("N", name)) { r = ValueExpression.get(ValueString.get(text)); } else { r = new ExpressionColumn(database, null, null, name);
/** * Set the default expression. * * @param session the session * @param defaultExpression the default expression */ public void setDefaultExpression(Session session, Expression defaultExpression) { // also to test that no column names are used if (defaultExpression != null) { defaultExpression = defaultExpression.optimize(session); if (defaultExpression.isConstant()) { defaultExpression = ValueExpression.get( defaultExpression.getValue(session)); } } this.defaultExpression = defaultExpression; }
@Override public void createIndexConditions(Session session, TableFilter filter) { TableFilter tf = getTableFilter(); if (filter == tf && column.getType() == Value.BOOLEAN) { IndexCondition cond = IndexCondition.get( Comparison.EQUAL, this, ValueExpression.get( ValueBoolean.get(true))); filter.addIndexCondition(cond); } }