Обсуждение: Unnexpected results using to_number()
Is this supposed to happen? I discovered this when I was experimenting with converting a string to a number. # SELECT to_number('12,454.8-', '99G999D9S'); to_number ----------- -12454.8 (1 row) # SELECT to_number('12,454.8-', ''); pqReadData() -- backend closed the channel unexpectedly. This probably means the backend terminated abnormally before or while processing the request. The connection to the server was lost. Attempting reset: Failed. !# I am running PostgreSQL 7.0.2 on FreeBSD 3.4-STABLE (x86). Thanks, - Andrew.
"Andrew Snow" <andrew@modulus.org> writes: > # SELECT to_number('12,454.8-', ''); > pqReadData() -- backend closed the channel unexpectedly. In current sources I get a NULL result, which seems to be what the code author intended originally. However this seems a little bit inconsistent --- shouldn't it raise a bad-format error instead? For example, regression=# SELECT to_number('12,454.8-', ' '); ERROR: Bad numeric input format ' ' Seems odd that no spaces means "return NULL" but 1 or more spaces doesn't. regards, tom lane
On Sun, 9 Jul 2000, Tom Lane wrote: > "Andrew Snow" <andrew@modulus.org> writes: > > # SELECT to_number('12,454.8-', ''); > > pqReadData() -- backend closed the channel unexpectedly. > > In current sources I get a NULL result, which seems to be what the > code author intended originally. However this seems a little bit my original code not return NULL, but return numeric_in(NULL, 0, 0) for this situation. > inconsistent --- shouldn't it raise a bad-format error instead? > For example, > > regression=# SELECT to_number('12,454.8-', ' '); > ERROR: Bad numeric input format ' ' Thanks for fix Tom. Karel