@Override public long getColumnPrecision(int i) { return expressions[i].getPrecision(); }
@Override public long getPrecision() { return expr.getPrecision(); }
@Override public long getPrecision() { if (right != null) { switch (opType) { case CONCAT: return left.getPrecision() + right.getPrecision(); default: return Math.max(left.getPrecision(), right.getPrecision()); } } return left.getPrecision(); }
@Override public long getPrecision() { return getExpression().getPrecision(); }
case ENCRYPT: case DECRYPT: precision = args[2].getPrecision(); displaySize = args[2].getDisplaySize(); break; case COMPRESS: precision = args[0].getPrecision(); displaySize = args[0].getDisplaySize(); break; displaySize = 0; for (Expression e : args) { precision += e.getPrecision(); displaySize = MathUtils.convertLongToInt( (long) displaySize + e.getDisplaySize()); precision = (args[0].getPrecision() + 3) / 4; displaySize = MathUtils.convertLongToInt(precision); break; case UTF8TOSTRING: case TRUNCATE: precision = args[0].getPrecision(); displaySize = args[0].getDisplaySize(); break; case RAWTOHEX: precision = args[0].getPrecision() * 4; displaySize = MathUtils.convertLongToInt(precision); break;
Expression r = re.get(i); int type = Value.getHigherOrder(l.getType(), r.getType()); long prec = Math.max(l.getPrecision(), r.getPrecision()); int scale = Math.max(l.getScale(), r.getScale()); int displaySize = Math.max(l.getDisplaySize(), r.getDisplaySize());
@Override public Expression[] getExpressionColumns(Session session) { ExpressionColumn[] expr = new ExpressionColumn[list.length]; for (int i = 0; i < list.length; i++) { Expression e = list[i]; Column col = new Column("C" + (i + 1), e.getType(), e.getPrecision(), e.getScale(), e.getDisplaySize()); expr[i] = new ExpressionColumn(session.getDatabase(), col); } return expr; }
t = Value.getHigherOrder(t, type); s = Math.max(s, e.getScale()); p = Math.max(p, e.getPrecision()); d = Math.max(d, e.getDisplaySize()); t = Value.getHigherOrder(t, type); s = Math.max(s, then.getScale()); p = Math.max(p, then.getPrecision()); d = Math.max(d, then.getDisplaySize()); t = Value.getHigherOrder(t, type); s = Math.max(s, elsePart.getScale()); p = Math.max(p, elsePart.getPrecision()); d = Math.max(d, elsePart.getDisplaySize()); p = Math.max(args[1].getPrecision(), args[2].getPrecision()); d = Math.max(args[1].getDisplaySize(), args[2].getDisplaySize()); s = Math.max(args[1].getScale(), args[2].getScale()); p = Math.max(args[1].getPrecision(), args[2].getPrecision()); d = Math.max(args[1].getDisplaySize(), args[2].getDisplaySize()); s = Math.max(args[1].getScale(), args[2].getScale()); t = p0.getType(); s = p0.getScale(); p = p0.getPrecision(); d = p0.getDisplaySize(); if (t == Value.NULL) {
columns.add(column); prec = expr.getPrecision(); scale = expr.getScale(); displaySize = expr.getDisplaySize();
private void generateColumnsFromQuery() { int columnCount = prepared.getQuery().getColumnCount(); ArrayList<Expression> expressions = prepared.getQuery().getExpressions(); for (int i = 0; i < columnCount; i++) { Expression expr = expressions.get(i); int type = expr.getType(); String name = expr.getAlias(); long precision = expr.getPrecision(); int displaySize = expr.getDisplaySize(); DataType dt = DataType.getDataType(type); if (precision > 0 && (dt.defaultPrecision == 0 || (dt.defaultPrecision > precision && dt.defaultPrecision < Byte.MAX_VALUE))) { // dont' set precision to MAX_VALUE if this is the default precision = dt.defaultPrecision; } int scale = expr.getScale(); if (scale > 0 && (dt.defaultScale == 0 || (dt.defaultScale > scale && dt.defaultScale < precision))) { scale = dt.defaultScale; } if (scale > precision) { precision = scale; } Column col = new Column(name, type, precision, scale, displaySize); prepared.addColumn(col); } }
long precision = expr.getPrecision(); int scale = expr.getScale(); int displaySize = expr.getDisplaySize();
dataType = on.getType(); scale = on.getScale(); precision = on.getPrecision(); displaySize = on.getDisplaySize();