@Override public void aggregate(IFrameTupleAccessor accessor, int tIndex, IFrameTupleAccessor stateAccessor, int stateTupleIndex, AggregateState state) throws HyracksDataException { IAggregateEvaluator[] agg = (IAggregateEvaluator[]) state.state; ftr.reset(accessor, tIndex); for (int i = 0; i < agg.length; i++) { agg[i].step(ftr); } }
private static void processFrame(FrameTupleAccessor accessor, FrameTupleReference tuple, IFrameTupleProcessor processor) throws HyracksDataException { int tupleCount = accessor.getTupleCount(); int i = 0; while (i < tupleCount) { tuple.reset(accessor, i); processor.process(tuple, i); i++; } }
@Override public void init(ArrayTupleBuilder tupleBuilder, IFrameTupleAccessor accessor, int tIndex, AggregateState state) throws HyracksDataException { IAggregateEvaluator[] agg = (IAggregateEvaluator[]) state.state; // initialize aggregate functions for (int i = 0; i < agg.length; i++) { agg[i].init(); } ftr.reset(accessor, tIndex); for (int i = 0; i < agg.length; i++) { agg[i].step(ftr); } }
protected void produceTuples(IFrameTupleAccessor accessor, int beginIdx, int endIdx) throws HyracksDataException { for (int t = beginIdx; t <= endIdx; t++) { tRef.reset(accessor, t); produceTuple(tupleBuilder, accessor, t, tRef); appendToFrameFromTupleBuilder(tupleBuilder); } }
@Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { tAccess.reset(buffer); int nTuple = tAccess.getTupleCount(); for (int t = 0; t < nTuple; t++) { tRef.reset(tAccess, t); processTuple(tRef); } }
@Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { accessor.reset(buffer); int tupleCount = accessor.getTupleCount(); for (int i = 0; i < tupleCount; i++) { tuple.reset(accessor, i); tupleWriter.write(dos, tuple); } }
@Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { tAccess.reset(buffer); int nTuple = tAccess.getTupleCount(); for (int t = 0; t < nTuple; t++) { tRef.reset(tAccess, t); for (int i = 0; i < printers.length; i++) { printers[i].print(buffer.array(), tRef.getFieldStart(i), tRef.getFieldLength(i), ps); ps.print(fieldDelimiter); if (i == printers.length - 1) { ps.print('\n'); } } } }
@Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { accessor.reset(buffer); int tupleCount = accessor.getTupleCount(); for (int i = 0; i < tupleCount; i++) { tuple.reset(accessor, i); tupleWriter.write(dos, tuple); } }
@Override public void aggregate(IFrameTupleAccessor accessor, int tIndex, IFrameTupleAccessor stateAccessor, int stateTupleIndex, AggregateState state) throws HyracksDataException { ftr.reset(accessor, tIndex); int stateTupleStart = stateAccessor.getTupleStartOffset(stateTupleIndex); int fieldSlotLength = stateAccessor.getFieldSlotsLength(); for (int i = 0; i < aggs.length; i++) { byte[] data = stateAccessor.getBuffer().array(); int start = stateAccessor.getFieldStartOffset(stateTupleIndex, i + keys.length) + stateTupleStart + fieldSlotLength; aggs[i].step(ftr, data, start, stateFieldLength[i]); } }
private void propagateInputFields(int idx) throws IOException { frameTuple.reset(tupleAccessor, idx); for (int i = 0; i < frameTuple.getFieldCount(); i++) { tb.getDataOutput().write(frameTuple.getFieldData(i), frameTuple.getFieldStart(i), frameTuple.getFieldLength(i)); tb.addFieldEndOffset(); } }
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 protected void resetSearchPredicate(int tupleIndex) { frameTuple.reset(accessor, tupleIndex); InvertedIndexSearchPredicate invIndexSearchPred = (InvertedIndexSearchPredicate) searchPred; invIndexSearchPred.setQueryTuple(frameTuple); invIndexSearchPred.setQueryFieldIndex(queryFieldIndex); invIndexSearchPred.setIsFullTextSearchQuery(isFullTextSearchQuery); if (minFilterKey != null) { minFilterKey.reset(accessor, tupleIndex); } if (maxFilterKey != null) { maxFilterKey.reset(accessor, tupleIndex); } }
@Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { tAccess.reset(buffer); int nTuple = tAccess.getTupleCount(); for (int t = 0; t < nTuple; t++) { tRef.reset(tAccess, t); try { unnest.init(tRef); unnesting(t); } catch (IOException ae) { throw HyracksDataException.create(ae); } } }
@Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { // "buffer" contains the serialized range map sent by a range map computer function. // deserialize the range map frameTupleAccessor.reset(buffer); if (frameTupleAccessor.getTupleCount() != 1) { throw HyracksDataException.create(ErrorCode.ONE_TUPLE_RANGEMAP_EXPECTED, sourceLoc); } frameTupleReference.reset(frameTupleAccessor, 0); byte[] rangeMap = frameTupleReference.getFieldData(0); int offset = frameTupleReference.getFieldStart(0); int length = frameTupleReference.getFieldLength(0); ByteArrayInputStream rangeMapIn = new ByteArrayInputStream(rangeMap, offset, length); DataInputStream dataInputStream = new DataInputStream(rangeMapIn); numFields = IntegerSerializerDeserializer.read(dataInputStream); splitValues = ByteArraySerializerDeserializer.read(dataInputStream); splitValuesEndOffsets = IntArraySerializerDeserializer.read(dataInputStream); }
@Override public void init(ArrayTupleBuilder tb, IFrameTupleAccessor accessor, int tIndex, AggregateState state) throws HyracksDataException { DataOutput output = tb.getDataOutput(); ftr.reset(accessor, tIndex); for (int i = 0; i < aggs.length; i++) { int begin = tb.getSize(); if (aggs[i] == null) { aggs[i] = aggFactories[i].createAggregateEvaluator(ctx); } aggs[i].init(output); tb.addFieldEndOffset(); stateFieldLength[i] = tb.getSize() - begin; } // doing initial aggregate ftr.reset(accessor, tIndex); for (int i = 0; i < aggs.length; i++) { byte[] data = tb.getByteArray(); int prevFieldPos = i + keys.length - 1; int start = prevFieldPos >= 0 ? tb.getFieldEndOffsets()[prevFieldPos] : 0; aggs[i].step(ftr, data, start, stateFieldLength[i]); } }
private void initHelperTuples() { try { lowerBoundTupleBuilder.reset(); // Write dummy value. lowerBoundTupleBuilder.getDataOutput().writeShort(Short.MIN_VALUE); lowerBoundTupleBuilder.addFieldEndOffset(); lowerBoundTuple.reset(lowerBoundTupleBuilder.getFieldEndOffsets(), lowerBoundTupleBuilder.getByteArray()); // Only needed for setting the number of fields in searchKey. searchKey.reset(queryTokenAppender, 0); fullLowSearchKey.reset(); fullLowSearchKey.addTuple(searchKey); fullLowSearchKey.addTuple(lowerBoundTuple); upperBoundTupleBuilder.reset(); // Write dummy value. upperBoundTupleBuilder.getDataOutput().writeShort(Short.MAX_VALUE); upperBoundTupleBuilder.addFieldEndOffset(); upperBoundTuple.reset(upperBoundTupleBuilder.getFieldEndOffsets(), upperBoundTupleBuilder.getByteArray()); // Only needed for setting the number of fields in searchKey. searchKey.reset(queryTokenAppender, 0); fullHighSearchKey.reset(); fullHighSearchKey.addTuple(searchKey); fullHighSearchKey.addTuple(upperBoundTuple); } catch (IOException e) { throw new IllegalStateException(e); } }
private void writeOutput(int tupleIndex, boolean recordWasInserted, boolean recordWasDeleted) throws IOException { if (recordWasInserted || recordWasDeleted) { frameTuple.reset(accessor, tupleIndex); for (int i = 0; i < frameTuple.getFieldCount(); i++) { dos.write(frameTuple.getFieldData(i), frameTuple.getFieldStart(i), frameTuple.getFieldLength(i)); tb.addFieldEndOffset(); } FrameUtils.appendToWriter(writer, appender, tb.getFieldEndOffsets(), tb.getByteArray(), 0, tb.getSize()); } else { try { searchCallback.release(); } catch (ACIDException e) { throw HyracksDataException.create(e); } } }
@Override protected void writeSearchResults(int tupleIndex) throws Exception { while (cursor.hasNext()) { tb.reset(); cursor.next(); if (retainInput) { frameTuple.reset(accessor, tupleIndex); for (int i = 0; i < frameTuple.getFieldCount(); i++) { dos.write(frameTuple.getFieldData(i), frameTuple.getFieldStart(i), frameTuple.getFieldLength(i)); tb.addFieldEndOffset(); } } ITupleReference tuple = cursor.getTuple(); tupleUpdater.updateTuple(tuple); for (int i = 0; i < tuple.getFieldCount(); i++) { dos.write(tuple.getFieldData(i), tuple.getFieldStart(i), tuple.getFieldLength(i)); tb.addFieldEndOffset(); } FrameUtils.appendToWriter(writer, appender, tb.getFieldEndOffsets(), tb.getByteArray(), 0, tb.getSize()); } } }
@Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { accessor.reset(buffer); int tupleCount = accessor.getTupleCount(); for (int i = 0; i < tupleCount; i++) { try { // if both previous value and new value are null, then we skip tuple.reset(accessor, i); if (isAntiMatterTuple(tuple)) { processAntiMatterTuple(tuple); hasPrevMatterTuple = false; } else { processMatterTuple(tuple); // save the matter tuple TupleUtils.copyTuple(prevMatterTupleBuilder, tuple, recordDesc.getFieldCount()); prevMatterTuple.reset(prevMatterTupleBuilder.getFieldEndOffsets(), prevMatterTupleBuilder.getByteArray()); hasPrevMatterTuple = true; } } catch (Exception e) { throw HyracksDataException.create(e); } } }