From: | Thomas Munro <thomas(dot)munro(at)gmail(dot)com> |
---|---|
To: | Japin Li <japinli(at)hotmail(dot)com> |
Cc: | "pgsql-hackers(at)lists(dot)postgresql(dot)org" <pgsql-hackers(at)lists(dot)postgresql(dot)org> |
Subject: | Re: Invalid Unicode escape value at or near "\u0000" |
Date: | 2021-11-13 05:40:41 |
Message-ID: | CA+hUKGLGU_wUWbfs3G2RXDmo5F0+fC4RX3c+SfpADV3+K+Q6OQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sat, Nov 13, 2021 at 4:32 PM Japin Li <japinli(at)hotmail(dot)com> wrote:
> When I try to insert an Unicode "\u0000", there is an error $subject.
>
> postgres=# CREATE TABLE tbl (s varchar(10));
> CREATE TABLE
> postgres=# INSERT INTO tbl VALUES (E'\u0000');
> ERROR: invalid Unicode escape value at or near "\u0000"
> LINE 1: INSERT INTO tbl VALUES (E'\u0000');
> ^
>
> "\u0000" is valid unicode [1], why not we cannot insert it?
Yes, it is a valid codepoint, but unfortunately PostgreSQL can't
support it because it sometimes deals in null terminated string, even
though internally it does track string data and length separately. We
have to do that to use libc facilities like strcoll_r(), and probably
many other things.
From | Date | Subject | |
---|---|---|---|
Next Message | vignesh C | 2021-11-13 07:19:59 | Re: Identify missing publications from publisher while create/alter subscription. |
Previous Message | Amit Kapila | 2021-11-13 05:10:30 | Re: Parallel vacuum workers prevent the oldest xmin from advancing |