Added support of Packages, Sequences and Synonyms to the Schema Diff. Fixes #5264

This commit is contained in:
Akshay Joshi
2020-04-03 16:52:45 +05:30
parent 4036f2a0f2
commit ce89ae3c1d
21 changed files with 1345 additions and 34 deletions

View File

@@ -50,9 +50,16 @@ def compare_dictionaries(view_object, source_params, target_params,
added = dict1_keys - dict2_keys
global count
for item in added:
source_object_id = None
if 'oid' in source_dict[item]:
source_object_id = source_dict[item]['oid']
elif 'name' in source_dict[item]:
# For synonyms use name as OID
source_object_id = source_dict[item]['name']
if node == 'table':
temp_src_params = copy.deepcopy(source_params)
temp_src_params['tid'] = source_dict[item]['oid']
temp_src_params['tid'] = source_object_id
temp_src_params['json_resp'] = False
source_ddl = \
view_object.get_sql_from_table_diff(**temp_src_params)
@@ -62,7 +69,7 @@ def compare_dictionaries(view_object, source_params, target_params,
diff_ddl = view_object.get_sql_from_table_diff(**temp_src_params)
else:
temp_src_params = copy.deepcopy(source_params)
temp_src_params['oid'] = source_dict[item]['oid']
temp_src_params['oid'] = source_object_id
source_ddl = view_object.get_sql_from_diff(**temp_src_params)
temp_src_params.update({
'diff_schema': target_schema
@@ -74,7 +81,7 @@ def compare_dictionaries(view_object, source_params, target_params,
'type': node,
'label': node_label,
'title': item,
'oid': source_dict[item]['oid'],
'oid': source_object_id,
'status': SchemaDiffModel.COMPARISON_STATUS['source_only'],
'source_ddl': source_ddl,
'target_ddl': '',
@@ -86,9 +93,16 @@ def compare_dictionaries(view_object, source_params, target_params,
# Keys that are available in target and missing in source.
removed = dict2_keys - dict1_keys
for item in removed:
target_object_id = None
if 'oid' in target_dict[item]:
target_object_id = target_dict[item]['oid']
elif 'name' in target_dict[item]:
# For synonyms use name as OID
target_object_id = target_dict[item]['name']
if node == 'table':
temp_tgt_params = copy.deepcopy(target_params)
temp_tgt_params['tid'] = target_dict[item]['oid']
temp_tgt_params['tid'] = target_object_id
temp_tgt_params['json_resp'] = False
target_ddl = view_object.get_sql_from_table_diff(**temp_tgt_params)
if 'gid' in temp_tgt_params:
@@ -98,7 +112,7 @@ def compare_dictionaries(view_object, source_params, target_params,
diff_ddl = view_object.get_drop_sql(**temp_tgt_params)
else:
temp_tgt_params = copy.deepcopy(target_params)
temp_tgt_params['oid'] = target_dict[item]['oid']
temp_tgt_params['oid'] = target_object_id
target_ddl = view_object.get_sql_from_diff(**temp_tgt_params)
temp_tgt_params.update(
{'drop_sql': True})
@@ -109,7 +123,7 @@ def compare_dictionaries(view_object, source_params, target_params,
'type': node,
'label': node_label,
'title': item,
'oid': target_dict[item]['oid'],
'oid': target_object_id,
'status': SchemaDiffModel.COMPARISON_STATUS['target_only'],
'source_ddl': '',
'target_ddl': target_ddl,
@@ -121,6 +135,16 @@ def compare_dictionaries(view_object, source_params, target_params,
identical = []
different = []
for key in intersect_keys:
source_object_id = None
target_object_id = None
if 'oid' in source_dict[key]:
source_object_id = source_dict[key]['oid']
target_object_id = target_dict[key]['oid']
elif 'name' in target_dict[key]:
# For synonyms use name as OID
source_object_id = source_dict[key]['name']
target_object_id = target_dict[key]['name']
# Recursively Compare the two dictionary
if are_dictionaries_identical(dict1[key], dict2[key], ignore_keys):
identical.append({
@@ -128,9 +152,9 @@ def compare_dictionaries(view_object, source_params, target_params,
'type': node,
'label': node_label,
'title': key,
'oid': source_dict[key]['oid'],
'source_oid': source_dict[key]['oid'],
'target_oid': target_dict[key]['oid'],
'oid': source_object_id,
'source_oid': source_object_id,
'target_oid': target_object_id,
'status': SchemaDiffModel.COMPARISON_STATUS['identical']
})
else:
@@ -149,8 +173,8 @@ def compare_dictionaries(view_object, source_params, target_params,
)
diff_dict.update(parce_acl(dict1[key], dict2[key]))
temp_src_params['tid'] = source_dict[key]['oid']
temp_tgt_params['tid'] = target_dict[key]['oid']
temp_src_params['tid'] = source_object_id
temp_tgt_params['tid'] = target_object_id
temp_src_params['json_resp'] = \
temp_tgt_params['json_resp'] = False
@@ -170,8 +194,8 @@ def compare_dictionaries(view_object, source_params, target_params,
)
diff_dict.update(parce_acl(dict1[key], dict2[key]))
temp_src_params['oid'] = source_dict[key]['oid']
temp_tgt_params['oid'] = target_dict[key]['oid']
temp_src_params['oid'] = source_object_id
temp_tgt_params['oid'] = target_object_id
source_ddl = view_object.get_sql_from_diff(**temp_src_params)
target_ddl = view_object.get_sql_from_diff(**temp_tgt_params)
temp_tgt_params.update(
@@ -183,9 +207,9 @@ def compare_dictionaries(view_object, source_params, target_params,
'type': node,
'label': node_label,
'title': key,
'oid': source_dict[key]['oid'],
'source_oid': source_dict[key]['oid'],
'target_oid': target_dict[key]['oid'],
'oid': source_object_id,
'source_oid': source_object_id,
'target_oid': target_object_id,
'status': SchemaDiffModel.COMPARISON_STATUS['different'],
'source_ddl': source_ddl,
'target_ddl': target_ddl,
@@ -403,14 +427,22 @@ def is_key_exists(key_list, target_dict):
def parce_acl(source, target):
key = 'acl'
"""
This function is used to parse acl.
if 'datacl' in source:
key = 'datacl'
elif 'relacl' in source:
key = 'relacl'
elif 'typacl' in source:
key = 'typacl'
:param source:
:param target:
:return:
"""
acl_keys = ['datacl', 'relacl', 'typacl', 'pkgacl']
key = is_key_exists(acl_keys, source)
# If key is not found in source then check the key is available
# in target.
if key is None:
key = is_key_exists(acl_keys, target)
if key is None:
key = 'acl'
tmp_source = source[key] if\
key in source and source[key] is not None else []

View File

@@ -688,3 +688,50 @@ CREATE TYPE source.typ_enum_range_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_range_diff
OWNER TO postgres;
-- Sequences Script
CREATE SEQUENCE source.seq_src
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE source.seq_src
OWNER TO postgres;
COMMENT ON SEQUENCE source.seq_src
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_src TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_src TO postgres;
CREATE SEQUENCE source.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl
OWNER TO postgres;
COMMENT ON SEQUENCE source.seq_diff_comment_acl
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO postgres;
CREATE SEQUENCE source.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl_remove
OWNER TO postgres;
CREATE SEQUENCE source.seq_diff
CYCLE
INCREMENT 3
START 3
MINVALUE 3
MAXVALUE 100
CACHE 2;
ALTER SEQUENCE source.seq_diff
OWNER TO postgres;

View File

@@ -642,3 +642,47 @@ CREATE TYPE target.typ_enum_range_diff AS RANGE
);
ALTER TYPE target.typ_enum_range_diff
OWNER TO postgres;
-- Sequences Script
CREATE SEQUENCE target.seq_tar
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE target.seq_tar
OWNER TO postgres;
CREATE SEQUENCE target.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl
OWNER TO postgres;
CREATE SEQUENCE target.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl_remove
OWNER TO postgres;
COMMENT ON SEQUENCE target.seq_diff_comment_acl_remove
IS 'Test Comment';
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO PUBLIC;
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO postgres;
CREATE SEQUENCE target.seq_diff
INCREMENT 5
START 3
MINVALUE 3
MAXVALUE 80
CACHE 1;
ALTER SEQUENCE target.seq_diff
OWNER TO postgres;

View File

@@ -651,3 +651,50 @@ CREATE TYPE source.typ_enum_range_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_range_diff
OWNER TO postgres;
-- Sequences Script
CREATE SEQUENCE source.seq_src
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE source.seq_src
OWNER TO postgres;
COMMENT ON SEQUENCE source.seq_src
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_src TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_src TO postgres;
CREATE SEQUENCE source.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl
OWNER TO postgres;
COMMENT ON SEQUENCE source.seq_diff_comment_acl
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO postgres;
CREATE SEQUENCE source.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl_remove
OWNER TO postgres;
CREATE SEQUENCE source.seq_diff
CYCLE
INCREMENT 3
START 3
MINVALUE 3
MAXVALUE 100
CACHE 2;
ALTER SEQUENCE source.seq_diff
OWNER TO postgres;

View File

@@ -641,3 +641,47 @@ CREATE TYPE target.typ_enum_range_diff AS RANGE
);
ALTER TYPE target.typ_enum_range_diff
OWNER TO postgres;
-- Sequences Script
CREATE SEQUENCE target.seq_tar
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE target.seq_tar
OWNER TO postgres;
CREATE SEQUENCE target.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl
OWNER TO postgres;
CREATE SEQUENCE target.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl_remove
OWNER TO postgres;
COMMENT ON SEQUENCE target.seq_diff_comment_acl_remove
IS 'Test Comment';
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO PUBLIC;
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO postgres;
CREATE SEQUENCE target.seq_diff
INCREMENT 5
START 3
MINVALUE 3
MAXVALUE 80
CACHE 1;
ALTER SEQUENCE target.seq_diff
OWNER TO postgres;

View File

@@ -652,3 +652,50 @@ CREATE TYPE source.typ_enum_range_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_range_diff
OWNER TO postgres;
-- Sequences Script
CREATE SEQUENCE source.seq_src
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE source.seq_src
OWNER TO postgres;
COMMENT ON SEQUENCE source.seq_src
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_src TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_src TO postgres;
CREATE SEQUENCE source.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl
OWNER TO postgres;
COMMENT ON SEQUENCE source.seq_diff_comment_acl
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO postgres;
CREATE SEQUENCE source.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl_remove
OWNER TO postgres;
CREATE SEQUENCE source.seq_diff
CYCLE
INCREMENT 3
START 3
MINVALUE 3
MAXVALUE 100
CACHE 2;
ALTER SEQUENCE source.seq_diff
OWNER TO postgres;

View File

@@ -630,3 +630,47 @@ CREATE TYPE target.typ_enum_range_diff AS RANGE
);
ALTER TYPE target.typ_enum_range_diff
OWNER TO postgres;
-- Sequences Script
CREATE SEQUENCE target.seq_tar
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE target.seq_tar
OWNER TO postgres;
CREATE SEQUENCE target.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl
OWNER TO postgres;
CREATE SEQUENCE target.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl_remove
OWNER TO postgres;
COMMENT ON SEQUENCE target.seq_diff_comment_acl_remove
IS 'Test Comment';
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO PUBLIC;
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO postgres;
CREATE SEQUENCE target.seq_diff
INCREMENT 5
START 3
MINVALUE 3
MAXVALUE 80
CACHE 1;
ALTER SEQUENCE target.seq_diff
OWNER TO postgres;

View File

@@ -521,3 +521,50 @@ CREATE TYPE source.typ_enum_range_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_range_diff
OWNER TO postgres;
-- Sequences Script
CREATE SEQUENCE source.seq_src
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE source.seq_src
OWNER TO postgres;
COMMENT ON SEQUENCE source.seq_src
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_src TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_src TO postgres;
CREATE SEQUENCE source.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl
OWNER TO postgres;
COMMENT ON SEQUENCE source.seq_diff_comment_acl
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO postgres;
CREATE SEQUENCE source.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl_remove
OWNER TO postgres;
CREATE SEQUENCE source.seq_diff
CYCLE
INCREMENT 3
START 3
MINVALUE 3
MAXVALUE 100
CACHE 2;
ALTER SEQUENCE source.seq_diff
OWNER TO postgres;

View File

@@ -548,3 +548,47 @@ CREATE TYPE target.typ_enum_range_diff AS RANGE
);
ALTER TYPE target.typ_enum_range_diff
OWNER TO postgres;
-- Sequences Script
CREATE SEQUENCE target.seq_tar
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE target.seq_tar
OWNER TO postgres;
CREATE SEQUENCE target.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl
OWNER TO postgres;
CREATE SEQUENCE target.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl_remove
OWNER TO postgres;
COMMENT ON SEQUENCE target.seq_diff_comment_acl_remove
IS 'Test Comment';
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO PUBLIC;
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO postgres;
CREATE SEQUENCE target.seq_diff
INCREMENT 5
START 3
MINVALUE 3
MAXVALUE 80
CACHE 1;
ALTER SEQUENCE target.seq_diff
OWNER TO postgres;

View File

@@ -588,3 +588,211 @@ CREATE TYPE source.typ_enum_range_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_range_diff
OWNER TO enterprisedb;
-- Package script (source only)
CREATE OR REPLACE PACKAGE source.pkg_src
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric);
END pkg_src;
CREATE OR REPLACE PACKAGE BODY source.pkg_src
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
v_dname VARCHAR2(14);
BEGIN
SELECT dname INTO v_dname FROM dept WHERE deptno = p_deptno;
RETURN v_dname;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid department number ' || p_deptno);
RETURN '';
END;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric) IS
BEGIN
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
END;
END pkg_src;
COMMENT ON PACKAGE source.pkg_src
IS 'Target';
-- Package script difference in header, acl and comment
CREATE OR REPLACE PACKAGE source.pkg_header_diff
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric);
END pkg_header_diff;
CREATE OR REPLACE PACKAGE BODY source.pkg_header_diff
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
v_dname VARCHAR2(14);
BEGIN
SELECT dname INTO v_dname FROM dept WHERE deptno = p_deptno;
RETURN v_dname;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid department number ' || p_deptno);
RETURN '';
END;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric) IS
BEGIN
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
END;
END pkg_header_diff;
COMMENT ON PACKAGE source.pkg_header_diff
IS 'Header Diff';
GRANT EXECUTE ON PACKAGE source.pkg_header_diff TO PUBLIC;
GRANT EXECUTE ON PACKAGE source.pkg_header_diff TO enterprisedb WITH GRANT OPTION;
-- Package script difference in body, acl and comment
CREATE OR REPLACE PACKAGE source.pkg_body_diff
IS
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric);
END pkg_body_diff;
CREATE OR REPLACE PACKAGE BODY source.pkg_body_diff
IS
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric) IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Before Insert ');
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
DBMS_OUTPUT.PUT_LINE('After Insert ');
END;
END pkg_body_diff;
-- Synonyms Scripts
-- Prerequisite for synonyms
CREATE OR REPLACE FUNCTION source.fun_for_syn()
RETURNS void
LANGUAGE 'plpgsql'
VOLATILE
COST 100
AS $BODY$BEGIN
SELECT 1;
END;$BODY$;
ALTER FUNCTION source.fun_for_syn()
OWNER TO enterprisedb;
CREATE OR REPLACE PROCEDURE source.proc_for_syn()
SECURITY DEFINER VOLATILE
COST 100
AS $BODY$BEGIN
SELECT 1;
END;$BODY$;
CREATE OR REPLACE PACKAGE source.pkg_for_syn
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
END pkg_for_syn;
CREATE OR REPLACE PACKAGE BODY source.pkg_for_syn
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
BEGIN
RETURN '';
END;
END pkg_for_syn;
CREATE TABLE source.table_for_syn
(
id bigint,
name text COLLATE pg_catalog."default"
)
TABLESPACE pg_default;
ALTER TABLE source.table_for_syn
OWNER to enterprisedb;
CREATE SEQUENCE source.seq_for_syn
INCREMENT 5
START 1
MINVALUE 1
MAXVALUE 100
CACHE 1;
ALTER SEQUENCE source.seq_for_syn
OWNER TO enterprisedb;
CREATE OR REPLACE SYNONYM source.syn_fun_src
FOR source.fun_for_syn;
CREATE OR REPLACE SYNONYM source.syn_pkg_src
FOR source.pkg_for_syn;
CREATE OR REPLACE SYNONYM source.syn_proc_src
FOR source.proc_for_syn;
CREATE OR REPLACE SYNONYM source.syn_seq_src
FOR source.seq_for_syn;
CREATE OR REPLACE SYNONYM source.syn_table_src
FOR source.table_for_syn;
CREATE TABLE public.table_for_syn
(
id bigint,
name text COLLATE pg_catalog."default"
)
TABLESPACE pg_default;
ALTER TABLE public.table_for_syn
OWNER to enterprisedb;
CREATE OR REPLACE SYNONYM source.syn_diff
FOR public.table_for_syn;
-- Sequences Script
CREATE SEQUENCE source.seq_src
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE source.seq_src
OWNER TO enterprisedb;
COMMENT ON SEQUENCE source.seq_src
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_src TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_src TO enterprisedb;
CREATE SEQUENCE source.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl
OWNER TO enterprisedb;
COMMENT ON SEQUENCE source.seq_diff_comment_acl
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO enterprisedb;
CREATE SEQUENCE source.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl_remove
OWNER TO enterprisedb;
CREATE SEQUENCE source.seq_diff
CYCLE
INCREMENT 3
START 3
MINVALUE 3
MAXVALUE 100
CACHE 2;
ALTER SEQUENCE source.seq_diff
OWNER TO enterprisedb;

View File

@@ -578,3 +578,198 @@ CREATE TYPE target.typ_enum_range_diff AS RANGE
ALTER TYPE target.typ_enum_range_diff
OWNER TO enterprisedb;
-- Package script (target only)
CREATE OR REPLACE PACKAGE target.pkg_tar
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric);
END pkg_tar;
CREATE OR REPLACE PACKAGE BODY target.pkg_tar
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
v_dname VARCHAR2(14);
BEGIN
SELECT dname INTO v_dname FROM dept WHERE deptno = p_deptno;
RETURN v_dname;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid department number ' || p_deptno);
RETURN '';
END;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric) IS
BEGIN
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
END;
END pkg_tar;
COMMENT ON PACKAGE target.pkg_tar
IS 'Target';
-- Package script difference in header, acl and comment
CREATE OR REPLACE PACKAGE target.pkg_header_diff
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
END pkg_header_diff;
CREATE OR REPLACE PACKAGE BODY target.pkg_header_diff
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
v_dname VARCHAR2(14);
BEGIN
SELECT dname INTO v_dname FROM dept WHERE deptno = p_deptno;
RETURN v_dname;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid department number ' || p_deptno);
RETURN '';
END;
END pkg_header_diff;
-- Package script difference in body, acl and comment
CREATE OR REPLACE PACKAGE target.pkg_body_diff
IS
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric);
END pkg_body_diff;
CREATE OR REPLACE PACKAGE BODY target.pkg_body_diff
IS
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric) IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Before Insert ');
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
DBMS_OUTPUT.PUT_LINE('After Insert ');
END;
END pkg_body_diff;
COMMENT ON PACKAGE target.pkg_body_diff
IS 'Header Diff';
GRANT EXECUTE ON PACKAGE target.pkg_body_diff TO PUBLIC;
GRANT EXECUTE ON PACKAGE target.pkg_body_diff TO enterprisedb WITH GRANT OPTION;
-- Synonyms Scripts
-- Prerequisite for synonyms
CREATE OR REPLACE FUNCTION target.fun_for_syn()
RETURNS void
LANGUAGE 'plpgsql'
VOLATILE
COST 100
AS $BODY$BEGIN
SELECT 1;
END;$BODY$;
ALTER FUNCTION target.fun_for_syn()
OWNER TO enterprisedb;
CREATE OR REPLACE PROCEDURE target.proc_for_syn()
SECURITY DEFINER VOLATILE
COST 100
AS $BODY$BEGIN
SELECT 1;
END;$BODY$;
CREATE OR REPLACE PACKAGE target.pkg_for_syn
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
END pkg_for_syn;
CREATE OR REPLACE PACKAGE BODY target.pkg_for_syn
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
BEGIN
RETURN '';
END;
END pkg_for_syn;
CREATE TABLE target.table_for_syn
(
id bigint,
name text COLLATE pg_catalog."default"
)
TABLESPACE pg_default;
ALTER TABLE target.table_for_syn
OWNER to enterprisedb;
CREATE SEQUENCE target.seq_for_syn
INCREMENT 5
START 1
MINVALUE 1
MAXVALUE 100
CACHE 1;
ALTER SEQUENCE target.seq_for_syn
OWNER TO enterprisedb;
CREATE OR REPLACE SYNONYM target.syn_fun_src
FOR target.fun_for_syn;
CREATE OR REPLACE SYNONYM target.syn_pkg_src
FOR target.pkg_for_syn;
CREATE OR REPLACE SYNONYM target.syn_proc_src
FOR target.proc_for_syn;
CREATE OR REPLACE SYNONYM target.syn_seq_src
FOR target.seq_for_syn;
CREATE OR REPLACE SYNONYM target.syn_table_src
FOR target.table_for_syn;
CREATE OR REPLACE PROCEDURE public.proc_for_syn()
SECURITY DEFINER VOLATILE
COST 100
AS $BODY$BEGIN
SELECT 1;
END;$BODY$;
CREATE OR REPLACE SYNONYM target.syn_diff
FOR public.proc_for_syn;
-- Sequences Script
CREATE SEQUENCE target.seq_tar
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE target.seq_tar
OWNER TO enterprisedb;
CREATE SEQUENCE target.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl
OWNER TO enterprisedb;
CREATE SEQUENCE target.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl_remove
OWNER TO enterprisedb;
COMMENT ON SEQUENCE target.seq_diff_comment_acl_remove
IS 'Test Comment';
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO PUBLIC;
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO enterprisedb;
CREATE SEQUENCE target.seq_diff
INCREMENT 5
START 3
MINVALUE 3
MAXVALUE 80
CACHE 1;
ALTER SEQUENCE target.seq_diff
OWNER TO enterprisedb;

