package edu.washington.escience.myria.expression.evaluate; import javax.annotation.Nonnull; import javax.annotation.Nullable; import edu.washington.escience.myria.column.builder.WritableColumn; import edu.washington.escience.myria.storage.ReadableTable; /** * Interface for evaluating a single {@link edu.washington.escience.myria.expression.Expression} and appending the * results to a column, along with a count of results. */ public interface ExpressionEvalAppendInterface extends ExpressionEvalInterface { /** * The interface evaluates a single {@link edu.washington.escience.myria.expression.Expression} and appends the * results and (optional) counts to the given columns. * * @param input the input tuple batch, optional * @param inputRow row index of the input tuple batch * @param state state that is passed during evaluation, optional * @param stateRow row index of the state * @param result a table storing evaluation results * @param count a column storing the number of results returned from this row, optional */ void evaluate( @Nullable final ReadableTable input, final int inputRow, @Nullable final ReadableTable state, final int stateRow, final int stateColOffset, @Nonnull final WritableColumn result, @Nullable final WritableColumn count); }