Re: to_char PL/MI fix
От | Karel Zak |
---|---|
Тема | Re: to_char PL/MI fix |
Дата | |
Msg-id | 20030225083853.GB26629@zf.jcu.cz обсуждение исходный текст |
Ответ на | Re: to_char PL/MI fix (Peter Eisentraut <peter_e@gmx.net>) |
Ответы |
Re: to_char PL/MI fix
|
Список | pgsql-patches |
On Mon, Feb 24, 2003 at 08:16:07PM +0100, Peter Eisentraut wrote: > Karel Zak writes: > > > Peter found bug in the to_char() routine for PL/MI options. This > > patch fix it -- but this patch doesn't contains tests or docs fixes. I > > will send it later. > > I think there is still a problem with PL. It puts the '+' in aligned > position and '-' anchored to the number. Is that correct? If PL were to Yes, it's correct. The MI/PL/SG is PostgreSQL extension, the Oracle knows very limited version of MI only -- it means we can implement it by our idea. > behave like the converse of MI and like it is documented, it would put a > '+' in aligned position and never put a '-' anywhere. Also, due to this > apparent problem, PL creates extra whitespace in front of the number. PL shows '+' or ' ' on wanted position and not disable '-' beacuse the negative number without '-' is other number. I think disable '-' for PL will produce mazy outputs (there is not problem implement it, but I don't think it's good idea, if you need something like this you can use abs() or define format that handle '-'). The anchored '-' is disabled only if output format contains other option which handle '-' (like S/SG/MI). The extra space for PL is for anchored '-', if format option contains MI or SG this space is not used. select to_char(x, 'PL9999.999') as pl, to_char(x, 'PLMI9999.999') as plmi from num; pl | plmi ------------+------------ + 123.000 | + 123.000 -123.000 | - 123.000 -1231.000 | -1231.000 + 1231.000 | + 1231.000 + 1.900 | + 1.900 -1.900 | - 1.900 -.900 | - .900 + .900 | + .900 + .945 | + .945 -.945 | - .945 -150.945 | - 150.945 + 150.945 | + 150.945 in the 'pl' column is '-' angored to number because is there no other way how show it. test=# select to_char(x, '"Number:"PL9999.999MI') as pl from num; pl ------------------- Number:+ 123.000 Number: 123.000- Number: 1231.000- Number:+1231.000 Number:+ 1.900 Number: 1.900- Number: .900- Number:+ .900 Number:+ .945 Number: .945- Number: 150.945- Number:+ 150.945 there is not extra space beacuse MI is used. Karel -- Karel Zak <zakkr@zf.jcu.cz> http://home.zf.jcu.cz/~zakkr/
В списке pgsql-patches по дате отправления: