Hi all. I'm playing with pl/python AND i'm with a doubt.
I wanna create a domain to roman numerals. I have made: CREATE OR REPLACE FUNCTION valid_roman(text) RETURNS BOOLEAN IMMUTABLE LANGUAGE plpythonu AS $$ from roman9 import fromRoman roman = args[0] try: r = fromRoman(roman) return 'true' except: return 'false' $$; CREATE DOMAIN romano AS text CHECK (valid_roman(VALUE)) ; CREATE OR REPLACE FUNCTION to_roman(integer) RETURNS romano IMMUTABLE LANGUAGE plpythonu AS $$ from roman9 import toRoman number = args[0] try: r = toRoman(number) return r except: return 'false' $$; CREATE CAST (integer AS romano) WITH FUNCTION to_roman(integer); And that works: SELECT to_roman(50) SELECT to_roman(100) SELECT valid_roman('XX') SELECT valid_roman('XXX') SELECT valid_roman('XXXX') But my cast doen't works: SELECT 5::romano ERROR: value for domain romano violates check constraint "romano_check" What's wrong? []'s - Walter ---------------------------(end of broadcast)--------------------------- TIP 5: don't forget to increase your free space map settings