Re: Making TEXT NUL-transparent
От | Pavel Stehule |
---|---|
Тема | Re: Making TEXT NUL-transparent |
Дата | |
Msg-id | CAFj8pRDDevc6_Q+VdfeSUKeAtFMpm2gJ7kvw9HzA+vNGd2kGQw@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Making TEXT NUL-transparent (Florian Weimer <fweimer@bfk.de>) |
Список | pgsql-hackers |
2011/11/24 Florian Weimer <fweimer@bfk.de>: > * Pavel Stehule: > >> Hello >> >> 2011/11/24 Florian Weimer <fweimer@bfk.de>: >>> Occasionally, we get bitten by embedded NUL bytes in TEXT values. We >>> take care of generating proper UTF-8, but this additional restriction >>> sometimes slips by. It would be really helpful if PostgreSQL could >>> store such TEXT fields as-is (at least if they are computed internally, >>> or come from query parameters). >>> >> >> and why you don't use bytea ? Text should be correct literal. > > It's actually UTF-8 text, and some PostgreSQL functions are only > available for TEXT, but not BYTEA, e.g.: > > bfk_int=> SELECT '\x006500'::bytea ~ 'A'; > ERROR: operator does not exist: bytea ~ unknown > LINE 1: SELECT '\x006500'::bytea ~ 'A'; > ^ > HINT: No operator matches the given name and argument type(s). You might need to add explicit type casts. > then you can prepare some custom function that can filter zeroes and prepare valid text functions - some postgresql's functions (based on external libs) cannot to work with string containing zeroes too. Probably you can do it in plperl. I don't think so this functionality is generally requested. If you have broken strings, then you have to clean it before storing to database. Regards Pavel > -- > Florian Weimer <fweimer@bfk.de> > BFK edv-consulting GmbH http://www.bfk.de/ > Kriegsstraße 100 tel: +49-721-96201-1 > D-76133 Karlsruhe fax: +49-721-96201-99 >
В списке pgsql-hackers по дате отправления: