public LSMSecondaryUpsertOperatorNodePushable(IHyracksTaskContext ctx, int partition,
IIndexDataflowHelperFactory indexHelperFactory, IModificationOperationCallbackFactory modCallbackFactory,
ITupleFilterFactory tupleFilterFactory, int[] fieldPermutation, RecordDescriptor inputRecDesc,
int upsertIndicatorFieldIndex, IBinaryBooleanInspectorFactory upsertIndicatorInspectorFactory,
int[] prevValuePermutation) throws HyracksDataException {
super(ctx, partition, indexHelperFactory, fieldPermutation, inputRecDesc, IndexOperation.UPSERT,
modCallbackFactory, tupleFilterFactory);
this.prevValueTuple.setFieldPermutation(prevValuePermutation);
this.upsertIndicatorFieldIndex = upsertIndicatorFieldIndex;
this.upsertIndicatorInspector = upsertIndicatorInspectorFactory.createBinaryBooleanInspector(ctx);
this.numberOfFields = prevValuePermutation.length;
this.isPrimaryKeyIndex = Arrays.equals(fieldPermutation, prevValuePermutation);
}