Re: PATCH: Encoding issue with qtLiteral function (pgAdmin4)

From: Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>
To: Dave Page <dpage(at)pgadmin(dot)org>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: PATCH: Encoding issue with qtLiteral function (pgAdmin4)
Date: 2016-07-27 11:18:59
Message-ID: CAKKotZT2YcvNF-cr3XV_EGiWhc-mPvGZCe5r62YFYbx6Zxvhyw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Dave,

1) Unicode conversion was working properly for function node, It was
failing due to wrong sql templates.
- I've fixed them.
2) Type is also working fine with encoding for me(PFA screenshots), Can you
please provide error you got?

This patch also makes Provider optional in security label control &
templates.

-------
Regarding enforcing to utf-8, In my opinion we can enforce everything to
utf-8 if we use any of one python version but to make it compatible with
both python2 and python3 version by forcing utf-8 encoding it will be
difficult to handle its side effects.

For example,

*Python2,*

>>> txt_sample = 'Hello'
>>> isinstance(txt_sample, str)
True
>>> isinstance(txt_sample, bytes)
True
>>> isinstance(txt_sample, unicode)
False
>>> txt_sample.encode('utf-8')
'Hello'
>>> txt_sample.decode('utf-8')
u'Hello'

Forcing to unicode in Python2,

>>> txt_sample = u'Hello'
>>> isinstance(txt_sample, str)
False
>>> isinstance(txt_sample, bytes)
False
>>> isinstance(txt_sample, unicode)
True

*Python3,*

>>> txt_sample = 'Hello'
>>> isinstance(txt_sample, str)
True
>>> isinstance(txt_sample, bytes)
False
>>> txt_sample.encode('utf-8')
b'Hello'
>>> txt_sample.decode('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'str' object has no attribute 'decode'

And also psycopg2 driver returns text as string in Python2 even if that
text contains unicode characters, In python3 that just works fine because
string is Unicode by default.

Regards,
Murtuza

--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

Attachment Content-Type Size
image/png 29.6 KB
image/png 69.8 KB
image/png 70.6 KB
fix_func_templates_and_SecLabls.patch application/octet-stream 40.5 KB

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2016-07-27 11:34:41 Re: PATCH: Encoding issue with qtLiteral function (pgAdmin4)
Previous Message Dave Page 2016-07-27 10:36:17 pgAdmin 4 commit: Display basic query info when execution completes in