private void resetAppenderIfNecessary(IFrameAppender appender) throws HyracksDataException { if (lastAppender != appender) { if (lastAppender == fieldAppender) { if (fieldAppender.hasLeftOverFields()) { throw new HyracksDataException("The previous appended fields haven't been flushed yet."); } } appender.reset(sharedFrame, false); lastAppender = appender; } }
protected final void initAccessAppendFieldRef(IHyracksTaskContext ctx) throws HyracksDataException { frame = new VSizeFrame(ctx); appender = new FrameFixedFieldTupleAppender(inputRecordDesc.getFieldCount()); appender.reset(frame, true); tAccess = new FrameTupleAccessor(inputRecordDesc); tRef = new FrameTupleReference(); }