Version 2.0 v2
LiveCompare 2.0 includes the following new features, enhancements, bug fixes, and other changes:
Type | Description | ID |
---|---|---|
Feature | New section in setting called Comparison Key allows users to define a custom comparison key (list of columns) per table. This can be useful for tables without primary keys or unique indexes. See Comparison Key for more information. | LIV-5 |
Feature | If the table has no user-defined comparison key or primary key, LiveCompare now tries to use the unique indexes from the table. As tables can have multiple unique indexes, LiveCompare prefers to use the index where columns are not nullable. If not possible, then LiveCompare tries to use the first unique index that has less columns. If there is no unique indexes, then LiveCompare tries to use all columns from the table as a comparison key. Please note that LiveCompare does not try to ignore nullable columns from unique indexes. | LIV-39 |
Feature | When using all columns from the table as a comparison key, LiveCompare now ignores the nullable columns to avoid false positives when considering all columns. This behavior can be disabled by setting ignore_nullable = false . | LIV-96 |
Feature | When using an user-defined comparison key or all columns from the table as a comparison key, LiveCompare now checks if they would enforce uniqueness. If when using the column set there is any duplicate values, then LiveCompare aborts the comparison on the table. This behavior can be disabled by setting check_uniqueness_enforcement = false . | LIV-119 |
Enhancement | Added support to Oracle 21c. | LIV-47 |
Enhancement | On Oracle 12c and newer, LiveCompare is already able to use a common hash to allow comparison_algorithm = block_hash and comparison_algorithm = row_hash , which are faster and allow table splitting among multiple worker processes. This is done on Oracle side using the standard_hash() function, which was introduced on Oracle 12c. Now LiveCompare also allows comparison_algorithm = block_hash and comparison_algorithm = row_hash on Oracle 11g, by using the equivalent function sys.dbms_crypto.hash() , provided that the user has EXECUTE privileges on the sys.dbms_crypto Oracle system package. | LIV-79 |
Enhancement | LiveCompare schema can now be added to a replication-enabled (EDB Postgres Distributed, pglogical or native logical replication) database. | LIV-42 |
Enhancement | LiveCompare can use the new pg_read_all_data role in PostgreSQL 14. | LIV-73 |
Enhancement | Abort with a proper message if any database version is not supported. | |
Change | Package has been renamed to edb-livecompare from 2ndq-livecompare . | |
Change | Executable has been renamed to livecompare from 2ndq-livecompare . | |
Bug fix | Properly quote the unicode sequence \u0000 to avoid an error when generating DML. | LIV-98 |
Bug fix | Fixed an issue where the number of total rows was displayed incorrectly when the table was split into multiple round parts. | LIV-14 |
Bug fix | Fixed an issue where empty BLOB on Oracle when compared against an empty bytea on Postgres was generating a false positive. | LIV-103 |
Bug fix | Fixed an issue where connectivity issues were causing exceptions aborting the whole comparison session. Now LiveCompare is able to reconnect and continue the comparison if possible. | LIV-84 |
Bug fix | Fixed an unhandled exception on the recheck mode if there are any divergences. | LIV-107 |
Bug fix | Fixed an issue where the table comparison was not being aborted if the table didn't exist on a connection and logical_replication_mode was disabled. | LIV-108 |
Bug fix | Fixed an issue where fields of timestamp data type were always generating a mismatching hash between Oracle and Postgres. | |
Bug fix | Fixed an issue where ignored columns were still being considered in the common hash. |