Re: bytea insert difference between 8.3 and 9.x
От | Merlin Moncure |
---|---|
Тема | Re: bytea insert difference between 8.3 and 9.x |
Дата | |
Msg-id | CAHyXU0w+rSUZFxmnrLyANMZqqm7UhLf4L0j85BV0r96HX3BCVg@mail.gmail.com обсуждение исходный текст |
Ответ на | bytea insert difference between 8.3 and 9.x (Gregg Jaskiewicz <gryzman@gmail.com>) |
Список | pgsql-general |
On Mon, Sep 26, 2011 at 5:51 AM, Gregg Jaskiewicz <gryzman@gmail.com> wrote: > So consider this code C++, using libpqxx: > > string = "INSERT INTO foo(x) VALUES( E'" + T.esc_raw(data) + "' )"; > > foo(x) is bytea , before you ask. > > On 8.3, it works fine. > On 9.x: > > ERROR: invalid byte sequence for encoding "UTF8": 0x00 (if \000 is in > the string). > > Now, I can take out the E'' and it will work fine on 9.X, but will > whine about it on 8.3. (HINT: Use the escape string syntax for > escapes, e.g., E'\r\n'.) > > > I need one piece of code that will work on both, what should I do in > this case ? urk -- I have to be honest -- that's a pretty lousy way to send bytea. Personally, I'd encode the string as hex and send it like this: "INSERT INTO foo(x) VALUES( decode('" + hex_string + "'))"; libpqxx doesn't have the ability to parameterize queries? merlin
В списке pgsql-general по дате отправления: