Re: to_char PL/MI fix - Mailing list pgsql-patches

From Karel Zak
Subject Re: to_char PL/MI fix
Date
Msg-id 20030317085622.GC14827@zf.jcu.cz
Whole thread Raw
In response to Re: to_char PL/MI fix  (Karel Zak <zakkr@zf.jcu.cz>)
Responses Re: to_char PL/MI fix
List pgsql-patches

 What do with this patch? I think commit to CVS :-)

    Karel


On Tue, Feb 25, 2003 at 09:38:54AM +0100, Karel Zak wrote:
> 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/
>
> ---------------------------(end of broadcast)---------------------------
> TIP 5: Have you checked our extensive FAQ?
>
> http://www.postgresql.org/users-lounge/docs/faq.html

--
 Karel Zak  <zakkr@zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/

pgsql-patches by date:

Previous
From: "Christopher Kings-Lynne"
Date:
Subject: Re: Dump CLUSTER in pg_dump
Next
From: Bruce Momjian
Date:
Subject: Re: to_char PL/MI fix