Hi Akshay, We can do one minor improvement for python 2. Instead of below check *if type(val) in (str, unicode) :* we can check val against *basestring <https://docs.python.org/2/library/functions.html#basestring>*
Thanks, -- *Harshal Dhumal* *Sr. Software Engineer* EnterpriseDB India: http://www.enterprisedb.com The Enterprise PostgreSQL Company On Thu, Sep 20, 2018 at 8:16 PM Akshay Joshi <akshay.jo...@enterprisedb.com> wrote: > Hi Hackers, > > Attached is the modified patch with regression tests. > > On Wed, Sep 19, 2018 at 11:32 AM, Akshay Joshi < > akshay.jo...@enterprisedb.com> wrote: > >> Hi Dave >> >> On Fri, Sep 14, 2018 at 8:02 PM, Dave Page <dp...@pgadmin.org> wrote: >> >>> Hi >>> >>> On Fri, Sep 14, 2018 at 12:48 PM, Akshay Joshi < >>> akshay.jo...@enterprisedb.com> wrote: >>> >>>> Hi Hackers, >>>> >>>> Attached is the patch to fix RM #3551 pgAdmin4 doesn't handle \'s in >>>> data fields correctly. >>>> >>> >>> This doesn't work for me. If I add a new row and enter: >>> >>> \\server\path\to\file >>> >>> as a value, I get the following on the Messages tab: >>> >> >> This works fine for me, I have enter the same value and data is >> stored. I have tested it with character varying column. Though I have found >> some other issues as well. If I fix one issue then another will get >> introduce, so not concluded yet how to fix this and currently working on >> it. >> >>> >>> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>500 >>> Internal Server Error</title> <h1>Internal Server Error</h1> <p>The server >>> encountered an internal error and was unable to complete your request. >>> Either the server is overloaded or there is an error in the application.</p> >>> >>> And this on the Python (3.6) console: >>> >>> 2018-09-14 15:30:28,516: INFO werkzeug: 127.0.0.1 - - [14/Sep/2018 >>> 15:30:28] "POST /sqleditor/save/4073406 HTTP/1.1" 500 - >>> 2018-09-14 15:30:28,522: ERROR werkzeug: Error on request: >>> Traceback (most recent call last): >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>> line 270, in run_wsgi >>> execute(self.server.app) >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/werkzeug/serving.py", >>> line 258, in execute >>> application_iter = app(environ, start_response) >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", >>> line 1997, in __call__ >>> return self.wsgi_app(environ, start_response) >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", >>> line 1985, in wsgi_app >>> response = self.handle_exception(e) >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", >>> line 1540, in handle_exception >>> reraise(exc_type, exc_value, tb) >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/_compat.py", >>> line 33, in reraise >>> raise value >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", >>> line 1982, in wsgi_app >>> response = self.full_dispatch_request() >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", >>> line 1614, in full_dispatch_request >>> rv = self.handle_user_exception(e) >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", >>> line 1517, in handle_user_exception >>> reraise(exc_type, exc_value, tb) >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/_compat.py", >>> line 33, in reraise >>> raise value >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", >>> line 1612, in full_dispatch_request >>> rv = self.dispatch_request() >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask/app.py", >>> line 1598, in dispatch_request >>> return self.view_functions[rule.endpoint](**req.view_args) >>> File >>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.6/site-packages/flask_login.py", >>> line 792, in decorated_view >>> return func(*args, **kwargs) >>> File >>> "/Users/dpage/git/pgadmin4/web/pgadmin/tools/sqleditor/__init__.py", line >>> 785, in save >>> default_conn) >>> File >>> "/Users/dpage/git/pgadmin4/web/pgadmin/tools/sqleditor/command.py", line >>> 858, in save >>> item['select_sql'], res['rows'][0]) >>> File >>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>> line 1147, in execute_dict >>> self.__internal_blocking_execute(cur, query, params) >>> File >>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>> line 659, in __internal_blocking_execute >>> params = self.escape_params_sqlascii(params) >>> File >>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>> line 636, in escape_params_sqlascii >>> for key, val in params.items() >>> File >>> "/Users/dpage/git/pgadmin4/web/pgadmin/utils/driver/psycopg2/connection.py", >>> line 636, in <genexpr> >>> for key, val in params.items() >>> AttributeError: 'int' object has no attribute 'encode' >>> >>> -- >>> Dave Page >>> Blog: http://pgsnake.blogspot.com >>> Twitter: @pgsnake >>> >>> EnterpriseDB UK: http://www.enterprisedb.com >>> The Enterprise PostgreSQL Company >>> >> >> >> >> -- >> *Akshay Joshi* >> >> *Sr. Software Architect * >> >> >> >> *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >> > > > > -- > *Akshay Joshi* > > *Sr. Software Architect * > > > > *Phone: +91 20-3058-9517Mobile: +91 976-788-8246* >