@Override public boolean next(ImmutableBytesWritable key, Result value) throws IOException { if (!delegate.nextKeyValue()) { return false; } ImmutableBytesWritable currentKey = delegate.getCurrentKey(); key.set(currentKey.get(), currentKey.getOffset(), currentKey.getLength()); value.copyFrom(delegate.getCurrentValue()); return true; }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { PDataType returnType = getDataType(); Expression arg1Expr = children.get(0); if (!arg1Expr.evaluate(tuple, ptr)) return false; if (ptr.getLength() == 0) return true; double arg1 = JavaMathOneArgumentFunction.getArg(arg1Expr, ptr); Expression arg2Expr = (children.size() <= 1) ? null : children.get(1); double arg2; if (arg2Expr != null && !arg2Expr.evaluate(tuple, ptr)) return false; if (arg2Expr == null || ptr.getLength() == 0) { ptr.set(ByteUtil.EMPTY_BYTE_ARRAY); return true; } else { arg2 = JavaMathOneArgumentFunction.getArg(arg2Expr, ptr); } ptr.set(new byte[returnType.getByteSize()]); returnType.getCodec().encodeDouble(compute(arg1, arg2), ptr); return true; }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { Expression childExpr = children.get(0); PDataType dataType = childExpr.getDataType(); if (childExpr.evaluate(tuple, ptr)) { if (ptr.getLength()==0) { return true; } int ret = ((PNumericType) dataType).signum(ptr, childExpr.getSortOrder()); ptr.set(RESULT[ret + 1]); return true; } return false; }
private void init(PDataType baseType, boolean rowKeyOrderOptimizable) { this.baseType = baseType; this.rowKeyOrderOptimizable = rowKeyOrderOptimizable; elements = new Object[getChildren().size()]; valuePtr.set(ByteUtil.EMPTY_BYTE_ARRAY); estimatedSize = PArrayDataType.estimateSize(this.children.size(), this.baseType); }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { BigDecimal result = null; for (int i=0; i<children.size(); i++) { Expression childExpr = children.get(i); if (!childExpr.evaluate(tuple, ptr)) { return false; if (ptr.getLength() == 0) { return true; throw new ValueTypeIncompatibleException(PDataType.DECIMAL, maxLength, scale); ptr.set(PDataType.DECIMAL.toBytes(result)); return true;
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { Expression child = children.get(0); if (!child.evaluate(tuple, ptr)) { return false; } if (ptr.getLength() == 0) { return true; } int sqlType = child.getDataType().getCodec().decodeInt(ptr, child.getSortOrder()); try { byte[] sqlTypeNameBytes = PDataType.fromTypeId(sqlType).getSqlTypeNameBytes(); ptr.set(sqlTypeNameBytes); } catch (IllegalDataException e) { ptr.set(ByteUtil.EMPTY_BYTE_ARRAY); } return true; }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { BigDecimal result = null; for (int i=0; i<children.size(); i++) { Expression childExpr = children.get(i); if (!childExpr.evaluate(tuple, ptr)) { return false; if (ptr.getLength() == 0) { return true; throw new DataExceedsCapacityException(PDecimal.INSTANCE, maxLength, scale); ptr.set(PDecimal.INSTANCE.toBytes(result)); return true;
@Override public void map(Text key, Text value, Context context) throws IOException, InterruptedException { outputKey.set(key.getBytes(), 0, key.getLength()); KeyValue outputValue; int n = keyValueCreators.size(); if (n == 1 && keyValueCreators.get(0).isFullCopy) { // shortcut for // simple full copy outputValue = keyValueCreators.get(0).create(key, value.getBytes(), 0, value.getLength()); context.write(outputKey, outputValue); } else { // normal (complex) case that distributes measures to multiple // HBase columns inputCodec.decode(value, inputMeasures); for (int i = 0; i < n; i++) { outputValue = keyValueCreators.get(i).create(key, inputMeasures); context.write(outputKey, outputValue); } } }
@Override public boolean evaluate(Tuple tuple, ImmutableBytesWritable ptr) { Expression childExpr = children.get(0); if(childExpr.evaluate(tuple, ptr)) { if (ptr.getLength()==0) { return true; } BigDecimal value = (BigDecimal) PDecimal.INSTANCE.toObject(ptr, childExpr.getDataType(), childExpr.getSortOrder()); BigDecimal scaledValue = value.setScale(scale, getRoundingMode()); ptr.set(PDecimal.INSTANCE.toBytes(scaledValue)); return true; } return false; }
BigDecimal finalResult = BigDecimal.ZERO; for(int i=0; i<children.size(); i++) { if (!children.get(i).evaluate(tuple, ptr)) { return false; if (ptr.getLength() == 0) { return true; PDataType type = children.get(i).getDataType(); SortOrder sortOrder = children.get(i).getSortOrder(); if(type == PTimestamp.INSTANCE || type == PUnsignedTimestamp.INSTANCE) { value = (BigDecimal)(PDecimal.INSTANCE.toObject(ptr, type, sortOrder)); byte[] resultPtr = new byte[getDataType().getByteSize()]; PTimestamp.INSTANCE.toBytes(ts, resultPtr, 0); ptr.set(resultPtr); return true;