Re: [GSoC][New Feature] Editable and Read-only Columns

From: Aditya Toshniwal <aditya(dot)toshniwal(at)enterprisedb(dot)com>
To: Yosry Muhammad <yosrym93(at)gmail(dot)com>
Cc: pgadmin-hackers <pgadmin-hackers(at)postgresql(dot)org>, Dave Page <dpage(at)pgadmin(dot)org>
Subject: Re: [GSoC][New Feature] Editable and Read-only Columns
Date: 2019-08-23 05:32:23
Message-ID: CAM9w-_=1fqj+QgF=fNt+y4F2HLwWPR9PCejCPT3n-aUq-H3JKg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgadmin-hackers

Hi Yosry,

The previously mentioned issues seems to be fixed. Below are few issues:
1) On Python 2.7, I get below error when opening query tool:
2019-08-23 10:49:09,329: ERROR flask.app: Object of type buffer is not JSON
serializable
Traceback (most recent call last):
File
"/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/flask/app.py",
line 1813, in full_dispatch_request
rv = self.dispatch_request()
File
"/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/flask/app.py",
line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File
"/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/flask_login/utils.py",
line 261, in decorated_view
return func(*args, **kwargs)
File
"/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/__init__.py",
line 1544, in get_query_history
return QueryHistory.get(current_user.id, trans_obj.sid, conn.db)
File
"/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/utils/query_history.py",
line 21, in get
'result': [rec.query_info for rec in result]
File
"/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/utils/ajax.py", line
75, in make_json_response
separators=(',', ':'), encoding=encoding),
File
"/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/simplejson/__init__.py",
line 399, in dumps
**kw).encode(obj)
File
"/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/simplejson/encoder.py",
line 296, in encode
chunks = self.iterencode(o, _one_shot=True)
File
"/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/simplejson/encoder.py",
line 378, in iterencode
return _iterencode(o, 0)
File
"/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/utils/ajax.py", line
30, in default
return json.JSONEncoder.default(self, obj)
File
"/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/simplejson/encoder.py",
line 273, in default
o.__class__.__name__)
TypeError: Object of type buffer is not JSON serializable
2) The patch is not compatible with older pyscopg2 (2.7.7). I get below
error in View/Edit data.
[image: Screenshot 2019-08-23 at 10.53.30.png]
2019-08-23 10:53:12,020: ERROR flask.app: 'table_column'
Traceback (most recent call last):
File
"/Users/adityatoshniwal/venv/pypg35/lib/python3.5/site-packages/flask/app.py",
line 1813, in full_dispatch_request
rv = self.dispatch_request()
File
"/Users/adityatoshniwal/venv/pypg35/lib/python3.5/site-packages/flask/app.py",
line 1799, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File
"/Users/adityatoshniwal/venv/pypg35/lib/python3.5/site-packages/flask_login/utils.py",
line 261, in decorated_view
return func(*args, **kwargs)
File
"/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/__init__.py",
line 435, in poll
columns = trans_obj.get_columns_types(conn)
File
"/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/command.py",
line 688, in get_columns_types
table_oid=table_oid)
File
"/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/utils/get_column_types.py",
line 38, in get_columns_types
if row['oid'] == col['table_column']:
KeyError: 'table_column'

On Thu, Aug 22, 2019 at 11:14 PM Yosry Muhammad <yosrym93(at)gmail(dot)com> wrote:

