Excellent !! Looks good to me. On Fri, Aug 23, 2019 at 2:23 PM Yosry Muhammad <yosry...@gmail.com> wrote:
> I updated the patch for backwards compatibility anyway. > > On Fri, Aug 23, 2019 at 10:45 AM Dave Page <dp...@pgadmin.org> wrote: > >> >> >> On Fri, Aug 23, 2019 at 9:43 AM Yosry Muhammad <yosry...@gmail.com> >> wrote: >> >>> Hi Aditya, >>> >>> On Fri, Aug 23, 2019 at 7:33 AM Aditya Toshniwal < >>> aditya.toshni...@enterprisedb.com> wrote: >>> >>>> 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 >>>> >>> >>> This error exists on the master branch on Python 2.7, it is not caused >>> by the patch. It is also not a regression of my previous Query History >>> Enhancement patch, I checked. >>> >>> >>>> >>>> 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' >>>> >>> >>> I recall Dave mentioning that it is okay to use psycopg 2.8+ features >>> and that it was a requirement of pgAdmin 4 now (clearly mentioned in >>> requirements.txt too). >>> >> >> I did - then we had the whole table_oid issue on Debian/Ubuntu :-( >> >> >>> However, I updated the patch for backwards compatibility. Please find an >>> updated patch attached. >>> >>> >>> -- >>> *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 >> > > > -- > *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"