From a0978700d54464723fca3d7e73326464b041b489 Mon Sep 17 00:00:00 2001 From: Matthias Wuttke Date: Sat, 9 Nov 2019 20:05:40 +0100 Subject: [PATCH 1/2] MaxDB sequence query --- .../liquibase/snapshot/jvm/SequenceSnapshotGenerator.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) 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 e7e2e72cb30..3ab7969f64e 100644 --- a/liquibase-core/src/main/java/liquibase/snapshot/jvm/SequenceSnapshotGenerator.java +++ b/liquibase-core/src/main/java/liquibase/snapshot/jvm/SequenceSnapshotGenerator.java @@ -242,9 +242,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")) { + 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); - } - + } } } From bf79f205787123925251eb75280d2cbaa130e048 Mon Sep 17 00:00:00 2001 From: Matthias Wuttke Date: Sat, 9 Nov 2019 21:10:46 +0100 Subject: [PATCH 2/2] Fix more queries for MaxDB --- .../main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java | 5 +++++ .../snapshot/jvm/UniqueConstraintSnapshotGenerator.java | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/liquibase-core/src/main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java b/liquibase-core/src/main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java index 7d8bf181f78..0220847d66b 100644 --- a/liquibase-core/src/main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java +++ b/liquibase-core/src/main/java/liquibase/snapshot/JdbcDatabaseSnapshot.java @@ -1432,6 +1432,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")) { + 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/UniqueConstraintSnapshotGenerator.java b/liquibase-core/src/main/java/liquibase/snapshot/jvm/UniqueConstraintSnapshotGenerator.java index f925928eaa7..dd8aa4cf5d4 100644 --- a/liquibase-core/src/main/java/liquibase/snapshot/jvm/UniqueConstraintSnapshotGenerator.java +++ b/liquibase-core/src/main/java/liquibase/snapshot/jvm/UniqueConstraintSnapshotGenerator.java @@ -193,6 +193,10 @@ protected List listConstraints(Table table, DatabaseSnapshot snapshot + "and const.table_name='" + database.correctObjectName(example.getRelation().getName(), Table.class) + "' " + "and const.constraint_name='" + database.correctObjectName(name, UniqueConstraint.class) + "'" + "order by ordinal_position"; + } else if (database.getClass().getName().contains("MaxDB")) { + 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 " +