From: | "Heikki Linnakangas" <heikki(at)enterprisedb(dot)com> |
---|---|
To: | "Andrew Dunstan" <andrew(at)dunslane(dot)net> |
Cc: | <pgsql-patches(at)postgresql(dot)org> |
Subject: | Re: CopyReadLineText optimization |
Date: | 2008-03-06 18:52:11 |
Message-ID: | 47D03D5B.4010309@enterprisedb.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers pgsql-patches |
Andrew Dunstan wrote:
> Heikki Linnakangas wrote:
>> Another update attached: It occurred to me that the memchr approach is
>> only safe for server encodings, where the non-first bytes of a
>> multi-byte character always have the hi-bit set.
>>
>
> We currently make the following assumption in the code:
>
> * These four characters, and the CSV escape and quote characters, are
> * assumed the same in frontend and backend encodings.
> *
>
> The four characters are the carriage return, line feed, backslash and dot.
>
> I think the requirement might well actually be somewhat stronger than
> that: i.e. that none of these will appear as a non-first byte in any
> multi-byte client encoding character. If that's right, then we should be
> able to write CopyReadLineText without bothering about multi-byte chars.
> If it's not right then I suspect we have some cases that can fail now
> anyway.
No, we don't require that, and we do handle it correctly. We use
pg_encoding_mblen to determine the length of each character in
CopyReadLineText when the encoding is a client-only encoding, and only
look at the first byte of each character. In CopyReadAttributesText,
where we have a similar loop, we've already transformed the input to
server encoding.
--
Heikki Linnakangas
EnterpriseDB http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2008-03-06 18:53:57 | Re: 8.3.0 Core with concurrent vacuum fulls |
Previous Message | Andrew Dunstan | 2008-03-06 18:45:34 | Re: CopyReadLineText optimization |
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2008-03-06 19:21:03 | Re: CopyReadLineText optimization |
Previous Message | Bruce Momjian | 2008-03-06 18:51:11 | Re: DTrace probe patch for OS X Leopard |