static void matchResult( IHyracksTaskContext ctx, List<RunAndMaxFrameSizePair> runs, Map<Integer, String> keyValuePair) throws HyracksDataException { HashMap<Integer, String> copyMap2 = new HashMap<>(keyValuePair); int maxFrameSizes = 0; for (RunAndMaxFrameSizePair run : runs) { maxFrameSizes = Math.max(maxFrameSizes, run.maxFrameSize); } GroupVSizeFrame gframe = new GroupVSizeFrame(ctx, maxFrameSizes); GroupFrameAccessor gfta = new GroupFrameAccessor(ctx.getInitialFrameSize(), RecordDesc); assertReadSorted(runs, gfta, gframe, copyMap2); }
static void prepareData( IHyracksTaskContext ctx, List<IFrame> frameList, int minDataSize, int minRecordSize, int maxRecordSize, Map<Integer, String> specialData, Map<Integer, String> keyValuePair) throws HyracksDataException { ArrayTupleBuilder tb = new ArrayTupleBuilder(RecordDesc.getFieldCount()); FrameTupleAppender appender = new FrameTupleAppender(); int datasize = 0; if (specialData != null) { for (Map.Entry<Integer, String> entry : specialData.entrySet()) { tb.reset(); tb.addField(IntegerSerializerDeserializer.INSTANCE, entry.getKey()); tb.addField(UTF8StringSerializerDeserializer.INSTANCE, entry.getValue()); VSizeFrame frame = new VSizeFrame( ctx, FrameHelper.calcAlignedFrameSizeToStore( tb.getFieldEndOffsets().length, tb.getSize(), ctx.getInitialFrameSize())); appender.reset(frame, true); assertTrue(appender.append(tb.getFieldEndOffsets(), tb.getByteArray(), 0, tb.getSize())); frameList.add(frame); datasize += frame.getFrameSize(); } keyValuePair.putAll(specialData); } VSizeFrame frame = new VSizeFrame(ctx, ctx.getInitialFrameSize()); appender.reset(frame, true); while (datasize < minDataSize) { tb.reset(); int key = GRandom.nextInt(minDataSize + 1); if (!keyValuePair.containsKey(key)) { String value = generateRandomRecord(minRecordSize, maxRecordSize); tb.addField(IntegerSerializerDeserializer.INSTANCE, key); tb.addField(UTF8StringSerializerDeserializer.INSTANCE, value); if (!appender.append(tb.getFieldEndOffsets(), tb.getByteArray(), 0, tb.getSize())) { frameList.add(frame); datasize += frame.getFrameSize(); frame = new VSizeFrame( ctx, FrameHelper.calcAlignedFrameSizeToStore( tb.getFieldEndOffsets().length, tb.getSize(), ctx.getInitialFrameSize())); appender.reset(frame, true); assertTrue(appender.append(tb.getFieldEndOffsets(), tb.getByteArray(), 0, tb.getSize())); } keyValuePair.put(key, value); } } if (appender.getTupleCount() > 0) { frameList.add(frame); } }