From c82f3783f0e0a3fb7a88745a94da3e94b61d7f4d Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Fri, 25 Feb 2022 11:52:59 +0100 Subject: [PATCH] Fixes for Cockroach platform --- .../dbplatform/cockroach/CockroachPlatform.java | 1 + .../ddlgeneration/platform/CockroachDdl.java | 6 ++++++ .../migrationtest/dbmigration/cockroach/1.1.sql | 9 ++------- .../dbmigration/cockroach/1.2__dropsFor_1.1.sql | 2 -- .../migrationtest/dbmigration/cockroach/1.3.sql | 13 +++++-------- .../dbmigration/cockroach/1.4__dropsFor_1.3.sql | 4 ---- .../dbmigration/cockroach/idx_cockroach.migrations | 8 ++++---- ebean-test/testconfig/ebean-cockroach.properties | 1 + 8 files changed, 19 insertions(+), 25 deletions(-) diff --git a/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java b/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java index 8c1388885..06e775dae 100644 --- a/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java +++ b/ebean-api/src/main/java/io/ebean/config/dbplatform/cockroach/CockroachPlatform.java @@ -11,6 +11,7 @@ public class CockroachPlatform extends PostgresPlatform { public CockroachPlatform() { super(); this.platform = Platform.COCKROACH; + this.historySupport = null; // not yet implemented in DDL } /** diff --git a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java index 7a14001fa..700000583 100644 --- a/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java +++ b/ebean-ddl-generator/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/CockroachDdl.java @@ -36,6 +36,12 @@ public class CockroachDdl extends PlatformDdl { // do nothing } + @Override + public String alterTableDropUniqueConstraint(String tableName, String uniqueConstraintName) { + // workaround for: https://github.com/cockroachdb/cockroach/issues/42840 + return "drop index " + maxConstraintName(uniqueConstraintName) + " cascade"; + } + @Override public boolean isInlineComments() { return false; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql index 8a0ddf08e..97a71855d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.1.sql @@ -60,8 +60,8 @@ alter table migtest_e_basic add column progress integer default 0 not null; alter table migtest_e_basic add constraint ck_migtest_e_basic_progress check ( progress in (0,1,2)); alter table migtest_e_basic add column new_integer integer default 42 not null; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest2; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest6; +drop index uq_migtest_e_basic_indextest2 cascade; +drop index uq_migtest_e_basic_indextest6 cascade; alter table migtest_e_basic add constraint uq_migtest_e_basic_status_indextest1 unique (status,indextest1); alter table migtest_e_basic add constraint uq_migtest_e_basic_name unique (name); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest4 unique (indextest4); @@ -76,14 +76,9 @@ alter table migtest_e_history2 alter column test_string set not null; alter table migtest_e_history2 add column test_string2 varchar(255); alter table migtest_e_history2 add column test_string3 varchar(255) default 'unknown' not null; alter table migtest_e_history2 add column new_column varchar(20); -alter table migtest_e_history2_history add column test_string2 varchar(255); -alter table migtest_e_history2_history add column test_string3 varchar(255) default 'unknown'; -alter table migtest_e_history2_history add column new_column varchar(20); alter table migtest_e_history4 alter column test_number type bigint; -alter table migtest_e_history4_history alter column test_number type bigint; alter table migtest_e_history5 add column test_boolean boolean default false not null; -alter table migtest_e_history5_history add column test_boolean boolean default false; -- NOTE: table has @History - special migration may be necessary diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.2__dropsFor_1.1.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.2__dropsFor_1.1.sql index 43d6a8119..dc03cd36d 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.2__dropsFor_1.1.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.2__dropsFor_1.1.sql @@ -9,10 +9,8 @@ alter table migtest_e_basic drop column old_boolean2; alter table migtest_e_basic drop column eref_id; alter table migtest_e_history2 drop column obsolete_string1; -alter table migtest_e_history2_history drop column obsolete_string1; alter table migtest_e_history2 drop column obsolete_string2; -alter table migtest_e_history2_history drop column obsolete_string2; drop table if exists migtest_e_ref cascade; drop sequence if exists migtest_e_ref_seq; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql index 167a362ff..6b369c321 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.3.sql @@ -25,7 +25,7 @@ alter table migtest_e_basic alter column status2 type varchar(1); alter table migtest_e_basic alter column status2 set default 'N'; alter table migtest_e_basic alter column status2 set not null; alter table migtest_e_basic add constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')); -alter table migtest_e_basic drop constraint uq_migtest_e_basic_description; +drop index uq_migtest_e_basic_description cascade; update migtest_e_basic set user_id = 23 where user_id is null; alter table if exists migtest_e_basic drop constraint if exists fk_migtest_e_basic_user_id; @@ -36,10 +36,10 @@ alter table migtest_e_basic add column old_boolean boolean default false not nul alter table migtest_e_basic add column old_boolean2 boolean; alter table migtest_e_basic add column eref_id integer; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_status_indextest1; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_name; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest4; -alter table migtest_e_basic drop constraint uq_migtest_e_basic_indextest5; +drop index uq_migtest_e_basic_status_indextest1 cascade; +drop index uq_migtest_e_basic_name cascade; +drop index uq_migtest_e_basic_indextest4 cascade; +drop index uq_migtest_e_basic_indextest5 cascade; alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest2 unique (indextest2); alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest6 unique (indextest6); alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status; @@ -48,11 +48,8 @@ alter table migtest_e_history2 alter column test_string drop default; alter table migtest_e_history2 alter column test_string drop not null; alter table migtest_e_history2 add column obsolete_string1 varchar(255); alter table migtest_e_history2 add column obsolete_string2 varchar(255); -alter table migtest_e_history2_history add column obsolete_string1 varchar(255); -alter table migtest_e_history2_history add column obsolete_string2 varchar(255); alter table migtest_e_history4 alter column test_number type integer; -alter table migtest_e_history4_history alter column test_number type integer; alter table migtest_e_history6 alter column test_number1 drop default; alter table migtest_e_history6 alter column test_number1 drop not null; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql index 985c8764a..585b09841 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/1.4__dropsFor_1.3.sql @@ -17,16 +17,12 @@ alter table migtest_e_basic drop column progress; alter table migtest_e_basic drop column new_integer; alter table migtest_e_history2 drop column test_string2; -alter table migtest_e_history2_history drop column test_string2; alter table migtest_e_history2 drop column test_string3; -alter table migtest_e_history2_history drop column test_string3; alter table migtest_e_history2 drop column new_column; -alter table migtest_e_history2_history drop column new_column; alter table migtest_e_history5 drop column test_boolean; -alter table migtest_e_history5_history drop column test_boolean; alter table migtest_e_softdelete drop column deleted; diff --git a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations index 6ccb81618..0ba59d68c 100644 --- a/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations +++ b/ebean-test/src/test/resources/migrationtest/dbmigration/cockroach/idx_cockroach.migrations @@ -1,7 +1,7 @@ -1611775717, 1.0__initial.sql --1108404951, 1.1.sql --835109514, 1.2__dropsFor_1.1.sql --30927192, 1.3.sql -676584941, 1.4__dropsFor_1.3.sql +-525928117, 1.1.sql +746142601, 1.2__dropsFor_1.1.sql +-1795996592, 1.3.sql +-574081288, 1.4__dropsFor_1.3.sql 561281075, R__order_views.sql diff --git a/ebean-test/testconfig/ebean-cockroach.properties b/ebean-test/testconfig/ebean-cockroach.properties index 2604e7dcf..604387b76 100644 --- a/ebean-test/testconfig/ebean-cockroach.properties +++ b/ebean-test/testconfig/ebean-cockroach.properties @@ -1,4 +1,5 @@ ebean.test.platform=cockroach ebean.test.dbName=unit datasource.default=cockroach +#ebean.test.cockroach.version=v21.2.6