Hi, On Mon, Jun 12, 2017 at 8:24 PM, Dave Page <dp...@pgadmin.org> wrote:
> Hi Khushboo, > > Looks like this patch broke the regressions tests :-(. Can you take a look > ASAP please? > > please find the attached fix. However I didn't get any error while running regression tests. > Thanks! > > 2017-06-12 10:04:11,938: INFO werkzeug: 127.0.0.1 - - [12/Jun/2017 > 10:04:11] "GET /browser/table/sql/1/1/12669/2200/81920 HTTP/1.1" 500 - > Traceback (most recent call last): > File "/Users/pivotal/.pyenv/versions/2.7.10/envs/pgadmin/lib/ > python2.7/site-packages/flask/app.py", line 2000, in __call__ > return self.wsgi_app(environ, start_response) > File "/Users/pivotal/.pyenv/versions/2.7.10/envs/pgadmin/lib/ > python2.7/site-packages/flask/app.py", line 1991, in wsgi_app > response = self.make_response(self.handle_exception(e)) > File "/Users/pivotal/.pyenv/versions/2.7.10/envs/pgadmin/lib/ > python2.7/site-packages/flask/app.py", line 1567, in handle_exception > reraise(exc_type, exc_value, tb) > File "/Users/pivotal/.pyenv/versions/2.7.10/envs/pgadmin/lib/ > python2.7/site-packages/flask/app.py", line 1988, in wsgi_app > response = self.full_dispatch_request() > File "/Users/pivotal/.pyenv/versions/2.7.10/envs/pgadmin/lib/ > python2.7/site-packages/flask/app.py", line 1641, in full_dispatch_request > rv = self.handle_user_exception(e) > File "/Users/pivotal/.pyenv/versions/2.7.10/envs/pgadmin/lib/ > python2.7/site-packages/flask/app.py", line 1544, in handle_user_exception > reraise(exc_type, exc_value, tb) > File "/Users/pivotal/.pyenv/versions/2.7.10/envs/pgadmin/lib/ > python2.7/site-packages/flask/app.py", line 1639, in full_dispatch_request > rv = self.dispatch_request() > File "/Users/pivotal/.pyenv/versions/2.7.10/envs/pgadmin/lib/ > python2.7/site-packages/flask/app.py", line 1625, in dispatch_request > return self.view_functions[rule.endpoint](**req.view_args) > File "/Users/pivotal/.pyenv/versions/2.7.10/envs/pgadmin/lib/ > python2.7/site-packages/flask/views.py", line 84, in view > return self.dispatch_request(*args, **kwargs) > File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/browser/utils.py", > line 235, in dispatch_request > return method(*args, **kwargs) > File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/browser/serve > r_groups/servers/databases/schemas/tables/__init__.py", line 315, in wrap > return f(*args, **kwargs) > File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/browser/serve > r_groups/servers/databases/schemas/tables/__init__.py", line 2555, in sql > data = self._formatter(did, scid, tid, data) > File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/browser/serve > r_groups/servers/databases/schemas/tables/__init__.py", line 1081, in > _formatter > data = self._columns_formatter(tid, data) > File "/Users/pivotal/workspace/pgadmin4/web/pgadmin/browser/serve > r_groups/servers/databases/schemas/tables/__init__.py", line 663, in > _columns_formatter > column['attlen'] = matchObj.group(1) > AttributeError: 'NoneType' object has no attribute 'group' > > > On Mon, Jun 12, 2017 at 12:49 PM, Dave Page <dp...@pgadmin.org> wrote: > >> Thanks, applied. >> >> On Fri, Jun 9, 2017 at 10:18 AM, Khushboo Vashi < >> khushboo.va...@enterprisedb.com> wrote: >> >>> Hi, >>> >>> Please find the attached updated patch. >>> >>> Fixed the PostGIS Datatypes in SQL tab, Create / Update dialogues for >>> Table, Column, Foreign Table and Type node. >>> >>> Regarding the review comment given by Dave (Also, I there should be a >>> space between the , and value in the_geom geometry(MultiPolygon,3310).), >>> won't be fixed as this format is returned by format_type() function itself. >>> >>> As per the conversation with Dave, I have logged RM #2473 >>> <https://redmine.postgresql.org/issues/2473> to add support for PostGIS >>> Datatypes. >>> >>> Thanks, >>> Khushboo >>> >>> On Tue, Jun 6, 2017 at 6:49 PM, Dave Page <dp...@pgadmin.org> wrote: >>> >>>> >>>> >>>> On Tue, Jun 6, 2017 at 2:15 PM, Khushboo Vashi < >>>> khushboo.va...@enterprisedb.com> wrote: >>>> >>>>> >>>>> >>>>> On 6 Jun 2017 18:36, "Dave Page" <dp...@pgadmin.org> wrote: >>>>> >>>>> >>>>> >>>>> On Tue, Jun 6, 2017 at 1:23 PM, Khushboo Vashi < >>>>> khushboo.va...@enterprisedb.com> wrote: >>>>> >>>>>> >>>>>> >>>>>> On 6 Jun 2017 17:42, "Dave Page" <dp...@pgadmin.org> wrote: >>>>>> >>>>>> Hi >>>>>> >>>>>> The table and column dialogues seem to have related problems. For >>>>>> example, the table dialogue shows the length of the geometry field in the >>>>>> test case as 847,380, whilst the column dialogue shows no length at all. >>>>>> >>>>>> What should be there in length and precision fields in this case? >>>>>> >>>>> >>>>> I have no idea :-). What did pgAdmin 3 do here? I assume there's some >>>>> way to decode the typmod into the desired values, and map them back to >>>>> appropriate SQL. >>>>> >>>>> I will try to figure out the way. >>>>> pgAdmin 3 has the same issue, so I have asked for the suggestion. >>>>> >>>> >>>> Oh, OK - thanks. Maybe we need to reuse the length and precision fields >>>> for these types. That is, I believe, essentially how PostGIS passes extra >>>> info to the column definitions. >>>> >>>> >>>>> >>>>> >>>>>> Also, I there should be a space between the , and value in the_geom >>>>>> geometry(MultiPolygon,3310). >>>>>> >>>>>> Thanks. >>>>>> >>>>>> On Mon, Jun 5, 2017 at 8:32 AM, Khushboo Vashi < >>>>>> khushboo.va...@enterprisedb.com> wrote: >>>>>> >>>>>>> Hi, >>>>>>> >>>>>>> Fixed PostGIS datatype on SQL tab for Table, column, Foreign Table >>>>>>> and Type node. >>>>>>> >>>>>>> Please find the attached updated patch. >>>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> Khushboo >>>>>>> >>>>>>> On Thu, Jun 1, 2017 at 6:36 PM, Murtuza Zabuawala < >>>>>>> murtuza.zabuaw...@enterprisedb.com> wrote: >>>>>>> >>>>>>>> >>>>>>>> On Thu, Jun 1, 2017 at 5:27 PM, Khushboo Vashi < >>>>>>>> khushboo.va...@enterprisedb.com> wrote: >>>>>>>> >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> >>>>>>>>> On Thu, Jun 1, 2017 at 4:57 PM, Murtuza Zabuawala < >>>>>>>>> murtuza.zabuaw...@enterprisedb.com> wrote: >>>>>>>>> >>>>>>>>>> Hi Khushboo, >>>>>>>>>> >>>>>>>>>> Please include Type node and Foreign Table node in your fix :-) >>>>>>>>>> >>>>>>>>>> I don't think Type node requires this change. >>>>>>>>> >>>>>>>>> Yes, It do require because user can create composite type from >>>>>>>> existing types. >>>>>>>> [image: Inline image 1] >>>>>>>> >>>>>>>>> Foreign table changes added in the attached updated patch. >>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>> Thanks Murtuza for pointing this out. >>>>>>> >>>>>>> >>>>>>>> Regards, >>>>>>>>>> Murtuza Zabuawala >>>>>>>>>> EnterpriseDB: http://www.enterprisedb.com >>>>>>>>>> The Enterprise PostgreSQL Company >>>>>>>>>> >>>>>>>>>> On Thu, Jun 1, 2017 at 3:23 PM, Khushboo Vashi < >>>>>>>>>> khushboo.va...@enterprisedb.com> wrote: >>>>>>>>>> >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> Please find the attached patch to fix RM #2324 : PostGIS >>>>>>>>>>> datatypes not showing up properly on SQL tab. >>>>>>>>>>> >>>>>>>>>>> Thanks, >>>>>>>>>>> Khushboo >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> Sent via pgadmin-hackers mailing list ( >>>>>>>>>>> pgadmin-hackers@postgresql.org) >>>>>>>>>>> To make changes to your subscription: >>>>>>>>>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Sent via pgadmin-hackers mailing list (pgadmin-hack...@postgresql.or >>>>>>> g) >>>>>>> To make changes to your subscription: >>>>>>> http://www.postgresql.org/mailpref/pgadmin-hackers >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Dave Page >>>>>> Blog: http://pgsnake.blogspot.com >>>>>> Twitter: @pgsnake >>>>>> >>>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>>> The Enterprise PostgreSQL Company >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Dave Page >>>>> Blog: http://pgsnake.blogspot.com >>>>> Twitter: @pgsnake >>>>> >>>>> EnterpriseDB UK: http://www.enterprisedb.com >>>>> The Enterprise PostgreSQL Company >>>>> >>>>> >>>>> >>>> >>>> >>>> -- >>>> Dave Page >>>> Blog: http://pgsnake.blogspot.com >>>> Twitter: @pgsnake >>>> >>>> EnterpriseDB UK: http://www.enterprisedb.com >>>> The Enterprise PostgreSQL Company >>>> >>> >>> >> >> >> -- >> Dave Page >> Blog: http://pgsnake.blogspot.com >> Twitter: @pgsnake >> >> EnterpriseDB UK: http://www.enterprisedb.com >> The Enterprise PostgreSQL Company >> > > > > -- > Dave Page > Blog: http://pgsnake.blogspot.com > Twitter: @pgsnake > > EnterpriseDB UK: http://www.enterprisedb.com > The Enterprise PostgreSQL Company >
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py index df9eb1a..f6fa65e 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/__init__.py @@ -657,19 +657,23 @@ class TableView(PGChildNodeView, DataTypeReader, VacuumSettings): if 'elemoid' in column: length, precision, typeval = self.get_length_precision(column['elemoid']) + # Set length and precision to None + column['attlen'] = None + column['attprecision'] = None + # If we have length & precision both if length and precision: matchObj = re.search(r'(\d+),(\d+)', fulltype) - column['attlen'] = matchObj.group(1) - column['attprecision'] = matchObj.group(2) + if matchObj: + column['attlen'] = matchObj.group(1) + column['attprecision'] = matchObj.group(2) elif length: # If we have length only matchObj = re.search(r'(\d+)', fulltype) - column['attlen'] = matchObj.group(1) - column['attprecision'] = None - else: - column['attlen'] = None - column['attprecision'] = None + if matchObj: + column['attlen'] = matchObj.group(1) + column['attprecision'] = None + SQL = render_template("/".join([self.column_template_path, 'is_referenced.sql']), diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py index 7a28cda..b5b88e9 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/column/__init__.py @@ -348,21 +348,24 @@ class ColumnsView(PGChildNodeView, DataTypeReader): if 'elemoid' in data: length, precision, typeval = self.get_length_precision(data['elemoid']) + # Set length and precision to None + data['attlen'] = None + data['attprecision'] = None + import re - # If we have length & precision both + # If we have length & precision both if length and precision: matchObj = re.search(r'(\d+),(\d+)', fulltype) - data['attlen'] = matchObj.group(1) - data['attprecision'] = matchObj.group(2) + if matchObj: + data['attlen'] = matchObj.group(1) + data['attprecision'] = matchObj.group(2) elif length: # If we have length only matchObj = re.search(r'(\d+)', fulltype) - data['attlen'] = matchObj.group(1) - data['attprecision'] = None - else: - data['attlen'] = None - data['attprecision'] = None + if matchObj: + data['attlen'] = matchObj.group(1) + data['attprecision'] = None # We need to fetch inherited tables for each table SQL = render_template("/".join([self.template_path, diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py index 8f02741..07df594 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/types/__init__.py @@ -435,19 +435,22 @@ class TypeView(PGChildNodeView, DataTypeReader): # Below logic will allow us to split length, precision from type name for grid import re + t_len = None + t_prec = None + # If we have length & precision both if is_tlength and is_precision: matchObj = re.search(r'(\d+),(\d+)', row['fulltype']) - t_len = matchObj.group(1) - t_prec = matchObj.group(2) + if matchObj: + t_len = matchObj.group(1) + t_prec = matchObj.group(2) elif is_tlength: # If we have length only matchObj = re.search(r'(\d+)', row['fulltype']) - t_len = matchObj.group(1) - t_prec = None - else: - t_len = None - t_prec = None + if matchObj: + t_len = matchObj.group(1) + t_prec = None + type_name = DataTypeReader.parse_type_name(row['typname'])
-- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers