Maybe take a look at what Postgres supports? I've been more or less trying to emulate this behavior when possible. My initial inclination is to keep it as is (and adding the tests to confirm that coerce from DECIMAL -> INTEGER is an error), and then add a ROUND, FLOOR, and CEIL built-in functions.