Re: Make length(char(n)) return 'true' length
От | Bruce Momjian |
---|---|
Тема | Re: Make length(char(n)) return 'true' length |
Дата | |
Msg-id | 200402121858.i1CIwu512158@candle.pha.pa.us обсуждение исходный текст |
Ответ на | Make length(char(n)) return 'true' length (Gavin Sherry <swm@linuxworld.com.au>) |
Список | pgsql-hackers |
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
В списке pgsql-hackers по дате отправления: