Package liquibase.diff.compare.core
Class MSSQLViewComparator
java.lang.Object
liquibase.diff.compare.core.MSSQLViewComparator
- All Implemented Interfaces:
DatabaseObjectComparator
MSSQL-specific comparator for View objects that normalizes view definitions
before comparison to prevent false diffs caused by inconsistent schema
qualification across MSSQL server versions.
MSSQL's OBJECT_DEFINITION() returns different formats depending on server version:
- Some versions:
CREATE VIEW [dbo].[view_demo] WITH SCHEMABINDING AS ... - Other versions:
CREATE VIEW view_demo WITH SCHEMABINDING AS ...
This comparator strips the optional [schema]. prefix and bracket quoting
from the CREATE VIEW header only for comparison purposes,
leaving the original definition on the snapshot object intact for changelog generation.
-
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)
-
Constructor Details
-
MSSQLViewComparator
public MSSQLViewComparator()
-
-
Method Details
-
getPriority
- Specified by:
getPriorityin interfaceDatabaseObjectComparator
-
isSameObject
public boolean isSameObject(DatabaseObject databaseObject1, DatabaseObject databaseObject2, Database accordingTo, DatabaseObjectComparatorChain chain) - Specified by:
isSameObjectin interfaceDatabaseObjectComparator
-
hash
public String[] hash(DatabaseObject databaseObject, Database accordingTo, DatabaseObjectComparatorChain chain) - Specified by:
hashin interfaceDatabaseObjectComparator
-
findDifferences
public ObjectDifferences findDifferences(DatabaseObject databaseObject1, DatabaseObject databaseObject2, Database accordingTo, CompareControl compareControl, DatabaseObjectComparatorChain chain, Set<String> exclude) - Specified by:
findDifferencesin interfaceDatabaseObjectComparator
-