return _result;
}
protected void replace(HashMap<Class<?>, HashSet<BasicOperator>> _startNodes) {
HashSetNonBlockingDistinctWithIndexAccess distinct_new = new HashSetNonBlockingDistinctWithIndexAccess(this.i);
this.d.replaceWith(distinct_new);
this.deleteNodeFromStartNodeMapNullCheck(this.d, _startNodes);
this.addNodeToStartNodeMapNullCheck(distinct_new, _startNodes);
distinct_new.setPrecedingOperators(this.d.getPrecedingOperators());
distinct_new.setSucceedingOperators(this.d.getSucceedingOperators());
// now correct operandID of BasicIndex operand to 0 and the other to 1 (requirement of the HashSetNonBlockingDistinctWithIndexAccess-operator!)
for(BasicOperator bo: distinct_new.getPrecedingOperators()){
BasicOperator prec_tmp=bo;
while(!(prec_tmp instanceof lupos.engine.operators.index.BasicIndexScan) && prec_tmp.getPrecedingOperators().size()==1){
prec_tmp = prec_tmp.getPrecedingOperators().get(0);
}
int operandID = (prec_tmp instanceof lupos.engine.operators.index.BasicIndexScan)? 0: 1;