@Override public int getStartOffset() { return value.getStartOffset(); }
@Override public int getStartOffset() { return value.getStartOffset(); }
@Override protected int getPosition(IFrameTupleReference tuple, IPointable l, ATypeTag listTag) throws HyracksDataException { // l = list if (listTag == ATypeTag.ARRAY) { return AOrderedListSerializerDeserializer.getNumberOfItems(l.getByteArray(), l.getStartOffset()); } else if (listTag == ATypeTag.MULTISET) { return AUnorderedListSerializerDeserializer.getNumberOfItems(l.getByteArray(), l.getStartOffset()); } else { return RETURN_NULL; } }
@Override public int compare(IPointable val1, IPointable val2) { try { return comp.compare(val1.getByteArray(), val1.getStartOffset(), val1.getLength(), val2.getByteArray(), val2.getStartOffset(), val2.getLength()); } catch (HyracksDataException e) { throw new IllegalStateException(e); } } }
private int compareBooleanWithArg(ATypeTag typeTag2, IPointable arg1, IPointable arg2) throws HyracksDataException { if (typeTag2 == ATypeTag.BOOLEAN) { byte b0 = arg1.getByteArray()[arg1.getStartOffset()]; byte b1 = arg2.getByteArray()[arg2.getStartOffset()]; return compareByte(b0, b1); } throw new IncompatibleTypeException(sourceLoc, COMPARISON, ATypeTag.SERIALIZED_BOOLEAN_TYPE_TAG, typeTag2.serialize()); }
private int compareStrInByteArrayAndPointable(byte[] left, IPointable right, boolean rightTypeTagIncluded) throws HyracksDataException { int rightTypeTagLength = rightTypeTagIncluded ? 1 : 0; return strLowerCaseCmp.compare(left, 0, left.length, right.getByteArray(), right.getStartOffset() + rightTypeTagLength, right.getLength() - rightTypeTagLength); }
@Override public int compareTo(IPointable pointer) { return compareTo(pointer.getByteArray(), pointer.getStartOffset(), pointer.getLength()); }
private int compareStringWithArg(ATypeTag typeTag2, IPointable arg1, IPointable arg2) throws HyracksDataException { if (typeTag2 == ATypeTag.STRING) { return strBinaryComp.compare(arg1.getByteArray(), arg1.getStartOffset(), arg1.getLength() - 1, arg2.getByteArray(), arg2.getStartOffset(), arg2.getLength() - 1); } throw new IncompatibleTypeException(sourceLoc, COMPARISON, ATypeTag.SERIALIZED_STRING_TYPE_TAG, typeTag2.serialize()); }
protected void processArgument(int argIdx, IPointable argPtr, UTF8StringPointable outStrPtr) throws HyracksDataException { byte[] bytes = argPtr.getByteArray(); int start = argPtr.getStartOffset(); // Type check. if (bytes[start] != ATypeTag.SERIALIZED_STRING_TYPE_TAG) { throw new TypeMismatchException(sourceLoc, funcID, argIdx, bytes[start], ATypeTag.SERIALIZED_STRING_TYPE_TAG); } int len = argPtr.getLength(); outStrPtr.set(bytes, start + 1, len); }
@Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException { eval1.evaluate(tuple, p); int v1 = IntegerPointable.getInteger(p.getByteArray(), p.getStartOffset()); eval2.evaluate(tuple, p); int v2 = IntegerPointable.getInteger(p.getByteArray(), p.getStartOffset()); BooleanPointable.setBoolean(rBytes, 0, v1 == v2); result.set(rBytes, 0, 1); } };
@Override public boolean outputPartialResult(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor stateAccessor, int tIndex, AggregateState state) throws HyracksDataException { IAggregateEvaluator[] agg = (IAggregateEvaluator[]) state.state; for (int i = 0; i < agg.length; i++) { agg[i].finishPartial(p); tupleBuilder.addField(p.getByteArray(), p.getStartOffset(), p.getLength()); } return true; }
@Override public boolean accept(IFrameTupleReference tuple) throws HyracksDataException { eval.evaluate(tuple, p); return boolInspector.getBooleanValue(p.getByteArray(), p.getStartOffset(), p.getLength()); } }
@Override public void step(IFrameTupleReference tuple) throws HyracksDataException { eval.evaluate(tuple, inputVal); ATypeTag typeTag = EnumDeserializer.ATYPETAGDESERIALIZER.deserialize(inputVal.getByteArray()[inputVal.getStartOffset()]); // Ignore SYSTEM_NULL. if (typeTag == ATypeTag.NULL || typeTag == ATypeTag.MISSING) { processNull(); } else if (typeTag != ATypeTag.SYSTEM_NULL) { cnt++; } }
@Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException { eval1.evaluate(tuple, p); int v1 = IntegerPointable.getInteger(p.getByteArray(), p.getStartOffset()); eval2.evaluate(tuple, p); int v2 = IntegerPointable.getInteger(p.getByteArray(), p.getStartOffset()); BooleanPointable.setBoolean(rBytes, 0, v1 > v2); result.set(rBytes, 0, 1); } };
@Override public boolean outputFinalResult(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor stateAccessor, int tIndex, AggregateState state) throws HyracksDataException { IAggregateEvaluator[] agg = (IAggregateEvaluator[]) state.state; for (int i = 0; i < agg.length; i++) { agg[i].finish(p); tupleBuilder.addField(p.getByteArray(), p.getStartOffset(), p.getLength()); } return true; }
private void addItem(final IPointable p) throws SystemException { try { dataArea.getDataOutput().write(p.getByteArray(), p.getStartOffset(), p.getLength()); slots.append(dataArea.getLength()); } catch (IOException e) { throw new SystemException(ErrorCode.SYSE0001, e); } } };
protected void produceTuple(ArrayTupleBuilder tb, IFrameTupleAccessor accessor, int tIndex, FrameTupleReference tupleRef) throws HyracksDataException { tb.reset(); for (int f = 0; f < projectionColumns.length; f++) { int k = projectionToOutColumns[f]; if (k >= 0) { runningAggEvals.get(k).step(tupleRef, p); tb.addField(p.getByteArray(), p.getStartOffset(), p.getLength()); } else { tb.addField(accessor, tIndex, projectionColumns[f]); } } }
private void computeAggregate() throws HyracksDataException { tupleBuilder.reset(); for (int f = 0; f < aggregs.length; f++) { aggregs[f].finish(result); tupleBuilder.addField(result.getByteArray(), result.getStartOffset(), result.getLength()); } }
private int evaluateInteger(IScalarEvaluator eval, int tIdx) throws HyracksDataException { tRef.reset(tAccess, tIdx); eval.evaluate(tRef, p); int lim = bii.getIntegerValue(p.getByteArray(), p.getStartOffset(), p.getLength()); return lim; }
@Override public void evaluate(IFrameTupleReference tuple, IPointable result) throws HyracksDataException { scanCollection.init(tuple); aggFunc.init(); while (scanCollection.step(listItemOut)) { itemTuple.reset(listItemOut.getByteArray(), listItemOut.getStartOffset(), listItemOut.getLength()); aggFunc.step(itemTuple); } aggFunc.finish(result); } }