Re: Make length(char(n)) return 'true' length - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: Make length(char(n)) return 'true' length
Date
Msg-id 200402121718.i1CHIZi10371@candle.pha.pa.us
Whole thread Raw
In response to Make length(char(n)) return 'true' length  (Gavin Sherry <swm@linuxworld.com.au>)
Responses Re: Make length(char(n)) return 'true' length  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: Make length(char(n)) return 'true' length  (Gavin Sherry <swm@linuxworld.com.au>)
List pgsql-hackers
Looks good to me but I will get some other eyse on it before I apply it.

Your patch has been added to the PostgreSQL unapplied patches list at:
http://momjian.postgresql.org/cgi-bin/pgpatches

I will try to apply it within the next 48 hours.

---------------------------------------------------------------------------


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
 


pgsql-hackers by date:

Previous
From: Greg Stark
Date:
Subject: Re: Transaction aborts on syntax error.
Next
From: markw@osdl.org
Date:
Subject: Re: Proposed Query Planner TODO items