Re: [pgAdmin4][Patch]: RM #3551 pgAdmin4 doesn't handle \'s in data fields correctly

From: Dave Page <dpage(at)pgadmin(dot)org>
To: Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>
Cc: Murtuza Zabuawala <murtuza(dot)zabuawala(at)enterprisedb(dot)com>, Harshal Dhumal <harshal(dot)dhumal(at)enterprisedb(dot)com>, pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>
Subject: Re: [pgAdmin4][Patch]: RM #3551 pgAdmin4 doesn't handle \'s in data fields correctly
Date: 2018-09-25 14:35:01
Message-ID: CA+OCxoyRzL5HR_tZA_G91y2r_x0qoKhhLaMastmyy0yf96cAGw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Thanks - patch applied.

On Tue, Sep 25, 2018 at 1:40 AM Akshay Joshi <akshay(dot)joshi(at)enterprisedb(dot)com>
wrote:

> 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(dot)zabuawala(at)enterprisedb(dot)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(dot)dhumal(at)enterprisedb(dot)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(dot)joshi(at)enterprisedb(dot)com> wrote:
>>>
>>>> Hi Hackers,
>>>>
>>>> Attached is the modified patch with regression tests.
>>>>
>>>> On Wed, Sep 19, 2018 at 11:32 AM, Akshay Joshi <
>>>> akshay(dot)joshi(at)enterprisedb(dot)com> wrote:
>>>>
>>>>> Hi Dave
>>>>>
>>>>> On Fri, Sep 14, 2018 at 8:02 PM, Dave Page <dpage(at)pgadmin(dot)org> wrote:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> On Fri, Sep 14, 2018 at 12:48 PM, Akshay Joshi <
>>>>>> akshay(dot)joshi(at)enterprisedb(dot)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*
>

--
Dave Page
Blog: http://pgsnake.blogspot.com
Twitter: @pgsnake

EnterpriseDB UK: http://www.enterprisedb.com
The Enterprise PostgreSQL Company

In response to

Browse pgadmin-hackers by date

  From Date Subject
Next Message Dave Page 2018-10-01 09:23:27 pgAdmin 4 commit: Update message catalogs
Previous Message Dave Page 2018-09-25 14:34:37 pgAdmin 4 commit: Fix handling of backslashes in the edit grid. Fixes #