@Override public void close() throws HyracksDataException { Throwable failure = releaseResources(); failure = CleanupUtils.close(writer, failure); if (failure != null) { throw HyracksDataException.create(failure); } }
@Override public void nextFrame(ByteBuffer buffer) throws HyracksDataException { accessor.reset(buffer); int tupleCount = accessor.getTupleCount(); try { for (int i = 0; i < tupleCount && !finished; i++) { resetSearchPredicate(i); cursor.close(); indexAccessor.search(cursor, searchPred); writeSearchResults(i); } } catch (Exception e) { throw HyracksDataException.create(e); } }
accessor = new FrameTupleAccessor(inputRecDesc); if (retainMissing) { int fieldCount = getFieldCount(); buildMissingTuple(fieldCount, nonMatchTupleBuild, nonMatchWriter); if (appendSearchCallbackProceedResult) { writeSearchCallbackProceedResult(nonMatchTupleBuild, true); int numIndexFilterFields = index.getNumOfFilterFields(); nonFilterTupleBuild = new ArrayTupleBuilder(numIndexFilterFields); buildMissingTuple(numIndexFilterFields, nonFilterTupleBuild, nonMatchWriter); searchPred = createSearchPredicate(); tb = new ArrayTupleBuilder(recordDesc.getFieldCount()); dos = tb.getDataOutput(); searchCallbackFactory.createSearchOperationCallback(indexHelper.getResource().getId(), ctx, null); IIndexAccessParameters iap = new IndexAccessParameters(NoOpOperationCallback.INSTANCE, searchCallback); addAdditionalIndexAccessorParams(iap); indexAccessor = index.createAccessor(iap); cursor = createCursor(); if (retainInput) { frameTuple = new FrameTupleReference();
writeTupleToOutput(tuple); if (appendSearchCallbackProceedResult) { writeSearchCallbackProceedResult(tb, ((ILSMIndexCursor) cursor).getSearchOperationCallbackProceedResult()); writeFilterTupleToOutput(((ILSMIndexCursor) cursor).getFilterMinTuple()); writeFilterTupleToOutput(((ILSMIndexCursor) cursor).getFilterMaxTuple());
this.searchCallbackProceedResultFalseValue = searchCallbackProceedResultFalseValue; this.searchCallbackProceedResultTrueValue = searchCallbackProceedResultTrueValue; stats = new OperatorStats(getDisplayName()); if (ctx.getStatsCollector() != null) { ctx.getStatsCollector().add(stats);