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

Aditya Toshniwal <[email protected]>
Newsgroups gmane.comp.db.postgresql.pgadmin.devel
Message-ID <CAM9w-_=1fqj+QgF=fNt+y4F2HLwWPR9PCejCPT3n-aUq-H3JKg@mail.gmail.com>
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 <[email protected]> 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 <
> [email protected]> 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 <[email protected]> wrote:
>>
>>> Aditya, can you review this please?
>>>
>>> Thanks.
>>>
>>> On Thu, Aug 15, 2019 at 8:01 PM Yosry Muhammad <[email protected]>
>>> 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"
Screenshot 2019-08-22 at 11.13.53.png (image/png, 109.9 KB) - not displayed
Screenshot 2019-08-22 at 11.18.33.png (image/png, 104.6 KB) - not displayed
Screenshot 2019-08-23 at 10.53.30.png (image/png, 74.9 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.