Re: [pgAdmin4][Patch]: Regarding RM#1419 - Internal Server Error displayed if create any object through simplified Chinese character

From: Surinder Kumar <surinder(dot)kumar(at)enterprisedb(dot)com>
To: Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com>
Cc: Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgAdmin4][Patch]: Regarding RM#1419 - Internal Server Error displayed if create any object through simplified Chinese character
Date: 2016-07-12 10:48:34
Message-ID: CAM5-9D_XA=W13DFO9az=Zv5ueGOa+wxv61r6kNVOkPvtWuuqdg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

On Tue, Jul 12, 2016 at 4:07 PM, Ashesh Vashi <ashesh(dot)vashi(at)enterprisedb(dot)com
> wrote:

> On Tue, Jul 12, 2016 at 3:58 PM, Murtuza Zabuawala <
> murtuza(dot)zabuawala(at)enterprisedb(dot)com> wrote:
>
>> May be because of Python2.7 but if you try in Python3. It works.
>>
>> we can use PEP 0263 <http://www.python.org/dev/peps/pep-0263/> to fix
>> this issue. // # -*- coding: utf-8 -*-
>>
> I tried but it didn't worked.
*It gives me error:*
Traceback (most recent call last):
File
"/Users/surinder/Documents/Projects/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/__init__.py",
line 639, in msql
status, res = self.get_sql(gid, sid, data, did)
File
"/Users/surinder/Documents/Projects/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/__init__.py",
line 686, in get_sql
SQL += self.get_new_sql(gid, sid, data, did)
File
"/Users/surinder/Documents/Projects/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/__init__.py",
line 721, in get_new_sql
data=data, conn=self.conn
File
"/Users/surinder/Documents/Workspaces/pgAdmin_27/lib/python2.7/site-packages/flask/templating.py",
line 128, in render_template
context, ctx.app)
File
"/Users/surinder/Documents/Workspaces/pgAdmin_27/lib/python2.7/site-packages/flask/templating.py",
line 110, in _render
rv = template.render(context)
File
"/Users/surinder/Documents/Workspaces/pgAdmin_27/lib/python2.7/site-packages/jinja2/environment.py",
line 969, in render
return self.environment.handle_exception(exc_info, True)
File
"/Users/surinder/Documents/Workspaces/pgAdmin_27/lib/python2.7/site-packages/jinja2/environment.py",
line 742, in handle_exception
reraise(exc_type, exc_value, tb)
File
"/Users/surinder/Documents/Projects/pgadmin4/web/pgadmin/browser/server_groups/servers/databases/templates/databases/sql/9.3_plus/create.sql",
line 3, in top-level template code
CREATE DATABASE {{ conn|qtIdent(data.name) }}
File
"/Users/surinder/Documents/Projects/pgadmin4/web/pgadmin/utils/driver/psycopg2/__init__.py",
line 1597, in qtIdent
val = str(val)
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-8:
ordinal not in range(128)

> Isn't this about the source code encoding, and not about the input
> encoding?
>
> --
>
> Thanks & Regards,
>
> Ashesh Vashi
> EnterpriseDB INDIA: Enterprise PostgreSQL Company
> <http://www.enterprisedb.com/>
>
>
> *http://www.linkedin.com/in/asheshvashi*
> <http://www.linkedin.com/in/asheshvashi>
>
>>
>>
>> --
>> Regards,
>> Murtuza Zabuawala
>> EnterpriseDB: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>> On Tue, Jul 12, 2016 at 3:48 PM, Surinder Kumar <
>> surinder(dot)kumar(at)enterprisedb(dot)com> wrote:
>>
>>> On Tue, Jul 12, 2016 at 3:43 PM, Murtuza Zabuawala <
>>> murtuza(dot)zabuawala(at)enterprisedb(dot)com> wrote:
>>>
>>>> Hi,
>>>>
>>>> Just a heads up, This issue is occurs only in runtime & If you try in
>>>> web everything works fine when you provide unicode characters as object
>>>> name.
>>>>
>>> No, this issue is reported for both web and runtime application. It is
>>> reproducible to me in web application.
>>>
>>>>
>>>> Now sure but the issue is when runtime(QtWebkit) sends data it does not
>>>> encodes it properly & this should be generic fix in runtime.
>>>>
>>>> Regards,
>>>> Murtuza
>>>>
>>>> --
>>>> Regards,
>>>> Murtuza Zabuawala
>>>> EnterpriseDB: http://www.enterprisedb.com
>>>> The Enterprise PostgreSQL Company
>>>>
>>>> On Tue, Jul 12, 2016 at 3:27 PM, Surinder Kumar <
>>>> surinder(dot)kumar(at)enterprisedb(dot)com> wrote:
>>>>
>>>>> Hi
>>>>>
>>>>> *What is happening in code?*
>>>>> Database is created with Chinese characters successfully with ascii
>>>>> values(Chinese characters converted to ascii) before saving internally.
>>>>>
>>>>> but when database properties is retrieved by name, it fails to fetch
>>>>> data and throws UnicodeError.
>>>>>
>>>>> *Solution:*
>>>>> Database name should be encoded in 'utf-8' before storing to database.
>>>>> This resolved the issue.
>>>>> I have tested this patch by creating database name using Japanese and
>>>>> Chinese characters. It works.
>>>>>
>>>>> Also referenced the code to *set default encoding to 'uff-8' *before
>>>>> start of application.
>>>>> https://github.com/joeyespo/grip/issues/86
>>>>>
>>>>> @Ashesh/@Dave can you please review the patch?
>>>>> If it looks good, we can do the same changes in case of other nodes.
>>>>>
>>>>> Thanks,
>>>>> Surinder Kumar
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Sent via pgadmin-hackers mailing list (pgadmin-hackers(at)postgresql(dot)org)
>>>>> To make changes to your subscription:
>>>>> http://www.postgresql.org/mailpref/pgadmin-hackers
>>>>>
>>>>>
>>>>
>>>
>>
>

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Murtuza Zabuawala 2016-07-12 11:11:11 Re: [pgAdmin4][Patch]: Regarding RM#1419 - Internal Server Error displayed if create any object through simplified Chinese character
Previous Message Ashesh Vashi 2016-07-12 10:37:21 Re: [pgAdmin4][Patch]: Regarding RM#1419 - Internal Server Error displayed if create any object through simplified Chinese character