Hi,
PFA patch to handle the deleted Synonym node gracefully when user clicks
SQL or Properties Panel.
RM#2503
--
Regards,
Murtuza Zabuawala
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
diff --git
a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py
b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py
index 50fd219..e49ab43 100644
---
a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py
+++
b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/__init__.py
@@ -334,18 +334,28 @@ class SynonymView(PGChildNodeView):
except ValueError:
data[k] = v
- sql = render_template("/".join([self.template_path,
- 'get_objects.sql']),
- trgTyp=data['trgTyp'],
- trgSchema=data['trgSchema'])
- status, rset = self.conn.execute_dict(sql)
+ is_valid_request = True
+ if 'trgTyp' not in data or data['trgTyp'] is None or \
+ data['trgTyp'].strip() == '':
+ is_valid_request = False
+
+ if 'trgSchema' not in data or data['trgSchema'] is None or \
+ data['trgSchema'].strip() == '':
+ is_valid_request = False
+
+ if is_valid_request:
+ sql = render_template("/".join([self.template_path,
+ 'get_objects.sql']),
+ trgTyp=data['trgTyp'],
+ trgSchema=data['trgSchema'])
+ status, rset = self.conn.execute_dict(sql)
- if not status:
- return internal_server_error(errormsg=rset)
+ if not status:
+ return internal_server_error(errormsg=rset)
- for row in rset['rows']:
- res.append({'label': row['name'],
- 'value': row['name']})
+ for row in rset['rows']:
+ res.append({'label': row['name'],
+ 'value': row['name']})
return make_json_response(
data=res,
@@ -384,14 +394,8 @@ class SynonymView(PGChildNodeView):
status=200
)
else:
- return make_json_response(
- success=410,
- errormsg=gettext(
- 'Error: Object not found.'
- ),
- info=gettext(
- 'The specified synonym could not be found.\n'
- )
+ return gone(
+ gettext('The specified synonym could not be found.')
)
except Exception as e:
@@ -483,14 +487,8 @@ class SynonymView(PGChildNodeView):
if len(res['rows']) > 0:
data = res['rows'][0]
else:
- return make_json_response(
- success=0,
- errormsg=gettext(
- 'Error: Object not found.'
- ),
- info=gettext(
- 'The specified synonym could not be found.\n'
- )
+ return gone(
+ gettext('The specified synonym could not be found.')
)
SQL = render_template("/".join([self.template_path,
@@ -646,14 +644,8 @@ class SynonymView(PGChildNodeView):
if len(res['rows']) > 0:
data = res['rows'][0]
else:
- return make_json_response(
- success=0,
- errormsg=gettext(
- 'Error: Object not found.'
- ),
- info=gettext(
- 'The specified synonym could not be found.\n'
- )
+ return gone(
+ gettext('The specified synonym could not be found.')
)
SQL = render_template("/".join([self.template_path,