public IndexNestedLoopJoinOperatorNodePushable( AbstractTreeIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, IRecordDescriptorProvider recordDescProvider, boolean isForward, int[] lowKeyFields, int[] highKeyFields, boolean lowKeyInclusive, boolean highKeyInclusive) { inputRecDesc = recordDescProvider.getInputRecordDescriptor(opDesc.getActivityId(), 0); treeIndexOpHelper = (IndexDataflowHelper) opDesc .getIndexDataflowHelperFactory() .createIndexDataflowHelper(opDesc, ctx, partition); this.lowKeyInclusive = lowKeyInclusive; this.highKeyInclusive = highKeyInclusive; this.recDesc = recordDescProvider.getInputRecordDescriptor(opDesc.getActivityId(), 0); if (lowKeyFields != null && lowKeyFields.length > 0) { lowKey = new PermutingFrameTupleReference(); lowKey.setFieldPermutation(lowKeyFields); } if (highKeyFields != null && highKeyFields.length > 0) { highKey = new PermutingFrameTupleReference(); highKey.setFieldPermutation(highKeyFields); } }
@Override protected IIndex createIndexInstance() throws HyracksDataException { AbstractTreeIndexOperatorDescriptor treeOpDesc = (AbstractTreeIndexOperatorDescriptor) opDesc; return LSMBTreeUtils.createExternalBTreeWithBuddy( file, opDesc.getStorageManager().getBufferCache(ctx), opDesc.getStorageManager().getFileMapProvider(ctx), treeOpDesc.getTreeIndexTypeTraits(), treeOpDesc.getTreeIndexComparatorFactories(), bloomFilterFalsePositiveRate, mergePolicy, opTrackerFactory.getOperationTracker(ctx), ioScheduler, ioOpCallbackFactory.createIOOperationCallback(), buddyBtreeFields, version, durable); }
public BTreeSearchFunctionUpdateOperatorNodePushable( AbstractTreeIndexOperatorDescriptor opDesc, IHyracksTaskContext ctx, int partition, IRecordDescriptorProvider recordDescProvider, boolean isForward, int[] lowKeyFields, int[] highKeyFields, boolean lowKeyInclusive, boolean highKeyInclusive, IUpdateFunctionFactory functionFactory, IRuntimeHookFactory preHookFactory, IRuntimeHookFactory postHookFactory, IRecordDescriptorFactory inputRdFactory, int outputArity) { treeIndexHelper = (TreeIndexDataflowHelper) opDesc .getIndexDataflowHelperFactory() .createIndexDataflowHelper(opDesc, ctx, partition); this.isForward = isForward; this.lowKeyInclusive = lowKeyInclusive; this.highKeyInclusive = highKeyInclusive; this.recDesc = recordDescProvider.getInputRecordDescriptor(opDesc.getActivityId(), 0); if (lowKeyFields != null && lowKeyFields.length > 0) { lowKey = new PermutingFrameTupleReference(); lowKey.setFieldPermutation(lowKeyFields); } if (highKeyFields != null && highKeyFields.length > 0) { highKey = new PermutingFrameTupleReference(); highKey.setFieldPermutation(highKeyFields); } this.writers = new IFrameWriter[outputArity]; this.functionProxy = new FunctionProxy( ctx, functionFactory, preHookFactory, postHookFactory, inputRdFactory, writers); this.updateBuffer = new UpdateBuffer(ctx, 2); }