Re: [HACKERS] More efficient truncation of pg_stat_activity querystrings
От | Andres Freund |
---|---|
Тема | Re: [HACKERS] More efficient truncation of pg_stat_activity querystrings |
Дата | |
Msg-id | 20170912081929.26l6hsf5ittlz2ho@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: [HACKERS] More efficient truncation of pg_stat_activity querystrings (Tatsuo Ishii <ishii@sraoss.co.jp>) |
Ответы |
Re: [HACKERS] More efficient truncation of pg_stat_activity querystrings
|
Список | pgsql-hackers |
On 2017-09-12 16:53:49 +0900, Tatsuo Ishii wrote: > > read side. I think that should work because all *server side* encodings > > store character lengths in the *first* byte of a multibyte character > > What do you mean? I don't see such data in a multibyte string. Check the information the pg_*_mblen use / how the relevant encodings work. Will be something like int pg_utf_mblen(const unsigned char *s) {int len; if ((*s & 0x80) == 0) len = 1;else if ((*s & 0xe0) == 0xc0) len = 2;else if ((*s & 0xf0) == 0xe0) len = 3;else if((*s & 0xf8) == 0xf0) len = 4; #ifdef NOT_USEDelse if ((*s & 0xfc) == 0xf8) len = 5;else if ((*s & 0xfe) == 0xfc) len = 6; #endifelse len = 1;return len; } As you can see, only the first character (*s) is accessed to determine the length/width of the multibyte-character. That's afaict the case for all server-side encodings. Greetings, Andres Freund -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
В списке pgsql-hackers по дате отправления: