Fixed an issue where difference SQL is not seen in the schema diff tool for Types. Fixes #5302

This commit is contained in:
Akshay Joshi
2020-04-13 20:24:12 +05:30
parent df11f28593
commit 781b766ac4
15 changed files with 272 additions and 1 deletions

View File

@@ -40,6 +40,7 @@ Bug fixes
| `Issue #5268 <https://redmine.postgresql.org/issues/5268>`_ - Fixed generated SQL when any token in FTS Configuration or any option in FTS Dictionary is changed.
| `Issue #5270 <https://redmine.postgresql.org/issues/5270>`_ - Ensure that OID should be shown in properties for Synonyms.
| `Issue #5275 <https://redmine.postgresql.org/issues/5275>`_ - Fixed tab key navigation issue for parameters in table dialog.
| `Issue #5302 <https://redmine.postgresql.org/issues/5302>`_ - Fixed an issue where difference SQL is not seen in the schema diff tool for Types.
| `Issue #5314 <https://redmine.postgresql.org/issues/5314>`_ - Ensure that switch cell is in sync with switch control for accessibility.
| `Issue #5351 <https://redmine.postgresql.org/issues/5351>`_ - Fixed compilation warnings while building pgAdmin.
| `Issue #5361 <https://redmine.postgresql.org/issues/5361>`_ - Fixes an issue where pgAdmin4 GUI does not display properly in IE 11.

View File

