diff --git a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py index 41b53365a..e2fd34ca2 100644 --- a/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py +++ b/web/pgadmin/browser/server_groups/servers/databases/schemas/tables/partitions/__init__.py @@ -240,10 +240,6 @@ class PartitionsView(BaseTableView, DataTypeReader, VacuumSettings): else: nodes.extend(module.get_nodes(**kwargs)) - # Explicitly include 'partition' module as we had excluded it during - # registration. - nodes.extend(self.blueprint.get_nodes(**kwargs)) - # Return sorted nodes based on label return make_json_response( data=sorted( diff --git a/web/pgadmin/static/js/tree/pgadmin_tree_node.js b/web/pgadmin/static/js/tree/pgadmin_tree_node.js index 00f10d242..ec59b8547 100644 --- a/web/pgadmin/static/js/tree/pgadmin_tree_node.js +++ b/web/pgadmin/static/js/tree/pgadmin_tree_node.js @@ -48,12 +48,13 @@ export function getTreeNodeHierarchyFromIdentifier(aciTreeNodeIdentifier) { export function getTreeNodeHierarchy(currentNode) { let idx = 0; + let node_cnt = 0; let result = {}; do { const currentNodeData = currentNode.getData(); if (currentNodeData._type in this.Nodes && this.Nodes[currentNodeData._type].hasId) { - const nodeType = mapType(currentNodeData._type); + const nodeType = mapType(currentNodeData._type, node_cnt); if (result[nodeType] === undefined) { result[nodeType] = _.extend({}, currentNodeData, { 'priority': idx, @@ -61,12 +62,13 @@ export function getTreeNodeHierarchy(currentNode) { idx -= 1; } } + node_cnt += 1; currentNode = currentNode.hasParent() ? currentNode.parent() : null; } while (currentNode); return result; } -function mapType(type) { - return type === 'partition' ? 'table' : type; +function mapType(type, idx) { + return (type === 'partition' && idx > 0) ? 'table' : type; } diff --git a/web/regression/javascript/tree/pgadmin_tree_node_spec.js b/web/regression/javascript/tree/pgadmin_tree_node_spec.js index 479e515c7..cfeef699c 100644 --- a/web/regression/javascript/tree/pgadmin_tree_node_spec.js +++ b/web/regression/javascript/tree/pgadmin_tree_node_spec.js @@ -178,9 +178,14 @@ describe('tree#node#getTreeNodeHierarchy', () => { 'special one': { 'some key': 'some value', '_type': 'special one', - 'priority': -1, + 'priority': -2, }, 'table': { + 'some key': 'some value', + '_type': 'table', + 'priority': -1, + }, + 'partition': { 'some key': 'expected value', 'some other key': 'some other value', '_type': 'partition', @@ -337,9 +342,14 @@ describe('tree#node#getTreeNodeHierarchy', () => { 'special one': { 'some key': 'some value', '_type': 'special one', - 'priority': -1, + 'priority': -2, }, 'table': { + 'some key': 'some value', + '_type': 'table', + 'priority': -1, + }, + 'partition': { 'some key': 'expected value', 'some other key': 'some other value', '_type': 'partition',