View File

@@ -80,7 +80,7 @@ CREATE TABLE source.table_for_identical (
);
ALTER TABLE source.table_for_identical OWNER TO enterprisedb;;
ALTER TABLE source.table_for_identical OWNER TO enterprisedb;
--
-- TOC entry 12260 (class 1259 OID 148977)
@@ -522,3 +522,209 @@ CREATE TYPE source.typ_enum_range_diff AS ENUM
('test_enum', 'test_enum_1');
ALTER TYPE source.typ_enum_range_diff
OWNER TO enterprisedb;
-- Package script (source only)
CREATE OR REPLACE PACKAGE source.pkg_src
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric);
END pkg_src;
CREATE OR REPLACE PACKAGE BODY source.pkg_src
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
v_dname VARCHAR2(14);
BEGIN
SELECT dname INTO v_dname FROM dept WHERE deptno = p_deptno;
RETURN v_dname;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid department number ' || p_deptno);
RETURN '';
END;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric) IS
BEGIN
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
END;
END pkg_src;
COMMENT ON PACKAGE source.pkg_src
IS 'Target';
-- Package script difference in header, acl and comment
CREATE OR REPLACE PACKAGE source.pkg_header_diff
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric);
END pkg_header_diff;
CREATE OR REPLACE PACKAGE BODY source.pkg_header_diff
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
v_dname VARCHAR2(14);
BEGIN
SELECT dname INTO v_dname FROM dept WHERE deptno = p_deptno;
RETURN v_dname;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid department number ' || p_deptno);
RETURN '';
END;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric) IS
BEGIN
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
END;
END pkg_header_diff;
COMMENT ON PACKAGE source.pkg_header_diff
IS 'Header Diff';
GRANT EXECUTE ON PACKAGE source.pkg_header_diff TO PUBLIC;
GRANT EXECUTE ON PACKAGE source.pkg_header_diff TO enterprisedb WITH GRANT OPTION;
-- Package script difference in body, acl and comment
CREATE OR REPLACE PACKAGE source.pkg_body_diff
IS
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric);
END pkg_body_diff;
CREATE OR REPLACE PACKAGE BODY source.pkg_body_diff
IS
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric) IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Before Insert ');
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
DBMS_OUTPUT.PUT_LINE('After Insert ');
END;
END pkg_body_diff;
-- Synonyms Scripts
-- Prerequisite for synonyms
CREATE OR REPLACE FUNCTION source.fun_for_syn()
RETURNS void
LANGUAGE 'plpgsql'
VOLATILE
COST 100
AS $BODY$BEGIN
SELECT 1;
END;$BODY$;
ALTER FUNCTION source.fun_for_syn()
OWNER TO enterprisedb;
CREATE OR REPLACE PROCEDURE source.proc_for_syn()
AS $BODY$BEGIN
SELECT 1;
END;$BODY$;
CREATE OR REPLACE PACKAGE source.pkg_for_syn
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
END pkg_for_syn;
CREATE OR REPLACE PACKAGE BODY source.pkg_for_syn
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
BEGIN
RETURN '';
END;
END pkg_for_syn;
CREATE TABLE source.table_for_syn
(
id bigint,
name text COLLATE pg_catalog."default"
)
TABLESPACE pg_default;
ALTER TABLE source.table_for_syn
OWNER to enterprisedb;
CREATE SEQUENCE source.seq_for_syn
INCREMENT 5
START 1
MINVALUE 1
MAXVALUE 100
CACHE 1;
ALTER SEQUENCE source.seq_for_syn
OWNER TO enterprisedb;
CREATE OR REPLACE SYNONYM source.syn_fun_src
FOR source.fun_for_syn;
CREATE OR REPLACE SYNONYM source.syn_pkg_src
FOR source.pkg_for_syn;
CREATE OR REPLACE SYNONYM source.syn_proc_src
FOR source.proc_for_syn;
CREATE OR REPLACE SYNONYM source.syn_seq_src
FOR source.seq_for_syn;
CREATE OR REPLACE SYNONYM source.syn_table_src
FOR source.table_for_syn;
CREATE TABLE public.table_for_syn
(
id bigint,
name text COLLATE pg_catalog."default"
)
TABLESPACE pg_default;
ALTER TABLE public.table_for_syn
OWNER to enterprisedb;
CREATE OR REPLACE SYNONYM source.syn_diff
FOR public.table_for_syn;
-- Sequences Script
CREATE SEQUENCE source.seq_src
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE source.seq_src
OWNER TO enterprisedb;
COMMENT ON SEQUENCE source.seq_src
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_src TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_src TO enterprisedb;
CREATE SEQUENCE source.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl
OWNER TO enterprisedb;
COMMENT ON SEQUENCE source.seq_diff_comment_acl
IS 'Test Comment';
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO PUBLIC;
GRANT ALL ON SEQUENCE source.seq_diff_comment_acl TO enterprisedb;
CREATE SEQUENCE source.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE source.seq_diff_comment_acl_remove
OWNER TO enterprisedb;
CREATE SEQUENCE source.seq_diff
CYCLE
INCREMENT 3
START 3
MINVALUE 3
MAXVALUE 100
CACHE 2;
ALTER SEQUENCE source.seq_diff
OWNER TO enterprisedb;

