View Single Post

   
  #6 (permalink)  
Old 04-10-2008, 11:00 AM
=?ISO-8859-1?Q?William_Leite_Ara=FAjo?=
 
Posts: n/a
Default Re: BUG #3506: to_number silently ignore characters

CREATE OR REPLACE my_to_number(text,text) RETURNS number AS
$$
BEGIN
IF NOT textregexeq($1,'[0-9]{'||length($2)||'}') THEN
RAISE EXCEPTION 'TEXT % is not a valid NUMBER',$1;
END IF;
RETURNS to_number($1,$2);
END;
$$ LANGUAGE PLPGSQL IMMUTABLE;

OR something like ...

2007/8/3, Laurent Martelli <laurent.martelli@seditel.fr>:
>
> Heikki Linnakangas a écrit :
> > Laurent Martelli wrote:
> >> to_number('123.0','999999') returns 1230, at least on version 7.4 and

> 8.1. I
> >> think it should return 123 or raise an error.

> >
> > to_number will silently ignore any character that doesn't match the
> > pattern. That can be confusing, and not generally a very bright idea in
> > applications, but we can't really change the behavior because that could
> > break existing applications.

>
> OK. I'm tempted to say that since this is not specified in the
> documentation, applications should not rely on this behaviour. But I
> understand you will not to break existing applications, so perhaps you
> could add a function that would behave in a more expected manner, or at
> least document precisely the current behaviour in the documentation.
>
> Best regards,
> Laurent
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo@postgresql.org so that your
> message can get through to the mailing list cleanly
>




--
William Leite Araújo
DBA - QUALICONSULT

Reply With Quote