> Hi,
>
> Please find an updated patch attached including fixing mentioned issues,
> python and feature tests, and updates to docs (including a new screenshot).
>
> On Thu, Aug 22, 2019 at 7:52 AM Aditya Toshniwal <
> aditya(dot)toshniwal(at)enterprisedb(dot)com> wrote:
>
>> Hi Yosry,
>>
>> Nice work there !! :)
>> Few suggestions:
>> 1) Wrap texts like "tooltip = 'Editable column' " in gettext so that they
>> are translated to language selected.
>> 2) One of the api test case is failing. I tried on PG 9.4, Python 3.5.
>> Tested 2 times.
>> ======================================================================
>> FAIL: runTest
>> (pgadmin.tools.sqleditor.utils.tests.test_is_query_resultset_updatable.TestQueryUpdatableResultset)
>> When renaming a column to a primary key name
>> ----------------------------------------------------------------------
>> Traceback (most recent call last):
>> File
>> "/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/utils/tests/test_is_query_resultset_updatable.py",
>> line 100, in runTest
>> self._check_primary_keys(response_data)
>> File
>> "/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/utils/tests/test_is_query_resultset_updatable.py",
>> line 119, in _check_primary_keys
>> self.assertEquals(primary_keys, self.primary_keys)
>> AssertionError: {'pk_col1': 'int4', 'pk_col2': 'int4'} != None
>> 3) For table containing geometry columns, the lock icon is not shown for
>> non-editable columns. Instead, geometry view icon is shown. Also the data
>> type is incorrect. Below is the screenshot. Please note, this seems to be
>> happening only for text columns.
>> [image: Screenshot 2019-08-22 at 11.13.53.png][image: Screenshot
>> 2019-08-22 at 11.18.33.png]
>>
>> On Wed, Aug 21, 2019 at 4:01 PM Dave Page <dpage(at)pgadmin(dot)org> wrote:
>>
>>> Aditya, can you review this please?
>>>
>>> Thanks.
>>>
>>> On Thu, Aug 15, 2019 at 8:01 PM Yosry Muhammad <yosrym93(at)gmail(dot)com>
>>> wrote:
>>>
>>>> Hi, hackers !
>>>>
>>>> Please find attached a work-in-progress patch adding a new feature to
>>>> the Query Tool on top of updatable result-sets.
>>>>
>>>> This patch allows individual columns of an updatable result-set to be
>>>> editable or read-only. This allows for a wider variety of updatable
>>>> result-sets, for example:
>>>>
>>>> - Result-sets with duplicated columns.
>>>> - Result-sets with renamed columns (if a column is renamed to a primary
>>>> key name, the real primary key can be correctly identified) .
>>>> - Result-sets including columns that are not selected directly from a
>>>> table (e.g concatenation of 2 columns or system columns).
>>>>
>>>> In the above cases, these columns would be read-only while other
>>>> columns of the result-set are editable. Editable/Read-only columns are
>>>> identified by icons and tooltips in the column header.
>>>>
>>>> This is still a work-in-progress, updates to tests and documentation is
>>>> still due. Looking forward to your thoughts and feedback!
>>>>
>>>> Also, do you think the editable/read-only icons should apply in both
>>>> View/Edit Data and Query Tool for consistency? or hidden from View/Edit
>>>> Data as all columns are editable anyway?
>>>>
>>>> Thanks.
>>>>
>>>> --
>>>> *Yosry Muhammad Yosry*
>>>>
>>>> Computer Engineering student,
>>>> The Faculty of Engineering,
>>>> Cairo University (2021).
>>>> Class representative of CMP 2021.
>>>> https://www.linkedin.com/in/yosrym93/
>>>>
>>>
>>>
>>> --
>>> 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 India | Pune
>> "Don't Complain about Heat, Plant a TREE"
>>
>
>
> --
> *Yosry Muhammad Yosry*
>
> Computer Engineering student,
> The Faculty of Engineering,
> Cairo University (2021).
> Class representative of CMP 2021.
> https://www.linkedin.com/in/yosrym93/
>

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

In response to

Responses

Browse pgadmin-hackers by date

  From Date Subject
Next Message Aditya Toshniwal 2019-08-23 05:56:55 Re: Query Tool JS Minimal Refactoring
Previous Message Akshay Joshi 2019-08-23 04:52:32 pgAdmin 4 commit: Fix SQL tab issue for Views. It's a regression of com