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"
RM3289_3250.patch
Description: Binary data