Hi. I have a simple function. CREATE OR REPLACE FUNCTION myf_convert_phone18digits( in_phone VARCHAR ) RETURNS BIGINT -- IMMUTABLE AS $$ DECLARE t_extent_len BIGINT; t_phone_18 BIGINT; t_multiplier BIGINT; BEGIN IF in_phone IS NULL OR in_phone = '' THEN RAISE EXCEPTION 'in_phone[%] IS NULL OR =''''!', in_phone; END IF; t_extent_len := 18 - length(in_phone); t_multiplier := 10::BIGINT ^ t_extent_len::BIGINT; --<<< ERROR HERE t_phone_18 := (in_phone)::BIGINT; t_phone_18 := t_phone_18 * t_multiplier; RETURN t_phone_18; END; $$ LANGUAGE plpgsql; When I try it in pgAdmin, first time it show me error: -- ERROR: value out of range: underflow CONTEXT: PL/pgSQL function "myf_convert_phone18digits" line 12 at assignment -- SECOND (and consequences) time it works and just show result 771506000000000000 I get same problem when I try to call query from web (php). I can't do "second time" here, so web always fail with "ERROR: value out of range: underflow" What's the problem? What can I do with it? -- antonvm -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general