mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2025-02-25 18:55:31 -06:00
Fixed an issue where schema diff marks an identical table as different. Fixes #5350
Fixed an issue where schema diff showing changes in the identical domain constraints. Fixes #5315 Ignore the keys from the source and target list and also sort both the lists.
This commit is contained in:
parent
36a3d4e53b
commit
4692b21bcf
@ -56,6 +56,8 @@ Bug fixes
|
|||||||
| `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 #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 #5315 <https://redmine.postgresql.org/issues/5315>`_ - Fixed an issue where schema diff showing changes in the identical domain constraints.
|
||||||
|
| `Issue #5350 <https://redmine.postgresql.org/issues/5350>`_ - Fixed an issue where schema diff marks an identical table as different.
|
||||||
| `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.
|
||||||
| `Issue #5362 <https://redmine.postgresql.org/issues/5362>`_ - Fixed an issue where the identical packages and sequences visible as different in the schema diff tool.
|
| `Issue #5362 <https://redmine.postgresql.org/issues/5362>`_ - Fixed an issue where the identical packages and sequences visible as different in the schema diff tool.
|
||||||
|
@ -1477,7 +1477,7 @@ class ForeignTableView(PGChildNodeView, DataTypeReader,
|
|||||||
if 'deleted' in data['columns']:
|
if 'deleted' in data['columns']:
|
||||||
for item in data['columns']['deleted']:
|
for item in data['columns']['deleted']:
|
||||||
tmp_columns.remove(item)
|
tmp_columns.remove(item)
|
||||||
data['columns'] = tmp_columns
|
data['columns'] = tmp_columns
|
||||||
|
|
||||||
tmp_constraints = []
|
tmp_constraints = []
|
||||||
if 'constraints' in data:
|
if 'constraints' in data:
|
||||||
@ -1502,7 +1502,7 @@ class ForeignTableView(PGChildNodeView, DataTypeReader,
|
|||||||
if 'deleted' in data['ftoptions']:
|
if 'deleted' in data['ftoptions']:
|
||||||
for item in data['ftoptions']['deleted']:
|
for item in data['ftoptions']['deleted']:
|
||||||
tmp_ftoptions.remove(item)
|
tmp_ftoptions.remove(item)
|
||||||
data['ftoptions'] = tmp_ftoptions
|
data['ftoptions'] = tmp_ftoptions
|
||||||
|
|
||||||
|
|
||||||
SchemaDiffRegistry(blueprint.node_type, ForeignTableView)
|
SchemaDiffRegistry(blueprint.node_type, ForeignTableView)
|
||||||
|
@ -9,5 +9,5 @@ LEFT JOIN pg_namespace nsp ON c.relnamespace = nsp.oid
|
|||||||
WHERE
|
WHERE
|
||||||
c.relfilenode = {{ vid }};
|
c.relfilenode = {{ vid }};
|
||||||
{% elif (name and nspname) %}
|
{% elif (name and nspname) %}
|
||||||
DROP MATERIALIZED VIEW {{ conn|qtIdent(nspname, name) }} {% if cascade %} CASCADE {% endif %}
|
DROP MATERIALIZED VIEW {{ conn|qtIdent(nspname, name) }} {% if cascade %} CASCADE {% endif %};
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -9,5 +9,5 @@ LEFT JOIN pg_namespace nsp ON c.relnamespace = nsp.oid
|
|||||||
WHERE
|
WHERE
|
||||||
c.relfilenode = {{ vid }};
|
c.relfilenode = {{ vid }};
|
||||||
{% elif (name and nspname) %}
|
{% elif (name and nspname) %}
|
||||||
DROP MATERIALIZED VIEW {{ conn|qtIdent(nspname, name) }} {% if cascade %} CASCADE {% endif %}
|
DROP MATERIALIZED VIEW {{ conn|qtIdent(nspname, name) }} {% if cascade %} CASCADE {% endif %};
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -9,5 +9,5 @@ LEFT JOIN pg_namespace nsp ON c.relnamespace = nsp.oid
|
|||||||
WHERE
|
WHERE
|
||||||
c.relfilenode = {{ vid }};
|
c.relfilenode = {{ vid }};
|
||||||
{% elif (name and nspname) %}
|
{% elif (name and nspname) %}
|
||||||
DROP MATERIALIZED VIEW {{ conn|qtIdent(nspname, name) }} {% if cascade %} CASCADE {% endif %}
|
DROP MATERIALIZED VIEW {{ conn|qtIdent(nspname, name) }} {% if cascade %} CASCADE {% endif %};
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
(function (root, factory) {
|
(function (root, factory) {
|
||||||
if (typeof define === 'function' && define.amd) {
|
if (typeof define === 'function' && define.amd) {
|
||||||
// AMD. Register as an anonymous module.
|
// AMD. Register as an anonymous module.
|
||||||
define(["backbone", "backgrid", "underscore"], factory);
|
define(["backbone", "backgrid", "underscore", "sources/gettext"], factory);
|
||||||
} else if (typeof exports == "object") {
|
} else if (typeof exports == "object") {
|
||||||
// CommonJS
|
// CommonJS
|
||||||
module.exports = factory(require("backbone"), require("backgrid"), require("underscore"));
|
module.exports = factory(require("backbone"), require("backgrid"), require("underscore"));
|
||||||
@ -16,7 +16,7 @@
|
|||||||
// Browser
|
// Browser
|
||||||
else factory(root.Backbone, root.Backgrid, root._);
|
else factory(root.Backbone, root.Backgrid, root._);
|
||||||
|
|
||||||
}(this, function (Backbone, Backgrid, _) {
|
}(this, function (Backbone, Backgrid, _, gettext) {
|
||||||
|
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
|
@ -14,6 +14,9 @@ from pgadmin.tools.schema_diff.model import SchemaDiffModel
|
|||||||
|
|
||||||
count = 1
|
count = 1
|
||||||
|
|
||||||
|
list_keys_array = ['name', 'colname', 'argid', 'token', 'option', 'conname',
|
||||||
|
'member_name', 'label', 'attname']
|
||||||
|
|
||||||
|
|
||||||
def compare_dictionaries(view_object, source_params, target_params,
|
def compare_dictionaries(view_object, source_params, target_params,
|
||||||
target_schema, source_dict, target_dict, node,
|
target_schema, source_dict, target_dict, node,
|
||||||
@ -275,6 +278,11 @@ def are_dictionaries_identical(source_dict, target_dict, ignore_keys):
|
|||||||
target_dict[key], ignore_keys):
|
target_dict[key], ignore_keys):
|
||||||
return False
|
return False
|
||||||
elif type(source_dict[key]) is list:
|
elif type(source_dict[key]) is list:
|
||||||
|
# Sort the source and target list on the basis of
|
||||||
|
# list key array.
|
||||||
|
source_dict[key], target_dict[key] = sort_list(source_dict[key],
|
||||||
|
target_dict[key])
|
||||||
|
# Compare the source and target lists
|
||||||
if not are_lists_identical(source_dict[key], target_dict[key],
|
if not are_lists_identical(source_dict[key], target_dict[key],
|
||||||
ignore_keys):
|
ignore_keys):
|
||||||
return False
|
return False
|
||||||
@ -339,29 +347,13 @@ def directory_diff(source_dict, target_dict, ignore_keys=[], difference={}):
|
|||||||
# TODO
|
# TODO
|
||||||
pass
|
pass
|
||||||
elif type(source) is dict:
|
elif type(source) is dict:
|
||||||
tmp_key_array = ['name', 'colname', 'argid', 'token',
|
|
||||||
'option', 'conname', 'member_name',
|
|
||||||
'label', 'attname']
|
|
||||||
# Check the above keys are exist in the dictionary
|
# Check the above keys are exist in the dictionary
|
||||||
tmp_key = is_key_exists(tmp_key_array, source)
|
tmp_key = is_key_exists(list_keys_array, source)
|
||||||
if tmp_key is not None:
|
if tmp_key is not None:
|
||||||
if type(target_dict[key]) is list and \
|
# Compare the two list by ignoring the keys.
|
||||||
len(target_dict[key]) > 0:
|
compare_list_by_ignoring_keys(source, tmp_target,
|
||||||
tmp = None
|
added, updated,
|
||||||
for item in tmp_target:
|
tmp_key, ignore_keys)
|
||||||
if tmp_key in item and \
|
|
||||||
item[tmp_key] == \
|
|
||||||
source[tmp_key]:
|
|
||||||
tmp = copy.deepcopy(item)
|
|
||||||
if tmp and source != tmp:
|
|
||||||
updated.append(copy.deepcopy(source))
|
|
||||||
tmp_target.remove(tmp)
|
|
||||||
elif tmp and source == tmp:
|
|
||||||
tmp_target.remove(tmp)
|
|
||||||
elif tmp is None:
|
|
||||||
added.append(source)
|
|
||||||
else:
|
|
||||||
added.append(source)
|
|
||||||
|
|
||||||
difference[key] = {}
|
difference[key] = {}
|
||||||
if len(added) > 0:
|
if len(added) > 0:
|
||||||
@ -468,3 +460,67 @@ def parse_acl(source, target, diff_dict):
|
|||||||
diff_dict.update({key: diff})
|
diff_dict.update({key: diff})
|
||||||
elif key in diff_dict:
|
elif key in diff_dict:
|
||||||
diff_dict.pop(key)
|
diff_dict.pop(key)
|
||||||
|
|
||||||
|
|
||||||
|
def sort_list(source, target):
|
||||||
|
"""
|
||||||
|
This function is used to sort the source and target list on the
|
||||||
|
basis of key found in the source and target list.
|
||||||
|
:param source:
|
||||||
|
:param target:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
# Check the above keys are exist in the dictionary
|
||||||
|
if len(source) > 0:
|
||||||
|
tmp_key = is_key_exists(list_keys_array, source[0])
|
||||||
|
if tmp_key is not None:
|
||||||
|
source = sorted(source, key=lambda k: k[tmp_key])
|
||||||
|
|
||||||
|
# Check the above keys are exist in the dictionary
|
||||||
|
if len(target) > 0:
|
||||||
|
tmp_key = is_key_exists(list_keys_array, target[0])
|
||||||
|
if tmp_key is not None:
|
||||||
|
target = sorted(target, key=lambda k: k[tmp_key])
|
||||||
|
|
||||||
|
return source, target
|
||||||
|
|
||||||
|
|
||||||
|
def compare_list_by_ignoring_keys(source_list, target_list, added, updated,
|
||||||
|
key, ignore_keys):
|
||||||
|
"""
|
||||||
|
This function is used to compare the two list by ignoring the keys
|
||||||
|
specified in ignore_keys.
|
||||||
|
:param source_list:
|
||||||
|
:param target_list:
|
||||||
|
:param added:
|
||||||
|
:param updated:
|
||||||
|
:param key:
|
||||||
|
:param ignore_keys:
|
||||||
|
:return:
|
||||||
|
"""
|
||||||
|
if type(target_list) is list and len(target_list) > 0:
|
||||||
|
tmp_target = None
|
||||||
|
for item in target_list:
|
||||||
|
if key in item and item[key] == source_list[key]:
|
||||||
|
tmp_target = copy.deepcopy(item)
|
||||||
|
|
||||||
|
if tmp_target is None:
|
||||||
|
added.append(source_list)
|
||||||
|
else:
|
||||||
|
source_with_ignored_keys = copy.deepcopy(source_list)
|
||||||
|
target_with_ignored_keys = copy.deepcopy(tmp_target)
|
||||||
|
|
||||||
|
# Remove ignore keys from source and target before comparison
|
||||||
|
for ig_key in ignore_keys:
|
||||||
|
if ig_key in source_with_ignored_keys:
|
||||||
|
del source_with_ignored_keys[ig_key]
|
||||||
|
if ig_key in target_with_ignored_keys:
|
||||||
|
del target_with_ignored_keys[ig_key]
|
||||||
|
|
||||||
|
if source_with_ignored_keys != target_with_ignored_keys:
|
||||||
|
updated.append(source_list)
|
||||||
|
target_list.remove(tmp_target)
|
||||||
|
elif source_with_ignored_keys == target_with_ignored_keys:
|
||||||
|
target_list.remove(tmp_target)
|
||||||
|
else:
|
||||||
|
added.append(source_list)
|
||||||
|
@ -853,3 +853,20 @@ ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
|||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE source.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
payment_pin integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -808,3 +808,20 @@ ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
|||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE target.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
payment_pin integer,
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -852,3 +852,20 @@ ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
|||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE source.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
payment_pin integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -807,3 +807,20 @@ ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
|||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE target.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
payment_pin integer,
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -853,3 +853,20 @@ ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
|||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE source.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
payment_pin integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -796,3 +796,20 @@ ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
|||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE target.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
payment_pin integer,
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -720,3 +720,20 @@ ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
|||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE source.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
payment_pin integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -714,3 +714,20 @@ ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
|||||||
OWNER TO postgres;
|
OWNER TO postgres;
|
||||||
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE target.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
payment_pin integer,
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -950,3 +950,20 @@ ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
|||||||
OWNER TO enterprisedb;
|
OWNER TO enterprisedb;
|
||||||
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE source.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
payment_pin integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -895,3 +895,20 @@ ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
|||||||
OWNER TO enterprisedb;
|
OWNER TO enterprisedb;
|
||||||
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE target.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
payment_pin integer,
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -880,3 +880,20 @@ ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
|||||||
OWNER TO enterprisedb;
|
OWNER TO enterprisedb;
|
||||||
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE source.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs1 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE source.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
payment_pin integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
@ -864,3 +864,20 @@ ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
|||||||
OWNER TO enterprisedb;
|
OWNER TO enterprisedb;
|
||||||
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
ALTER FOREIGN TABLE target.ft_diff_foreign_server_1
|
||||||
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
ADD CONSTRAINT cs2 CHECK ((fid > 200)) NO INHERIT;
|
||||||
|
|
||||||
|
-- Test for RM #5350
|
||||||
|
CREATE TABLE target.events_transactions
|
||||||
|
(
|
||||||
|
event_code integer,
|
||||||
|
numerator integer,
|
||||||
|
account_token text COLLATE pg_catalog."default",
|
||||||
|
transaction_dt timestamp without time zone,
|
||||||
|
payment_method integer,
|
||||||
|
approval text COLLATE pg_catalog."default",
|
||||||
|
amount integer,
|
||||||
|
file_dt timestamp without time zone DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
file_name character varying(256) COLLATE pg_catalog."default",
|
||||||
|
payment_pin integer,
|
||||||
|
transfer_dt timestamp without time zone,
|
||||||
|
transaction_type integer
|
||||||
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user