Package liquibase.diff.compare.core
Class PrimaryKeyComparator
java.lang.Object
liquibase.diff.compare.core.PrimaryKeyComparator
- All Implemented Interfaces:
DatabaseObjectComparator
-
Field Summary
Fields inherited from interface liquibase.diff.compare.DatabaseObjectComparator
PRIORITY_DATABASE, PRIORITY_DEFAULT, PRIORITY_NONE, PRIORITY_TYPE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionfindDifferences(DatabaseObject databaseObject1, DatabaseObject databaseObject2, Database accordingTo, CompareControl compareControl, DatabaseObjectComparatorChain chain, Set<String> exclude) intgetPriority(Class<? extends DatabaseObject> objectType, Database database) String[]hash(DatabaseObject databaseObject, Database accordingTo, DatabaseObjectComparatorChain chain) booleanisSameObject(DatabaseObject databaseObject1, DatabaseObject databaseObject2, Database accordingTo, DatabaseObjectComparatorChain chain) Two primary keys are the same object when they belong to the same table and their names match, where a null name matches any PK on the table.
-
Constructor Details
-
PrimaryKeyComparator
public PrimaryKeyComparator()
-
-
Method Details
-
getPriority
- Specified by:
getPriorityin interfaceDatabaseObjectComparator
-
hash
public String[] hash(DatabaseObject databaseObject, Database accordingTo, DatabaseObjectComparatorChain chain) - Specified by:
hashin interfaceDatabaseObjectComparator
-
isSameObject
public boolean isSameObject(DatabaseObject databaseObject1, DatabaseObject databaseObject2, Database accordingTo, DatabaseObjectComparatorChain chain) Two primary keys are the same object when they belong to the same table and their names match, where a null name matches any PK on the table. Differing names still match when both sides carry column definitions (snapshotted objects), since a table has a single PK and auto-generated names vary across environments. A side without columns is a name-based lookup example (e.g. the primaryKeyExists precondition) and must match by name.- Specified by:
isSameObjectin interfaceDatabaseObjectComparator
-
findDifferences
public ObjectDifferences findDifferences(DatabaseObject databaseObject1, DatabaseObject databaseObject2, Database accordingTo, CompareControl compareControl, DatabaseObjectComparatorChain chain, Set<String> exclude) - Specified by:
findDifferencesin interfaceDatabaseObjectComparator
-