Already applied. Thanks.
---------------------------------------------------------------------------
Gavin Sherry wrote:
> The attached patch changes the existing behaviour of length(char(n)).
> Currently, this is what happens:
>
> template1=# select length('blah'::char(10));
> length
> --------
> 10
> (1 row)
>
> With this patch:
>
> template1=# select length('blah'::char(10));
> length
> --------
> 4
> (1 row)
>
> This behaviour was proposed by Tom back in November last year. (I have
> tried to handle multibyte correctly but probably haven't -- hence my email
> hackers instead of patches).
>
> The spec doesn't give us any insight (as far as I can tell) as to how we
> should do it length(char(n)), but the above seems consistent with other
> parts of the code (eg, comparison functions, concatenation).
>
> SQL200X has these choice paragraphs for those who are interested:
>
> <length expression> returns the length of a given character string,
> as an exact numeric value, in characters or octets according to the
> choice of function.
>
> And:
>
> the result is the number of explicit or implicit
> <char length units> in <char length expression>, counted in
> accordance with the definition of those units in the relevant
> normatively referenced document.
>
> I have no idea what the 'normatively referenced document' is, but grep-ing
> through all of SQL200X, 99 and 92 didn't reveal anything too interesting.
>
>
> Gavin
Content-Description:
[ Attachment, skipping... ]
>
> ---------------------------(end of broadcast)---------------------------
> TIP 1: subscribe and unsubscribe commands go to majordomo@postgresql.org
-- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610)
359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square,
Pennsylvania19073