Re: utf8 errors

From: Alban Hertroys <haramrae(at)gmail(dot)com>
To: Jiří Pavlovský <jiri(at)pavlovsky(dot)eu>
Cc: "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org>
Subject: Re: utf8 errors
Date: 2013-06-26 11:32:02
Message-ID: CAF-3MvP2sfmoz2w-omovdUCJ4G6UqVoiGu=Q_YmHh5PYQnFu3w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On 26 June 2013 12:39, Jiří Pavlovský <jiri(at)pavlovsky(dot)eu> wrote:

> On 26.6.2013 12:19, Alban Hertroys wrote:
>
> On 26 June 2013 11:17, Jiří Pavlovský <jiri(at)pavlovsky(dot)eu> wrote:
>
>> On 26.6.2013 10:58, Albe Laurenz wrote:
>> > Jirí Pavlovský wrote:
>> >> I have a win32 application.
>> >> LOG: statement: INSERT INTO recipients (DealID,
>> >> Contactid) VALUES (29009, 9387)
>> >> ERROR: invalid byte sequence for encoding "UTF8": 0x9c
>> >>
>> >>
>> >> But the query is clean ascii and it doesn't even contain the mentioned
>> >> character.
>>
>
> Can you show a \d+ of the recipients table? I suspect there is a trigger
> attached to inserts on the table or some other side-effect that's causing
> the issue.
>
>
> Here you go. But I don't think that is the cause. I'm getting these errors
> on tables as well. Actually when I copy and paste the offending queries
> from log into pgAdmin it runs without an error.
>

I suppose that contacts.contactid and subscription.dealid are integers as
well and not, for example, text fields?

So the queries work from pgadmin; what application/environment are they NOT
working in? Something is obviously different. You say it's a Win32
application, what database libraries and programming languages are involved?

Does the application perhaps send trailing garbage after the query or
something similar? Something like that might happen if there's a memory
allocation bug in the application.
I'm assuming here that, if the query string cannot be converted from utf-8
due to garbage characters, the transcoding error triggers before the query
parser notices a syntax error.

> Table "public.recipients"
> Column | Type | Modifiers | Storage | Stats target | Description
> -----------+---------+-----------+---------+--------------+-------------
> contactid | integer | | plain | |
> dealid | integer | | plain | |
> Indexes:
> "recipients_dealid_key" UNIQUE CONSTRAINT, btree (dealid, contactid)
> "fki_recipients_contactid" btree (contactid)
> Foreign-key constraints:
> "$1" FOREIGN KEY (contactid) REFERENCES contacts(contactid) ON UPDATE
> CASCADE ON DELETE CASCADE
> "recipients_dealid_fk" FOREIGN KEY (dealid) REFERENCES
> subscription(dealid) ON UPDATE CASCADE ON DELETE CASCADE
> Has OIDs: yes
>
>

--
If you can't see the forest for the trees,
Cut the trees and you'll see there is no forest.

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Jiří Pavlovský 2013-06-26 11:45:00 Re: utf8 errors
Previous Message Jiří Pavlovský 2013-06-26 10:39:33 Re: utf8 errors