What about the case where the JDO implementation lets the database perform the avg function? If the database always returns a double value anyway, are we kidding ourselves that the result is actually a BigDecimal? What should the precision be in this case?
Obviously, either the user or the implementation could take a double result and convert it into a BigDecimal. Is there a good reason why BigDecimal is preferable to return to the user instead of double? Would a user expect the result to be BigDecimal (without reading the JDO specification carefully)?
Is there a good enough reason for JDO to be different from JPA in this case?