Re: [PATCH] Add roman support for to_number function - Mailing list pgsql-hackers

From Tom Lane
Subject Re: [PATCH] Add roman support for to_number function
Date
Msg-id 3178834.1737407795@sss.pgh.pa.us
Whole thread Raw
In response to Re: [PATCH] Add roman support for to_number function  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: [PATCH] Add roman support for to_number function
List pgsql-hackers
I wrote:
> However, when you poke at that a bit closer, it's not a license
> for unlimited whitespace:

> regression=# select to_number('123  456', '999999');
>  to_number
> -----------
>      12345
> (1 row)

> I've not tracked down the exact cause of that, but I think it
> has to do with the fact that NUM_numpart_from_char() is willing
> to eat a single leading space per call, even if it's not the
> first call.

I tried simply removing that bit:

diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c
index 3960235e14..366430863f 100644
--- a/src/backend/utils/adt/formatting.c
+++ b/src/backend/utils/adt/formatting.c
@@ -5134,12 +5134,6 @@ NUM_numpart_from_char(NUMProc *Np, int id, int input_len)
          (id == NUM_0 || id == NUM_9) ? "NUM_0/9" : id == NUM_DEC ? "NUM_DEC" : "???");
 #endif

-    if (OVERLOAD_TEST)
-        return;
-
-    if (*Np->inout_p == ' ')
-        Np->inout_p++;
-
     if (OVERLOAD_TEST)
         return;


All our regression tests still pass, and this example seems to behave
more sanely:

regression=# select to_number('123 456', '999999');
 to_number
-----------
     12345
(1 row)

regression=# select to_number('123  456', '999999');
 to_number
-----------
      1234
(1 row)

That might or might not be a behavior you like, but it's at least
possible to see where it's coming from: it's eating the digits that
appear within a six-character window, and not any more.

Not sure if anyone would thank us for making this change though.
I can't avoid the suspicion that somebody somewhere is depending
on the current behavior.

Anyway, this is getting off-topic for the current thread.

            regards, tom lane



pgsql-hackers by date:

Previous
From: Dagfinn Ilmari Mannsåker
Date:
Subject: Re: pg_createsubscriber TAP test wrapping makes command options hard to read.
Next
From: Andrew Dunstan
Date:
Subject: Re: XMLDocument (SQL/XML X030)