class BeamSqlArithmeticExpression extends BeamSqlExpression {

  @Override
  public BeamSqlPrimitive<? extends Number> evaluate(
      Row inputRow, BoundedWindow window, BeamSqlExpressionEnvironment env) {
    BigDecimal left = SqlFunctions.toBigDecimal(opValueEvaluated(0, inputRow, window, env));
    BigDecimal right = SqlFunctions.toBigDecimal(opValueEvaluated(1, inputRow, window, env));

    BigDecimal result = calc(left, right);
    return getCorrectlyTypedResult(result);
  }

  protected  BeamSqlArithmeticExpression(List<BeamSqlExpression> operands);
  protected  BeamSqlArithmeticExpression(List<BeamSqlExpression> operands, SqlTypeName outputType);

}