Re: invalid UTF-8 via pl/perl - Mailing list pgsql-hackers

From Tom Lane
Subject Re: invalid UTF-8 via pl/perl
Date
Msg-id 7573.1262549711@sss.pgh.pa.us
Whole thread Raw
In response to Re: invalid UTF-8 via pl/perl  (Andrew Dunstan <andrew@dunslane.net>)
Responses Re: invalid UTF-8 via pl/perl  (Andrew Dunstan <andrew@dunslane.net>)
Re: invalid UTF-8 via pl/perl  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-hackers
Andrew Dunstan <andrew@dunslane.net> writes:
>     andrew=# select 'a' || invalid_utf_seq() || 'b';
>     ERROR:  invalid byte sequence for encoding "UTF8": 0xd0
>     HINT:  This error can also happen if the byte sequence does not
>     match the encoding expected by the server, which is controlled by
>     "client_encoding".
>     CONTEXT:  PL/Perl function "invalid_utf_seq"

> That hint seems rather misleading. I'm not sure what we can do about it 
> though. If we set the noError param on pg_verifymbstr() we would miss 
> the error message that actually identified the bad data, so that doesn't 
> seem like a good plan.

Yeah, we want the detailed error info.  The problem is that the hint is
targeted to the case where we are checking data coming from the client.
We could add another parameter to pg_verifymbstr to indicate the
context, perhaps.  I'm not sure how to do it exactly --- just a bool
that suppresses the hint, or do we want to make a provision for some
other hint or detail message?
        regards, tom lane


pgsql-hackers by date:

Previous
From: Andrew Dunstan
Date:
Subject: Re: invalid UTF-8 via pl/perl
Next
From: Tom Lane
Date:
Subject: Re: invalid UTF-8 via pl/perl