View File

@@ -550,3 +550,195 @@ CREATE TYPE target.typ_enum_range_diff AS RANGE
);
ALTER TYPE target.typ_enum_range_diff
OWNER TO enterprisedb;
-- Package script (target only)
CREATE OR REPLACE PACKAGE target.pkg_tar
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric);
END pkg_tar;
CREATE OR REPLACE PACKAGE BODY target.pkg_tar
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
v_dname VARCHAR2(14);
BEGIN
SELECT dname INTO v_dname FROM dept WHERE deptno = p_deptno;
RETURN v_dname;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid department number ' || p_deptno);
RETURN '';
END;
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric) IS
BEGIN
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
END;
END pkg_tar;
COMMENT ON PACKAGE target.pkg_tar
IS 'Target';
-- Package script difference in header, acl and comment
CREATE OR REPLACE PACKAGE target.pkg_header_diff
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
END pkg_header_diff;
CREATE OR REPLACE PACKAGE BODY target.pkg_header_diff
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
v_dname VARCHAR2(14);
BEGIN
SELECT dname INTO v_dname FROM dept WHERE deptno = p_deptno;
RETURN v_dname;
EXCEPTION
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('Invalid department number ' || p_deptno);
RETURN '';
END;
END pkg_header_diff;
-- Package script difference in body, acl and comment
CREATE OR REPLACE PACKAGE target.pkg_body_diff
IS
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric);
END pkg_body_diff;
CREATE OR REPLACE PACKAGE BODY target.pkg_body_diff
IS
PROCEDURE hire_emp(p_empno numeric, p_ename character varying, p_job character varying, p_sal numeric, p_hiredate timestamp without time zone, p_comm numeric, p_mgr numeric, p_deptno numeric) IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Before Insert ');
INSERT INTO emp(empno, ename, job, sal, hiredate, comm, mgr, deptno)
VALUES(p_empno, p_ename, p_job, p_sal,
p_hiredate, p_comm, p_mgr, p_deptno);
DBMS_OUTPUT.PUT_LINE('After Insert ');
END;
END pkg_body_diff;
COMMENT ON PACKAGE target.pkg_body_diff
IS 'Header Diff';
GRANT EXECUTE ON PACKAGE target.pkg_body_diff TO PUBLIC;
GRANT EXECUTE ON PACKAGE target.pkg_body_diff TO enterprisedb WITH GRANT OPTION;
-- Synonyms Scripts
-- Prerequisite for synonyms
CREATE OR REPLACE FUNCTION target.fun_for_syn()
RETURNS void
LANGUAGE 'plpgsql'
VOLATILE
COST 100
AS $BODY$BEGIN
SELECT 1;
END;$BODY$;
ALTER FUNCTION target.fun_for_syn()
OWNER TO enterprisedb;
CREATE OR REPLACE PROCEDURE target.proc_for_syn()
AS $BODY$BEGIN
SELECT 1;
END;$BODY$;
CREATE OR REPLACE PACKAGE target.pkg_for_syn
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying;
END pkg_for_syn;
CREATE OR REPLACE PACKAGE BODY target.pkg_for_syn
IS
FUNCTION get_dept_name(p_deptno numeric) RETURN character varying IS
BEGIN
RETURN '';
END;
END pkg_for_syn;
CREATE TABLE target.table_for_syn
(
id bigint,
name text COLLATE pg_catalog."default"
)
TABLESPACE pg_default;
ALTER TABLE target.table_for_syn
OWNER to enterprisedb;
CREATE SEQUENCE target.seq_for_syn
INCREMENT 5
START 1
MINVALUE 1
MAXVALUE 100
CACHE 1;
ALTER SEQUENCE target.seq_for_syn
OWNER TO enterprisedb;
CREATE OR REPLACE SYNONYM target.syn_fun_src
FOR target.fun_for_syn;
CREATE OR REPLACE SYNONYM target.syn_pkg_src
FOR target.pkg_for_syn;
CREATE OR REPLACE SYNONYM target.syn_proc_src
FOR target.proc_for_syn;
CREATE OR REPLACE SYNONYM target.syn_seq_src
FOR target.seq_for_syn;
CREATE OR REPLACE SYNONYM target.syn_table_src
FOR target.table_for_syn;
CREATE OR REPLACE PROCEDURE public.proc_for_syn()
AS $BODY$BEGIN
SELECT 1;
END;$BODY$;
CREATE OR REPLACE SYNONYM target.syn_diff
FOR public.proc_for_syn;
-- Sequences Script
CREATE SEQUENCE target.seq_tar
CYCLE
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 3
CACHE 6;
ALTER SEQUENCE target.seq_tar
OWNER TO enterprisedb;
CREATE SEQUENCE target.seq_diff_comment_acl
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl
OWNER TO enterprisedb;
CREATE SEQUENCE target.seq_diff_comment_acl_remove
INCREMENT 1
START 1
MINVALUE 1
MAXVALUE 9223372036854775807
CACHE 1;
ALTER SEQUENCE target.seq_diff_comment_acl_remove
OWNER TO enterprisedb;
COMMENT ON SEQUENCE target.seq_diff_comment_acl_remove
IS 'Test Comment';
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO PUBLIC;
GRANT ALL ON SEQUENCE target.seq_diff_comment_acl_remove TO enterprisedb;
CREATE SEQUENCE target.seq_diff
INCREMENT 5
START 3
MINVALUE 3
MAXVALUE 80
CACHE 1;
ALTER SEQUENCE target.seq_diff
OWNER TO enterprisedb;