@Override public TajoDataTypes.Type type(int fieldId) { return values[fieldId].kind(); }
@Override public TajoDataTypes.Type type(int fieldId) { return values.get(fieldId).kind(); }
@Override public TajoDataTypes.Type type(int fieldId) { return get(fieldId).kind(); }
@Override public int compareTo(Datum datum) { if (datum.kind() == TajoDataTypes.Type.PROTOBUF) { return value.equals(((ProtobufDatum)datum).get()) ? 0 : -1; } else { return -1; } }
@Override public Datum equalsTo(Datum datum) { switch (datum.kind()) { case BLOB: return DatumFactory.createBool(Arrays.equals(this.val, ((BlobDatum)datum).val)); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
@Override public Datum equalsTo(Datum datum) { switch (datum.kind()) { case BIT: return DatumFactory.createBool(this.val == (((BitDatum) datum).val)); case NULL_TYPE: return datum; default: throw new InvalidOperationException(datum.type()); } }
public BooleanDatum equalsTo(Datum datum) { switch(datum.kind()) { case BOOLEAN: return DatumFactory.createBool(this.val == ((BooleanDatum)datum).val); default: throw new InvalidOperationException(datum.type()); } }
@Override public int compareTo(Datum datum) { switch (datum.kind()) { case CHAR: case TEXT: return UnsignedBytes.lexicographicalComparator().compare(bytes, datum.asByteArray()); case NULL_TYPE: return -1; default: throw new InvalidOperationException(datum.type()); } } }
@Override public Datum equalsTo(Datum datum) { switch (datum.kind()) { case TEXT: case CHAR: case BLOB: return DatumFactory.createBool(COMPARATOR.compare(bytes, datum.asByteArray()) == 0); case NULL_TYPE: return datum; default: throw new InvalidOperationException("Cannot equivalent check: " + this.type() + " and " + datum.type()); } }
@Override public Datum equalsTo(Datum datum) { if (datum.kind() == TajoDataTypes.Type.TIME) { return DatumFactory.createBool(time == (((TimeDatum) datum).time)); } else if (datum.isNull()) { return datum; } else { throw new InvalidOperationException(datum.type()); } }
@Override public int compareTo(Datum datum) { switch (datum.kind()) { case BOOLEAN: return Booleans.compare(val, datum.asBool()); default: throw new InvalidOperationException(datum.type()); } } }
@Override public Datum minus(Datum datum) { if (datum.kind() == TajoDataTypes.Type.INTERVAL) { IntervalDatum other = (IntervalDatum) datum; return new IntervalDatum(months - other.months, milliseconds - other.milliseconds); } else { throw new InvalidOperationException("operator does not exist: " + type() + " - " + datum.type()); } }
@Override public Datum equalsTo(Datum datum) { if (datum.kind() == TajoDataTypes.Type.TIMESTAMP) { return timestamp == datum.asInt8() ? BooleanDatum.TRUE : BooleanDatum.FALSE; } else if (datum.isNull()) { return datum; } else { throw new InvalidOperationException(datum.type()); } }
@Override public int compareTo(Datum datum) { if (datum.kind() == TajoDataTypes.Type.TIME) { TimeDatum another = (TimeDatum)datum; return Longs.compare(time, another.time); } else if (datum.isNull()) { return -1; } else { throw new InvalidOperationException(datum.type()); } }
@Override public int compareTo(Datum datum) { if (datum.kind() == TajoDataTypes.Type.TIMESTAMP) { TimestampDatum another = (TimestampDatum) datum; return Longs.compare(timestamp, another.timestamp); } else if (datum.isNull()) { return -1; } else { throw new InvalidOperationException(datum.type()); } }
@Override public int compareTo(Datum datum) { if (datum.kind() == TajoDataTypes.Type.DATE) { DateDatum another = (DateDatum) datum; return Ints.compare(jdate, another.jdate); } else if (datum.isNull()) { return -1; } else { throw new InvalidOperationException(datum.type()); } }
@Override protected EvalNode visitRowConstant(Object o, RowConstantEval evalNode, Stack<EvalNode> stack) { Expr[] values = new Expr[evalNode.getValues().length]; for (int i = 0; i < evalNode.getValues().length; i++) { Datum datum = evalNode.getValues()[i]; values[i] = convertDatumToExpr(datum.kind(), datum); } ValueListExpr expr = new ValueListExpr(values); exprs.push(expr); return super.visitRowConstant(o, evalNode, stack); }
@Override public Datum equalsTo(Datum datum) { if (datum.kind() == Type.DATE) { return DatumFactory.createBool(equals(datum)); } else if (datum.isNull()) { return datum; } else { throw new InvalidOperationException(datum.type()); } }
@Override public int compareTo(Datum datum) { if (datum.kind() == TajoDataTypes.Type.INTERVAL) { return Longs.compare(asInt8(), datum.asInt8()); } else if (datum instanceof NullDatum || datum.isNull()) { return -1; } else { throw new InvalidOperationException(datum.type()); } }
@Override public Datum equalsTo(Datum datum) { if (datum.kind() == TajoDataTypes.Type.INTERVAL) { return DatumFactory.createBool(asInt8() == datum.asInt8()); } else if (datum.isNull()) { return datum; } else { throw new InvalidOperationException(datum.type()); } }