Hi Hackers,

Attached is the updated patch which includes the fix for Download CSV fail
in SQL_ASCII database, which is RM3250
<https://redmine.postgresql.org/issues/3250>
This should fix RM3289 and RM3250. As they interrelated, sending the
combined patch.
Kindly review.

On Fri, Jun 15, 2018 at 2:33 PM, Aditya Toshniwal <
aditya.toshni...@enterprisedb.com> wrote:

> Hi Dave,
>
> On Fri, Jun 15, 2018 at 2:08 PM, Dave Page <dp...@pgadmin.org> wrote:
>
>> Hi
>>
>> On Thu, Jun 14, 2018 at 7:05 AM, Aditya Toshniwal <
>> aditya.toshni...@enterprisedb.com> wrote:
>>
>>> I am sorry I missed the attachment. :(
>>> PFA.
>>>
>>
>> It looks like the encoding names are getting munged somewhere. I see
>> you've accounted for that to some degree in connection.py (you have both
>> SQL_ASCII/MULE_INTERNAL and SQLASCII/MULEINTERNAL), however it doesn't seem
>> to be enough as I'm getting the following error when trying to download CSV
>> from the query tool. Can we ensure that conn.encoding contains an un-munged
>> value at all times, or is that coming from psycopg2?
>>
> ​That is done by pyscopg2 and conn.encoding is a psycopg2 connection
> property.​
>
>
>>
>> 2018-06-15 09:32:28,799: INFO werkzeug: 127.0.0.1 - - [15/Jun/2018
>> 09:32:28] "GET /sqleditor/query_tool/download/2732923?query=SELECT%20*%
>> 20FROM%20public.sql_ascii%0AORDER%20BY%20id%20ASC%20&filename=sql_ascii.csv
>> HTTP/1.1" 500 -
>> 2018-06-15 09:32:28,801: ERROR werkzeug: Error on request:
>> Traceback (most recent call last):
>>   File 
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/serving.py",
>> line 270, in run_wsgi
>>     execute(self.server.app)
>>   File 
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/serving.py",
>> line 260, in execute
>>     for data in application_iter:
>>   File 
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/wsgi.py",
>> line 870, in __next__
>>     return self._next()
>>   File 
>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python2.7/site-packages/werkzeug/wrappers.py",
>> line 82, in _iter_encoded
>>     for item in iterable:
>>   File 
>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py",
>> line 752, in gen
>>     column_name = column_name.decode(conn_encoding)
>> LookupError: unknown encoding: SQLASCII
>>
>
> ​This is because there is code bug here. Below is code used to decode a
> column name. Connection encoding and python encoding are two different
> things. Python does not know what SQLASCII is. This will work with UTF-8
> because python has decoder with same name. I tried to download CSV with the
> original code without changes and it fails there too. I will fix this and
> will send the updated patch. I should have checked this.
> conn_encoding = cur.connection.encoding
> column_name = column_name.decode(conn_encoding)​
>
>
>>
>> --
>> Dave Page
>> Blog: http://pgsnake.blogspot.com
>> Twitter: @pgsnake
>>
>> EnterpriseDB UK: http://www.enterprisedb.com
>> The Enterprise PostgreSQL Company
>>
>
>
>
> --
> Thanks and Regards,
> Aditya Toshniwal
> Software Engineer | EnterpriseDB Software Solutions | Pune
> "Don't Complain about Heat, Plant a tree"
>



-- 
Thanks and Regards,
Aditya Toshniwal
Software Engineer | EnterpriseDB Software Solutions | Pune
"Don't Complain about Heat, Plant a tree"

Attachment: RM3289_3250.patch
Description: Binary data

Reply via email to