Given this domain...
CREATE DOMAIN loan.loan_amount numeric(7,2) --loan.loan_amount_rawCONSTRAINT loan_amount__greater_equal_0 CHECK( VALUE
>=0 )CONSTRAINT loan_amount__less_equal_20000 CHECK( VALUE <= 20000 )
;
I was rather surprised by
select -1::loan.loan_amount; ?column?
---------- -1.00
(1 row)
The problem is that :: binds more tightly than -:
select (-1)::loan.loan_amount;
ERROR: value for domain loan.loan_amount violates check constraint
"loan_amount__greater_equal_0"
Is this by design? If not, any ideas how bad it'd be to fix?
--
Jim Nasby, Data Architect, Blue Treble Consulting
Data in Trouble? Get it in Treble! http://BlueTreble.com