package edu.washington.escience.myria.expression.evaluate;
import javax.annotation.Nonnull;
import edu.washington.escience.myria.storage.MutableTupleBuffer;
import edu.washington.escience.myria.storage.ReadableTable;
/**
* Interface that evaluates a single {@link edu.washington.escience.myria.expression.Expression} on a row from an input
* TupleBatch and overwrites a row in a state TupleBatch with the results.
*/
public interface ExpressionEvalReplaceInterface extends ExpressionEvalInterface {
/**
* The interface evaluating a single {@link edu.washington.escience.myria.expression.Expression} and replace old
* values in a state column with the results.
*
* @param input the input tuple batch
* @param inputRow row index of the input tuple batch
* @param state state that is passed during evaluation
* @param stateRow row index of the state
* @param stateColOffset column offset of the state
*/
void evaluate(
@Nonnull final ReadableTable input,
final int inputRow,
@Nonnull final MutableTupleBuffer state,
final int stateRow,
final int stateColOffset);
}