@@ -220,7 +220,7 @@ class TypeView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
})
keys_to_ignore = ['oid', 'typnamespace', 'typrelid', 'typarray', 'alias',
'schema', 'oid-2']
'schema', 'oid-2', 'type_acl']
def check_precondition(f):
"""

View File

@@ -378,6 +378,16 @@ def directory_diff(source_dict, target_dict, ignore_keys=[], difference={}):
difference[key] = source
elif len(source_dict[key]) > 0:
difference[key] = source_dict[key]
elif key in target_dict and type(target_dict[key]) is list:
# If no element in source dict then check for the element
# is available in target and the type is of list.
# Added such elements as a deleted.
tmp_tar_list = list(filter(
lambda x: type(x) == list or type(x) == dict,
target_dict[key]
))
if len(tmp_tar_list):
difference[key] = {'deleted': target_dict[key]}
if type(source) is dict and tmp_target and key in tmp_target and \
tmp_target[key] and len(tmp_target[key]) > 0:

View File

@@ -588,6 +588,12 @@ GRANT USAGE ON TYPE source.typ_comp_diff TO PUBLIC;
GRANT USAGE ON TYPE source.typ_comp_diff TO pg_monitor WITH GRANT OPTION;
GRANT USAGE ON TYPE source.typ_comp_diff TO postgres;
CREATE TYPE source.typ_comp_diff_no_column AS
(
);
ALTER TYPE source.typ_comp_diff_no_column
OWNER TO postgres;
-- Type Script ENUM type
CREATE TYPE source.typ_enum_src AS ENUM
('test_enum');

View File

@@ -551,6 +551,14 @@ CREATE TYPE target.typ_comp_diff AS
ALTER TYPE target.typ_comp_diff
OWNER TO postgres;
CREATE TYPE target.typ_comp_diff_no_column AS
(
a "char",
b "char"
);
ALTER TYPE target.typ_comp_diff_no_column
OWNER TO postgres;
-- Type Script ENUM type
CREATE TYPE target.typ_enum_tar AS ENUM
('test_enum');

View File

@@ -565,6 +565,48 @@ ALTER DOMAIN source.dom_type_diff
COMMENT ON DOMAIN source.dom_type_diff
IS 'Test comment';
-- Type Script composite type
CREATE TYPE source.typ_comp_src AS
(
m1 bit(5),
m2 text COLLATE pg_catalog."POSIX"
);
ALTER TYPE source.typ_comp_src
OWNER TO postgres;
CREATE TYPE source.typ_comp_diff AS
(
m1 numeric(5,2),
m3 character varying(30) COLLATE pg_catalog."C"
);
ALTER TYPE source.typ_comp_diff
OWNER TO postgres;
COMMENT ON TYPE source.typ_comp_diff
IS 'Test Comment';
GRANT USAGE ON TYPE source.typ_comp_diff TO PUBLIC;
GRANT USAGE ON TYPE source.typ_comp_diff TO pg_monitor WITH GRANT OPTION;
GRANT USAGE ON TYPE source.typ_comp_diff TO postgres;
CREATE TYPE source.typ_comp_diff_no_column AS
(
);
ALTER TYPE source.typ_comp_diff_no_column
OWNER TO postgres;
-- Type Script ENUM type
CREATE TYPE source.typ_enum_src AS ENUM
('test_enum');
ALTER TYPE source.typ_enum_src
OWNER TO postgres;
CREATE TYPE source.typ_enum_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_diff
OWNER TO postgres;
COMMENT ON TYPE source.typ_enum_diff
IS 'Test Comment';
GRANT USAGE ON TYPE source.typ_enum_src TO pg_monitor WITH GRANT OPTION;
-- Type Script RANGE type
CREATE TYPE source.typ_range_src AS RANGE
(

View File

@@ -550,6 +550,14 @@ CREATE TYPE target.typ_comp_diff AS
ALTER TYPE target.typ_comp_diff
OWNER TO postgres;
CREATE TYPE target.typ_comp_diff_no_column AS
(
a "char",
b "char"
);
ALTER TYPE target.typ_comp_diff_no_column
OWNER TO postgres;
-- Type Script ENUM type
CREATE TYPE target.typ_enum_tar AS ENUM
('test_enum');

View File

@@ -566,6 +566,48 @@ ALTER DOMAIN source.dom_type_diff
COMMENT ON DOMAIN source.dom_type_diff
IS 'Test comment';
-- Type Script composite type
CREATE TYPE source.typ_comp_src AS
(
m1 bit(5),
m2 text COLLATE pg_catalog."POSIX"
);
ALTER TYPE source.typ_comp_src
OWNER TO postgres;
CREATE TYPE source.typ_comp_diff AS
(
m1 numeric(5,2),
m3 character varying(30) COLLATE pg_catalog."C"
);
ALTER TYPE source.typ_comp_diff
OWNER TO postgres;
COMMENT ON TYPE source.typ_comp_diff
IS 'Test Comment';
GRANT USAGE ON TYPE source.typ_comp_diff TO PUBLIC;
GRANT USAGE ON TYPE source.typ_comp_diff TO pg_monitor WITH GRANT OPTION;
GRANT USAGE ON TYPE source.typ_comp_diff TO postgres;
CREATE TYPE source.typ_comp_diff_no_column AS
(
);
ALTER TYPE source.typ_comp_diff_no_column
OWNER TO postgres;
-- Type Script ENUM type
CREATE TYPE source.typ_enum_src AS ENUM
('test_enum');
ALTER TYPE source.typ_enum_src
OWNER TO postgres;
CREATE TYPE source.typ_enum_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_diff
OWNER TO postgres;
COMMENT ON TYPE source.typ_enum_diff
IS 'Test Comment';
GRANT USAGE ON TYPE source.typ_enum_src TO pg_monitor WITH GRANT OPTION;
-- Type Script RANGE type
CREATE TYPE source.typ_range_src AS RANGE
(

View File

@@ -539,6 +539,14 @@ CREATE TYPE target.typ_comp_diff AS
ALTER TYPE target.typ_comp_diff
OWNER TO postgres;
CREATE TYPE target.typ_comp_diff_no_column AS
(
a "char",
b "char"
);
ALTER TYPE target.typ_comp_diff_no_column
OWNER TO postgres;
-- Type Script ENUM type
CREATE TYPE target.typ_enum_tar AS ENUM
('test_enum');

View File

@@ -435,6 +435,46 @@ ALTER DOMAIN source.dom_type_diff
COMMENT ON DOMAIN source.dom_type_diff
IS 'Test comment';
-- Type Script composite type
CREATE TYPE source.typ_comp_src AS
(
m1 bit(5),
m2 text COLLATE pg_catalog."POSIX"
);
ALTER TYPE source.typ_comp_src
OWNER TO postgres;
CREATE TYPE source.typ_comp_diff AS
(
m1 numeric(5,2),
m3 character varying(30) COLLATE pg_catalog."C"
);
ALTER TYPE source.typ_comp_diff
OWNER TO postgres;
COMMENT ON TYPE source.typ_comp_diff
IS 'Test Comment';
GRANT USAGE ON TYPE source.typ_comp_diff TO PUBLIC;
GRANT USAGE ON TYPE source.typ_comp_diff TO postgres;
CREATE TYPE source.typ_comp_diff_no_column AS
(
);
ALTER TYPE source.typ_comp_diff_no_column
OWNER TO postgres;
-- Type Script ENUM type
CREATE TYPE source.typ_enum_src AS ENUM
('test_enum');
ALTER TYPE source.typ_enum_src
OWNER TO postgres;
CREATE TYPE source.typ_enum_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_diff
OWNER TO postgres;
COMMENT ON TYPE source.typ_enum_diff
IS 'Test Comment';
-- Type Script RANGE type
CREATE TYPE source.typ_range_src AS RANGE
(

View File

@@ -459,6 +459,14 @@ CREATE TYPE target.typ_comp_diff AS
ALTER TYPE target.typ_comp_diff
OWNER TO postgres;
CREATE TYPE target.typ_comp_diff_no_column AS
(
a "char",
b "char"
);
ALTER TYPE target.typ_comp_diff_no_column
OWNER TO postgres;
-- Type Script ENUM type
CREATE TYPE target.typ_enum_tar AS ENUM
('test_enum');

View File

@@ -502,6 +502,48 @@ ALTER DOMAIN source.dom_type_diff
COMMENT ON DOMAIN source.dom_type_diff
IS 'Test comment';
-- Type Script composite type
CREATE TYPE source.typ_comp_src AS
(
m1 bit(5),
m2 text COLLATE pg_catalog."POSIX"
);
ALTER TYPE source.typ_comp_src
OWNER TO enterprisedb;
CREATE TYPE source.typ_comp_diff AS
(
m1 numeric(5,2),
m3 character varying(30) COLLATE pg_catalog."C"
);
ALTER TYPE source.typ_comp_diff
OWNER TO enterprisedb;
COMMENT ON TYPE source.typ_comp_diff
IS 'Test Comment';
GRANT USAGE ON TYPE source.typ_comp_diff TO PUBLIC;
GRANT USAGE ON TYPE source.typ_comp_diff TO pg_monitor WITH GRANT OPTION;
GRANT USAGE ON TYPE source.typ_comp_diff TO enterprisedb;
CREATE TYPE source.typ_comp_diff_no_column AS
(
);
ALTER TYPE source.typ_comp_diff_no_column
OWNER TO enterprisedb;
-- Type Script ENUM type
CREATE TYPE source.typ_enum_src AS ENUM
('test_enum');
ALTER TYPE source.typ_enum_src
OWNER TO enterprisedb;
CREATE TYPE source.typ_enum_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_diff
OWNER TO enterprisedb;
COMMENT ON TYPE source.typ_enum_diff
IS 'Test Comment';
GRANT USAGE ON TYPE source.typ_enum_src TO pg_monitor WITH GRANT OPTION;
-- Type Script RANGE type
CREATE TYPE source.typ_range_src AS RANGE
(

View File

@@ -486,6 +486,14 @@ CREATE TYPE target.typ_comp_diff AS
ALTER TYPE target.typ_comp_diff
OWNER TO enterprisedb;
CREATE TYPE target.typ_comp_diff_no_column AS
(
a "char",
b "char"
);
ALTER TYPE target.typ_comp_diff_no_column
OWNER TO enterprisedb;
-- Type Script ENUM type
CREATE TYPE target.typ_enum_tar AS ENUM
('test_enum');

View File

@@ -436,6 +436,46 @@ ALTER DOMAIN source.dom_type_diff
COMMENT ON DOMAIN source.dom_type_diff
IS 'Test comment';
-- Type Script composite type
CREATE TYPE source.typ_comp_src AS
(
m1 bit(5),
m2 text COLLATE pg_catalog."POSIX"
);
ALTER TYPE source.typ_comp_src
OWNER TO enterprisedb;
CREATE TYPE source.typ_comp_diff AS
(
m1 numeric(5,2),
m3 character varying(30) COLLATE pg_catalog."C"
);
ALTER TYPE source.typ_comp_diff
OWNER TO enterprisedb;
COMMENT ON TYPE source.typ_comp_diff
IS 'Test Comment';
GRANT USAGE ON TYPE source.typ_comp_diff TO PUBLIC;
GRANT USAGE ON TYPE source.typ_comp_diff TO enterprisedb;
CREATE TYPE source.typ_comp_diff_no_column AS
(
);
ALTER TYPE source.typ_comp_diff_no_column
OWNER TO enterprisedb;
-- Type Script ENUM type
CREATE TYPE source.typ_enum_src AS ENUM
('test_enum');
ALTER TYPE source.typ_enum_src
OWNER TO enterprisedb;
CREATE TYPE source.typ_enum_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_diff
OWNER TO enterprisedb;
COMMENT ON TYPE source.typ_enum_diff
IS 'Test Comment';
-- Type Script RANGE type
CREATE TYPE source.typ_range_src AS RANGE
(

View File

@@ -459,6 +459,14 @@ CREATE TYPE target.typ_comp_diff AS
ALTER TYPE target.typ_comp_diff
OWNER TO enterprisedb;
CREATE TYPE target.typ_comp_diff_no_column AS
(
a "char",
b "char"
);
ALTER TYPE target.typ_comp_diff_no_column
OWNER TO enterprisedb;
-- Type Script ENUM type
CREATE TYPE target.typ_enum_tar AS ENUM
('test_enum');