EDB team; I forget which one of you was going to look into the existing
ticket about issues with SQL_ASCII handling, but here's some more
information that may help. Please take a look ASAP.

Thanks.

On Thu, May 17, 2018 at 5:53 PM, richard coleman <
rcoleman.ascen...@gmail.com> wrote:

> Dave,
>
> Thanks for getting back to me on this issue.  If this is the case then it
> would seem that using python for pgAdmin4 development was a poor choice
> considering the fact that PostgreSQL 10 supports more than two dozen types
> of encoding, only one of which is UTF8.
>
> In my case I have a SQL_ASCII database that backs a windows desktop
> application (among other things). The users have the ability to copy/paste
> into various text fields (say from email or Microsoft Word).  In the
> immediate case pgAdmin4 is apparently complaining about 0xc9 (É) and 0x4f
> (O).  The *solution* if I want to use pgAdmin4 is to find and
> convert/remove the characters that pgAdmin4 is complaining about.  As I had
> mentioned previously, pgAdmin3 doesn't have this issue (unfortunately it
> doesn't fully support postgresql 10) neither does the .Net application that
> makes use of this postgresql database.  As this is a production database,
> it isn't practical to convert the database to UTF8, and then rewrite the
> applications (there are several) to scrub user input to limit it to only
> UTF8 characters.  Ideally pgAdmin4 should support all of the encoding
> schemes that postgresql 10 does.
>
> Here's the DDL for my database:
>
> CREATE DATABASE tms_production
>>     WITH
>>     OWNER = local_user
>>     ENCODING = 'SQL_ASCII'
>>     LC_COLLATE = 'English_United States.1252'
>>     LC_CTYPE = 'English_United States.1252'
>>     TABLESPACE = pg_default
>>     CONNECTION LIMIT = -1;
>> ALTER DATABASE tms_production
>>     SET default_transaction_read_only TO off;
>> ALTER DATABASE tms_production
>>     SET client_encoding TO SQL_ASCII;
>> ALTER DATABASE tms_production
>>     SET standard_conforming_strings TO off;
>
>
> To replicate the issue;
>
>    - create a table with a text field.
>    - paste some valid ASCII.1252, but invalid UTF8 data into it.
>    - try to do something (ex:SELECT * FROM <your_table> ;) in pgAdmin4
>    with that table
>    - watch pgAdmin4 throw errors.
>
> rik.
>
> On Thu, May 17, 2018 at 10:17 AM, Dave Page <dp...@pgadmin.org> wrote:
>
>>
>>
>> On Thu, May 17, 2018 at 3:06 PM, richard coleman <
>> rcoleman.ascen...@gmail.com> wrote:
>>
>>> Why is pgAdmin 4 so hostile to SQL_ASCII databases?
>>>
>>> We have several production databases dating back to 9.1 that are
>>> SQL_ASCII encoding but in pgAdmin4 I am constantly having to *clean up*
>>>  non *UTF8* data.  The same data works just fine in the pgAdmin3 series.
>>>
>>> Running the same query in psql yields the expected results, but in this
>>> case I get:
>>>
>>> "ERROR:  invalid byte sequence for encoding "UTF8": 0xc9 0x4f
>>> SQL state: 22021"
>>>
>>> in pgAdmin4.
>>>
>>> If I remove the offending characters then pgAdmin4 returns a result
>>> set.  The database is SQL_ASCII encoded, pgAdmin4 *shouldn't care* that
>>> there are non UTF8 characters present.
>>>
>>
>> pgAdmin doesn't - Python does. If you can give some examples, we may be
>> able to figure out the issue and work around it.
>>
>> It's worth noting though that it's usually a bad idea to use SQL_ASCII
>> (that's not intended as an excuse, just as some advice).
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
>


-- 
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Reply via email to