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 [EMAIL PROTECTED] -- Bruce Momjian | http://candle.pha.pa.us [EMAIL PROTECTED] | (610) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 ---------------------------(end of broadcast)--------------------------- TIP 4: Don't 'kill -9' the postmaster