diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/templates/catalog_object/sql/ppas/default/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/templates/catalog_object/sql/ppas/default/nodes.sql
index bf09365a7..d279a478f 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/templates/catalog_object/sql/ppas/default/nodes.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/catalog_objects/templates/catalog_object/sql/ppas/default/nodes.sql
@@ -1,6 +1,8 @@
SELECT
- c.oid, c.relname as name
+ c.oid, c.relname as name, description
FROM pg_catalog.pg_class c
+LEFT OUTER JOIN pg_catalog.pg_description d
+ ON d.objoid=c.oid AND d.classoid='pg_class'::regclass
{% if scid %}
WHERE relnamespace = {{scid}}::oid
OR (
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql
index cbb1e37b4..0112d29ea 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/packages/templates/packages/ppas/12_plus/nodes.sql
@@ -1,7 +1,8 @@
SELECT
- nsp.oid, nspname AS name
+ nsp.oid, nspname AS name, des.description
FROM
pg_catalog.pg_namespace nsp
+ LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=nsp.oid AND des.classoid='pg_namespace'::regclass)
WHERE nspparent = {{scid}}::oid
{% if pkgid %}
AND nsp.oid = {{pkgid}}::oid
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py
index 5fbfa2741..61164a4f5 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/sequences/__init__.py
@@ -243,7 +243,7 @@ class SequenceView(PGChildNodeView, SchemaDiffObjectCompare):
scid,
row['name'],
icon=self.node_icon,
- description=row['description']
+ description=row['comment']
))
return make_json_response(
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py
index 428b3d69f..d9eb3bf19 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/foreign_key/__init__.py
@@ -482,7 +482,8 @@ class ForeignKeyConstraintView(PGChildNodeView):
tid,
row['name'],
icon=icon,
- valid=valid
+ valid=valid,
+ description=row['comment']
))
return res
@@ -605,13 +606,18 @@ class ForeignKeyConstraintView(PGChildNodeView):
if is_error:
return errmsg
+ other_node_info = {}
+ if 'comment' in data:
+ other_node_info['description'] = data['comment']
+
return jsonify(
node=self.blueprint.generate_browser_node(
res['rows'][0]['oid'],
tid,
data['name'],
valid=valid,
- icon=icon
+ icon=icon,
+ **other_node_info
)
)
@@ -713,7 +719,8 @@ class ForeignKeyConstraintView(PGChildNodeView):
tid,
name,
icon=icon,
- valid=valid
+ valid=valid,
+ **other_node_info
)
)
except Exception as e:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
index cb5ecd140..0c46e4a35 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/constraints/index_constraint/__init__.py
@@ -488,7 +488,8 @@ class IndexConstraintView(PGChildNodeView):
row['oid'],
tid,
row['name'],
- icon=self.node_icon
+ icon=self.node_icon,
+ description=row['comment']
))
return res
@@ -625,12 +626,17 @@ class IndexConstraintView(PGChildNodeView):
self.end_transaction()
return internal_server_error(errormsg=res)
+ other_node_info = {}
+ if 'comment' in data:
+ other_node_info['description'] = data['comment']
+
return jsonify(
node=self.blueprint.generate_browser_node(
res['rows'][0]['oid'],
tid,
data['name'],
- icon=self.node_icon
+ icon=self.node_icon,
+ **other_node_info
)
)
@@ -696,7 +702,8 @@ class IndexConstraintView(PGChildNodeView):
cid,
tid,
name,
- icon=self.node_icon
+ icon=self.node_icon,
+ **other_node_info
)
)
except Exception as e:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py
index 8104d977d..c97fccdf3 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/__init__.py
@@ -431,7 +431,8 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
scid,
rset['rows'][0]['name'],
icon="icon-view" if self.node_type == 'view'
- else "icon-mview"
+ else "icon-mview",
+ description=rset['rows'][0]['comment']
)
return make_json_response(
@@ -459,7 +460,8 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
scid,
row['name'],
icon="icon-view" if self.node_type == 'view'
- else "icon-mview"
+ else "icon-mview",
+ description=row['comment']
))
return make_json_response(
@@ -583,13 +585,18 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
if not status:
return internal_server_error(errormsg=new_scid)
+ other_node_info = {}
+ if 'comment' in data:
+ other_node_info['description'] = data['comment']
+
return jsonify(
node=self.blueprint.generate_browser_node(
view_id,
new_scid,
data['name'],
icon="icon-view" if self.node_type == 'view'
- else "icon-mview"
+ else "icon-mview",
+ **other_node_info
)
)
except Exception as e:
@@ -631,13 +638,18 @@ class ViewNode(PGChildNodeView, VacuumSettings, SchemaDiffObjectCompare):
if not status:
return internal_server_error(errormsg=new_scid)
+ other_node_info = {}
+ if 'comment' in data:
+ other_node_info['description'] = data['comment']
+
return jsonify(
node=self.blueprint.generate_browser_node(
view_id,
new_scid,
new_view_name,
icon="icon-view" if self.node_type == 'view'
- else "icon-mview"
+ else "icon-mview",
+ **other_node_info
)
)
except Exception as e:
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/default/sql/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/default/sql/nodes.sql
index 2244f67b0..6f919f176 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/default/sql/nodes.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/pg/default/sql/nodes.sql
@@ -1,7 +1,9 @@
SELECT
c.oid,
- c.relname AS name
+ c.relname AS name,
+ description AS comment
FROM pg_catalog.pg_class c
+LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=c.oid and des.objsubid=0 AND des.classoid='pg_class'::regclass)
WHERE
c.relkind = 'm'
{% if (vid and datlastsysoid) %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/default/sql/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/default/sql/nodes.sql
index 2244f67b0..6f919f176 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/default/sql/nodes.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/mviews/ppas/default/sql/nodes.sql
@@ -1,7 +1,9 @@
SELECT
c.oid,
- c.relname AS name
+ c.relname AS name,
+ description AS comment
FROM pg_catalog.pg_class c
+LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=c.oid and des.objsubid=0 AND des.classoid='pg_class'::regclass)
WHERE
c.relkind = 'm'
{% if (vid and datlastsysoid) %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/default/sql/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/default/sql/nodes.sql
index d0a61515f..87bf34d67 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/default/sql/nodes.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/pg/default/sql/nodes.sql
@@ -1,7 +1,9 @@
SELECT
c.oid,
- c.relname AS name
+ c.relname AS name,
+ description AS comment
FROM pg_catalog.pg_class c
+LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=c.oid and des.objsubid=0 AND des.classoid='pg_class'::regclass)
WHERE
c.relkind = 'v'
{% if (vid and datlastsysoid) %}
diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/default/sql/nodes.sql b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/default/sql/nodes.sql
index d0a61515f..87bf34d67 100644
--- a/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/default/sql/nodes.sql
+++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/views/templates/views/ppas/default/sql/nodes.sql
@@ -1,7 +1,9 @@
SELECT
c.oid,
- c.relname AS name
+ c.relname AS name,
+ description AS comment
FROM pg_catalog.pg_class c
+LEFT OUTER JOIN pg_catalog.pg_description des ON (des.objoid=c.oid and des.objsubid=0 AND des.classoid='pg_class'::regclass)
WHERE
c.relkind = 'v'
{% if (vid and datlastsysoid) %}
diff --git a/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py b/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py
index 2ef26465c..c6d59d207 100644
--- a/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py
+++ b/web/pgadmin/browser/server_groups/servers/tablespaces/__init__.py
@@ -196,7 +196,8 @@ class TablespaceView(PGChildNodeView):
row['oid'],
sid,
row['name'],
- icon="icon-tablespace"
+ icon="icon-tablespace",
+ description=row['description']
))
return make_json_response(
@@ -357,12 +358,17 @@ class TablespaceView(PGChildNodeView):
)
)
+ other_node_info = {}
+ if 'description' in data:
+ other_node_info['description'] = data['description']
+
return jsonify(
node=self.blueprint.generate_browser_node(
tsid,
sid,
data['name'],
- icon="icon-tablespace"
+ icon="icon-tablespace",
+ **other_node_info
)
)
except Exception as e:
@@ -389,12 +395,17 @@ class TablespaceView(PGChildNodeView):
if not status:
return internal_server_error(errormsg=res)
+ other_node_info = {}
+ if 'description' in data:
+ other_node_info['description'] = data['description']
+
return jsonify(
node=self.blueprint.generate_browser_node(
tsid,
sid,
name,
- icon="icon-%s" % self.node_type
+ icon="icon-%s" % self.node_type,
+ **other_node_info
)
)
except Exception as e:
diff --git a/web/pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/sql/default/nodes.sql b/web/pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/sql/default/nodes.sql
index 3ce452600..0ffb4b047 100644
--- a/web/pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/sql/default/nodes.sql
+++ b/web/pgadmin/browser/server_groups/servers/tablespaces/templates/tablespaces/sql/default/nodes.sql
@@ -1,5 +1,6 @@
SELECT
- ts.oid AS oid, spcname AS name, spcowner as owner
+ ts.oid AS oid, spcname AS name, spcowner as owner,
+ pg_catalog.shobj_description(oid, 'pg_tablespace') AS description
FROM
pg_catalog.pg_tablespace ts
{% if tsid %}
diff --git a/web/pgadmin/static/js/components/ObjectBreadcrumbs.jsx b/web/pgadmin/static/js/components/ObjectBreadcrumbs.jsx
index 3ffef8292..0212ffb51 100644
--- a/web/pgadmin/static/js/components/ObjectBreadcrumbs.jsx
+++ b/web/pgadmin/static/js/components/ObjectBreadcrumbs.jsx
@@ -99,8 +99,8 @@ export default function ObjectBreadcrumbs({pgAdmin}) {