@Override public Datum terminate(FunctionContext ctx) { AvgContext avgCtx = (AvgContext) ctx; if (avgCtx.count == 0) { return NullDatum.get(); } return DatumFactory.createFloat8((double) avgCtx.sum / avgCtx.count); }
@Override public Datum terminate(FunctionContext ctx) { SumContext sumCtx = (SumContext)ctx; if (sumCtx.hasNonNull) { return DatumFactory.createFloat8(sumCtx.sum); } else { return NullDatum.get(); } }
@Override public Datum terminate(FunctionContext ctx) { CorrContext corrContext = (CorrContext) ctx; if (corrContext.count < 2) { // SQL standard - return null for zero or one pair return NullDatum.get(); } else { return DatumFactory.createFloat8(corrContext.covar / java.lang.Math.sqrt(corrContext.xvar) / java.lang.Math.sqrt(corrContext.yvar)); } }
public static byte [] getNullCharsAsBytes(TableMeta meta) { byte [] nullChars; String nullCharacters = StringEscapeUtils.unescapeJava(meta.getOption(StorageConstants.TEXT_NULL, NullDatum.DEFAULT_TEXT)); if (StringUtils.isEmpty(nullCharacters)) { nullChars = NullDatum.get().asTextBytes(); } else { nullChars = nullCharacters.getBytes(Bytes.UTF8_CHARSET); } return nullChars; }
@Override Datum next() throws IOException { byte[] bytes = reader.next(); if (bytes == null) { return NullDatum.get(); } // TODO: enforce char length return DatumFactory.createChar(bytes); }
@Override public Datum eval(Tuple params) { if (params.isBlankOrNull(0)) { return NullDatum.get(); } return DatumFactory.createInt4(Math.abs(params.getInt4(0))); } }
@Override public Datum eval(Tuple params) { if (params.isBlankOrNull(0)) { return NullDatum.get(); } return DatumFactory.createInt4(params.getText(0).length()); } }
@Override public Datum eval(Tuple params) { if (params.isBlankOrNull(0)) { return NullDatum.get(); } return DatumFactory.createFloat8(Math.toDegrees(params.getFloat8(0))); } }
@Override Datum next() throws IOException { super.next(); return valuePresent ? DatumFactory.createInet4((int) reader.next()) : NullDatum.get(); }
@Override Datum next() throws IOException { super.next(); return valuePresent ? DatumFactory.createInt8(reader.next()) : NullDatum.get(); }
@Override Datum next() throws IOException { super.next(); return valuePresent ? DatumFactory.createFloat8(utils.readDouble(stream)) : NullDatum.get(); }
@Override public Datum eval(Tuple params) { if (params.isBlankOrNull(0)) { return NullDatum.get(); } return DatumFactory.createText("\"" + params.getText(0) + "\""); } }
public Datum lessThan(Datum datum) { if (this.type() == Type.NULL_TYPE || datum.type() == Type.NULL_TYPE) { return NullDatum.get(); } return DatumFactory.createBool(compareTo(datum) < 0); }
public Datum greaterThan(Datum datum) { if (this.type() == Type.NULL_TYPE || datum.type() == Type.NULL_TYPE) { return NullDatum.get(); } return DatumFactory.createBool(compareTo(datum) > 0); }
@Override public Datum[] getValues() { Datum [] datums = new Datum[size()]; for (int i = 0; i < size(); i++) { if (contains(i)) { datums[i] = asDatum(i); } else { datums[i] = NullDatum.get(); } } return datums; }
@Override public Datum[] getValues() { Datum [] datums = new Datum[size()]; for (int i = 0; i < size(); i++) { if (contains(i)) { datums[i] = asDatum(i); } else { datums[i] = NullDatum.get(); } } return datums; }
@Override public Datum[] getValues() { Datum [] datums = new Datum[size()]; for (int i = 0; i < size(); i++) { if (contains(i)) { datums[i] = asDatum(i); } else { datums[i] = NullDatum.get(); } } return datums; }
@Override public Datum eval(Tuple params) { if (params.isBlankOrNull(0) || params.isBlankOrNull(1)) { return NullDatum.get(); } String addr = params.getText(0); String otherCode = params.getText(1); String thisCode = GeoIPUtil.getCountryCode(addr); return DatumFactory.createBool(thisCode.equals(otherCode)); } }
@Override public Datum getPartialResult(FunctionContext ctx) { AvgContext avgCtx = (AvgContext) ctx; if (avgCtx.count == 0) { return NullDatum.get(); } AvgLongProto.Builder builder = AvgLongProto.newBuilder(); builder.setSum(avgCtx.sum); builder.setCount(avgCtx.count); return new ProtobufDatum(builder.build()); }
@Override Datum next() throws IOException { super.next(); if (valuePresent) { long millis = decodeTimestamp(data.next(), nanos.next(), base_timestamp); return DatumFactory.createTimestamp(DateTimeUtil.javaTimeToJulianTime(millis)); } else { return NullDatum.get(); } }