mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2026-08-12 05:55:07 -05:00
Fixed an issue where difference SQL is not seen in the schema diff tool for Types. Fixes #5302
This commit is contained in:
@@ -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 #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 #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 #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 #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 #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.
|
| `Issue #5361 <https://redmine.postgresql.org/issues/5361>`_ - Fixes an issue where pgAdmin4 GUI does not display properly in IE 11.
|
||||||
|
|||||||
@@ -220,7 +220,7 @@ class TypeView(PGChildNodeView, DataTypeReader, SchemaDiffObjectCompare):
|
|||||||
})
|
})
|
||||||
|
|
||||||
keys_to_ignore = ['oid', 'typnamespace', 'typrelid', 'typarray', 'alias',
|
keys_to_ignore = ['oid', 'typnamespace', 'typrelid', 'typarray', 'alias',
|
||||||
'schema', 'oid-2']
|
'schema', 'oid-2', 'type_acl']
|
||||||
|
|
||||||
def check_precondition(f):
|
def check_precondition(f):
|
||||||
"""
|
"""
|
||||||
|
|||||||
@@ -378,6 +378,16 @@ def directory_diff(source_dict, target_dict, ignore_keys=[], difference={}):
|
|||||||
difference[key] = source
|
difference[key] = source
|
||||||
elif len(source_dict[key]) > 0:
|
elif len(source_dict[key]) > 0:
|
||||||
difference[key] = source_dict[key]
|
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 \
|
if type(source) is dict and tmp_target and key in tmp_target and \
|
||||||
tmp_target[key] and len(tmp_target[key]) > 0:
|
tmp_target[key] and len(tmp_target[key]) > 0:
|
||||||
|
|||||||
@@ -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 pg_monitor WITH GRANT OPTION;
|
||||||
GRANT USAGE ON TYPE source.typ_comp_diff TO postgres;
|
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
|
-- Type Script ENUM type
|
||||||
CREATE TYPE source.typ_enum_src AS ENUM
|
CREATE TYPE source.typ_enum_src AS ENUM
|
||||||
('test_enum');
|
('test_enum');
|
||||||
|
|||||||
@@ -551,6 +551,14 @@ CREATE TYPE target.typ_comp_diff AS
|
|||||||
ALTER TYPE target.typ_comp_diff
|
ALTER TYPE target.typ_comp_diff
|
||||||
OWNER TO postgres;
|
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
|
-- Type Script ENUM type
|
||||||
CREATE TYPE target.typ_enum_tar AS ENUM
|
CREATE TYPE target.typ_enum_tar AS ENUM
|
||||||
('test_enum');
|
('test_enum');
|
||||||
|
|||||||
@@ -565,6 +565,48 @@ ALTER DOMAIN source.dom_type_diff
|
|||||||
COMMENT ON DOMAIN source.dom_type_diff
|
COMMENT ON DOMAIN source.dom_type_diff
|
||||||
IS 'Test comment';
|
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
|
-- Type Script RANGE type
|
||||||
CREATE TYPE source.typ_range_src AS RANGE
|
CREATE TYPE source.typ_range_src AS RANGE
|
||||||
(
|
(
|
||||||
|
|||||||
@@ -550,6 +550,14 @@ CREATE TYPE target.typ_comp_diff AS
|
|||||||
ALTER TYPE target.typ_comp_diff
|
ALTER TYPE target.typ_comp_diff
|
||||||
OWNER TO postgres;
|
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
|
-- Type Script ENUM type
|
||||||
CREATE TYPE target.typ_enum_tar AS ENUM
|
CREATE TYPE target.typ_enum_tar AS ENUM
|
||||||
('test_enum');
|
('test_enum');
|
||||||
|
|||||||
@@ -566,6 +566,48 @@ ALTER DOMAIN source.dom_type_diff
|
|||||||
COMMENT ON DOMAIN source.dom_type_diff
|
COMMENT ON DOMAIN source.dom_type_diff
|
||||||
IS 'Test comment';
|
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
|
-- Type Script RANGE type
|
||||||
CREATE TYPE source.typ_range_src AS RANGE
|
CREATE TYPE source.typ_range_src AS RANGE
|
||||||
(
|
(
|
||||||
|
|||||||
@@ -539,6 +539,14 @@ CREATE TYPE target.typ_comp_diff AS
|
|||||||
ALTER TYPE target.typ_comp_diff
|
ALTER TYPE target.typ_comp_diff
|
||||||
OWNER TO postgres;
|
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
|
-- Type Script ENUM type
|
||||||
CREATE TYPE target.typ_enum_tar AS ENUM
|
CREATE TYPE target.typ_enum_tar AS ENUM
|
||||||
('test_enum');
|
('test_enum');
|
||||||
|
|||||||
@@ -435,6 +435,46 @@ ALTER DOMAIN source.dom_type_diff
|
|||||||
COMMENT ON DOMAIN source.dom_type_diff
|
COMMENT ON DOMAIN source.dom_type_diff
|
||||||
IS 'Test comment';
|
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
|
-- Type Script RANGE type
|
||||||
CREATE TYPE source.typ_range_src AS RANGE
|
CREATE TYPE source.typ_range_src AS RANGE
|
||||||
(
|
(
|
||||||
|
|||||||
@@ -459,6 +459,14 @@ CREATE TYPE target.typ_comp_diff AS
|
|||||||
ALTER TYPE target.typ_comp_diff
|
ALTER TYPE target.typ_comp_diff
|
||||||
OWNER TO postgres;
|
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
|
-- Type Script ENUM type
|
||||||
CREATE TYPE target.typ_enum_tar AS ENUM
|
CREATE TYPE target.typ_enum_tar AS ENUM
|
||||||
('test_enum');
|
('test_enum');
|
||||||
|
|||||||
@@ -502,6 +502,48 @@ ALTER DOMAIN source.dom_type_diff
|
|||||||
COMMENT ON DOMAIN source.dom_type_diff
|
COMMENT ON DOMAIN source.dom_type_diff
|
||||||
IS 'Test comment';
|
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
|
-- Type Script RANGE type
|
||||||
CREATE TYPE source.typ_range_src AS RANGE
|
CREATE TYPE source.typ_range_src AS RANGE
|
||||||
(
|
(
|
||||||
|
|||||||
@@ -486,6 +486,14 @@ CREATE TYPE target.typ_comp_diff AS
|
|||||||
ALTER TYPE target.typ_comp_diff
|
ALTER TYPE target.typ_comp_diff
|
||||||
OWNER TO enterprisedb;
|
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
|
-- Type Script ENUM type
|
||||||
CREATE TYPE target.typ_enum_tar AS ENUM
|
CREATE TYPE target.typ_enum_tar AS ENUM
|
||||||
('test_enum');
|
('test_enum');
|
||||||
|
|||||||
@@ -436,6 +436,46 @@ ALTER DOMAIN source.dom_type_diff
|
|||||||
COMMENT ON DOMAIN source.dom_type_diff
|
COMMENT ON DOMAIN source.dom_type_diff
|
||||||
IS 'Test comment';
|
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
|
-- Type Script RANGE type
|
||||||
CREATE TYPE source.typ_range_src AS RANGE
|
CREATE TYPE source.typ_range_src AS RANGE
|
||||||
(
|
(
|
||||||
|
|||||||
@@ -459,6 +459,14 @@ CREATE TYPE target.typ_comp_diff AS
|
|||||||
ALTER TYPE target.typ_comp_diff
|
ALTER TYPE target.typ_comp_diff
|
||||||
OWNER TO enterprisedb;
|
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
|
-- Type Script ENUM type
|
||||||
CREATE TYPE target.typ_enum_tar AS ENUM
|
CREATE TYPE target.typ_enum_tar AS ENUM
|
||||||
('test_enum');
|
('test_enum');
|
||||||
|
|||||||
Reference in New Issue
Block a user