diff --git a/liquibase-core/src/main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java b/liquibase-core/src/main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java index 150f72d5d26..adfea1077fd 100644 --- a/liquibase-core/src/main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java +++ b/liquibase-core/src/main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java @@ -1544,6 +1544,11 @@ private String createSql(String catalogName, String schemaName, String tableName if (tableName != null) { sql += " and table_name='" + tableName + "'"; } + } else if (database.getClass().getName().contains("MaxDB")) { //have to check classname as this is currently an extension + sql = "select distinct tablename AS TABLE_NAME, constraintname AS CONSTRAINT_NAME from CONSTRAINTCOLUMNS WHERE CONSTRAINTTYPE = 'UNIQUE_CONST'"; + if (tableName != null) { + sql += " and tablename='" + tableName + "'"; + } } else if (database instanceof MSSQLDatabase) { sql = "SELECT " + diff --git a/liquibase-core/src/main/java/liquibase/snapshot/jvm/SequenceSnapshotGenerator.java b/liquibase-core/src/main/java/liquibase/snapshot/jvm/SequenceSnapshotGenerator.java index 8e63809abb9..ea4a905e2b5 100644 --- a/liquibase-core/src/main/java/liquibase/snapshot/jvm/SequenceSnapshotGenerator.java +++ b/liquibase-core/src/main/java/liquibase/snapshot/jvm/SequenceSnapshotGenerator.java @@ -278,9 +278,11 @@ protected String getSelectSequenceSql(Schema schema, Database database) { "FROM SYS.SYSSEQUENCE s " + "JOIN SYS.SYSUSER u ON s.OWNER = u.USER_ID "+ "WHERE u.USER_NAME = '" + schema.getName() + "'"; - } else { + } else if (database.getClass().getName().contains("MaxDB")) { //have to check classname as this is currently an extension + return "SELECT SEQUENCE_NAME, MIN_VALUE, MAX_VALUE, INCREMENT_BY, CYCLE_FLAG AS WILL_CYCLE " + + "FROM sequences WHERE SCHEMANAME = '" + schema.getName() + "'"; + } else { throw new UnexpectedLiquibaseException("Don't know how to query for sequences on " + database); - } - + } } } diff --git a/liquibase-core/src/main/java/liquibase/snapshot/jvm/UniqueConstraintSnapshotGenerator.java b/liquibase-core/src/main/java/liquibase/snapshot/jvm/UniqueConstraintSnapshotGenerator.java index a9098ee6df9..cf5e197ca06 100644 --- a/liquibase-core/src/main/java/liquibase/snapshot/jvm/UniqueConstraintSnapshotGenerator.java +++ b/liquibase-core/src/main/java/liquibase/snapshot/jvm/UniqueConstraintSnapshotGenerator.java @@ -183,7 +183,6 @@ protected List listConstraints(Table table, DatabaseSnapshot snapshot + "and const.table_name=col.table_name " + "and const.constraint_name=col.constraint_name " + "where const.constraint_catalog='" + database.correctObjectName(schema.getCatalogName(), Catalog.class) + "' "; - if (database instanceof CockroachDatabase) { sql += " and (select count(*) from (select indexdef from pg_indexes where schemaname='" + database.correctObjectName(schema.getSchema().getName(), Schema.class) + "' AND indexname='" + database.correctObjectName(name, UniqueConstraint.class) + "' AND (position('DESC,' in indexdef) > 0 OR position('DESC)' in indexdef) > 0))) = 0" + "and const.constraint_name != 'primary' "; @@ -195,6 +194,10 @@ protected List listConstraints(Table table, DatabaseSnapshot snapshot } sql += "order by ordinal_position"; + } else if (database.getClass().getName().contains("MaxDB")) { //have to check classname as this is currently an extension + sql = "select CONSTRAINTNAME as constraint_name, COLUMNNAME as column_name from CONSTRAINTCOLUMNS WHERE CONSTRAINTTYPE = 'UNIQUE_CONST' AND tablename = '" + + database.correctObjectName(example.getRelation().getName(), Table.class) + "' AND constraintname = '" + + database.correctObjectName(name, UniqueConstraint.class) + "'"; } else if (database instanceof MSSQLDatabase) { sql = "SELECT " +