diff --git a/web/pgadmin/tools/schema_diff/static/css/schema_diff.css b/web/pgadmin/tools/schema_diff/static/css/schema_diff.css
index 93f7d32d3..98525bc2f 100644
--- a/web/pgadmin/tools/schema_diff/static/css/schema_diff.css
+++ b/web/pgadmin/tools/schema_diff/static/css/schema_diff.css
@@ -52,6 +52,7 @@
.slick-header-column.ui-state-default {
height: 32px !important;
+ line-height: 25px !important;
}
#schema-diff-grid .grid-header label {
@@ -187,3 +188,7 @@
flex-wrap: wrap;
max-width: 40% !important;
}
+
+.slick-cell .ml-2 {
+ margin-left: 2rem !important;
+}
diff --git a/web/pgadmin/tools/schema_diff/static/js/schema_diff_ui.js b/web/pgadmin/tools/schema_diff/static/js/schema_diff_ui.js
index 51a3e970b..101cf78c6 100644
--- a/web/pgadmin/tools/schema_diff/static/js/schema_diff_ui.js
+++ b/web/pgadmin/tools/schema_diff/static/js/schema_diff_ui.js
@@ -318,7 +318,7 @@ export default class SchemaDiffUI {
// Format Schema object title with appropriate icon
var formatColumnTitle = function (row, cell, value, columnDef, dataContext) {
let icon = 'icon-' + dataContext.type;
- return '' + value + '';
+ return '' + value + '';
};
// Grid Columns
@@ -349,7 +349,14 @@ export default class SchemaDiffUI {
getter: 'type',
formatter: function (g) {
let icon = 'icon-coll-' + g.value;
- return '' + g.rows[0].label + '';
+ let identical=0, different=0, source_only=0, target_only=0;
+ for (var i = 0; i < g.rows.length; i++) {
+ if (g.rows[i]['status'] == self.filters[0]) identical++;
+ else if (g.rows[i]['status'] == self.filters[1]) different++;
+ else if (g.rows[i]['status'] == self.filters[2]) source_only++;
+ else if (g.rows[i]['status'] == self.filters[3]) target_only++;
+ }
+ return '' + g.rows[0].label + ' - ' + gettext('Identical') + ': ' + identical + ' ' + gettext('Different') + ': ' + different + ' ' + gettext('Source Only') + ': ' + source_only + ' ' + gettext('Target Only') + ': ' + target_only + '';
},
aggregateCollapsed: true,
lazyTotalsCalculation: true,
@@ -406,6 +413,8 @@ export default class SchemaDiffUI {
grid.setSelectionModel(new Slick.RowSelectionModel({selectActiveRow: false}));
grid.registerPlugin(checkboxSelector);
+ self.dataView.syncGridSelection(grid, true, true);
+
grid.onClick.subscribe(function(e, args) {
if (args.row) {
data = args.grid.getData().getItem(args.row);
@@ -431,11 +440,13 @@ export default class SchemaDiffUI {
render_grid_data(data) {
var self = this;
+ self.grid.setSelectedRows([]);
self.dataView.beginUpdate();
self.dataView.setItems(data);
self.dataView.setFilter(self.filter.bind(self));
self.groupBySchemaObject();
self.dataView.endUpdate();
+ self.dataView.refresh();
self.resize_grid();
}
diff --git a/web/pgadmin/tools/sqleditor/utils/get_column_types.py b/web/pgadmin/tools/sqleditor/utils/get_column_types.py
index 5d1483310..5484985be 100644
--- a/web/pgadmin/tools/sqleditor/utils/get_column_types.py
+++ b/web/pgadmin/tools/sqleditor/utils/get_column_types.py
@@ -35,13 +35,12 @@ def get_columns_types(is_query_tool, columns_info, table_oid, conn, has_oids):
column_types[col['name']] = col_type
if not is_query_tool:
- if key in rset['rows']:
- col_type['not_null'] = col['not_null'] = \
- rset['rows'][key]['not_null']
+ col_type['not_null'] = col['not_null'] = \
+ rset['rows'][key]['not_null']
- col_type['has_default_val'] = \
- col['has_default_val'] = \
- rset['rows'][key]['has_default_val']
+ col_type['has_default_val'] = \
+ col['has_default_val'] = \
+ rset['rows'][key]['has_default_val']
else:
for row in rset['rows']: