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 95e58b6..97df5f5 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 @@ -391,10 +391,18 @@ class SynonymView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) + # Find parent oid to add properly in tree browser + SQL = render_template("/".join([self.template_path, + 'get_parent_oid.sql']), + data=data, conn=self.conn) + status, parent_id = self.conn.execute_scalar(SQL) + if not status: + return internal_server_error(errormsg=res) + return jsonify( node=self.blueprint.generate_browser_node( data['name'], - scid, + int(parent_id), data['name'], icon="icon-synonym" ) @@ -483,25 +491,14 @@ class SynonymView(PGChildNodeView): if not status: return internal_server_error(errormsg=res) - return make_json_response( - success=1, - info="Synonym updated", - data={ - 'id': syid, - 'scid': scid, - 'did': did - } - ) - else: - return make_json_response( - success=1, - info="Nothing to update", - data={ - 'id': syid, - 'scid': scid, - 'did': did - } + return jsonify( + node=self.blueprint.generate_browser_node( + syid, + scid, + syid, + icon="icon-synonym" ) + ) except Exception as e: return internal_server_error(errormsg=str(e)) diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.1_plus/get_parent_oid.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.1_plus/get_parent_oid.sql new file mode 100644 index 0000000..08f07e0 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.1_plus/get_parent_oid.sql @@ -0,0 +1,5 @@ +SELECT synnamespace as scid + FROM pg_synonym s +WHERE synname = {{ data.name|qtLiteral }} +AND synnamespace IN + ( SELECT oid FROM pg_namespace WHERE nspname = {{ data.schema|qtLiteral }} ); \ No newline at end of file diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.5_plus/get_parent_oid.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.5_plus/get_parent_oid.sql new file mode 100644 index 0000000..08f07e0 --- /dev/null +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/synonyms/templates/synonym/sql/9.5_plus/get_parent_oid.sql @@ -0,0 +1,5 @@ +SELECT synnamespace as scid + FROM pg_synonym s +WHERE synname = {{ data.name|qtLiteral }} +AND synnamespace IN + ( SELECT oid FROM pg_namespace WHERE nspname = {{ data.schema|qtLiteral }} ); \ No newline at end of file