Hi Hackers, Attached is the modified patch using six module. Please review it.
On Fri, Sep 21, 2018 at 12:16 PM Murtuza Zabuawala < murtuza.zabuaw...@enterprisedb.com> wrote: > Instead, we can utilize in-built 'six' module > <https://pythonhosted.org/six/#six.string_types> which will work in both > Py 2.x & 3.x > >>> isinstance(val, string_types) > > -- Murtuza > > On Thu, Sep 20, 2018 at 8:38 PM Harshal Dhumal < > harshal.dhu...@enterprisedb.com> wrote: > >> 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* >>> >> -- *Akshay Joshi* *Sr. Software Architect * *Phone: +91 20-3058-9517Mobile: +91 976-788-8246*
RM_3551_v4.patch
Description: Binary data