From a72cbaf243533b430f043dcedbc72c7ba393134e Mon Sep 17 00:00:00 2001 From: Rob Bygrave Date: Fri, 4 Feb 2022 08:40:23 +1300 Subject: [PATCH] #2547 - Cockroach identity DDL - Changing to use standard GENERATED ... AS IDENTITY syntax --- .../server/core/InternalConfiguration.java | 2 +- .../server/type/DefaultTypeManager.java | 3 ++- .../ddlgeneration/platform/CockroachDdl.java | 14 +------------- ebean-test/src/test/java/main/StartCockroach.java | 14 +++++++------- 4 files changed, 11 insertions(+), 22 deletions(-) diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java index 03ec25ed0..e6944a9e9 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java @@ -280,7 +280,7 @@ public final class InternalConfiguration { private MultiValueBind createMultiValueBind(Platform platform) { // only Postgres at this stage - if (platform.base() == Platform.POSTGRES || platform.base() == Platform.YUGABYTE) { + if (platform.base() == Platform.POSTGRES || platform.base() == Platform.YUGABYTE || platform.base() == Platform.COCKROACH) { return new PostgresMultiValueBind(); } return new MultiValueBind(); diff --git a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java index 747208ecc..020ba58ae 100644 --- a/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java +++ b/ebean-core/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java @@ -202,7 +202,8 @@ public final class DefaultTypeManager implements TypeManager { private boolean isPostgresCompatible(DatabasePlatform databasePlatform) { return databasePlatform.isPlatform(Platform.POSTGRES) - || databasePlatform.isPlatform(Platform.YUGABYTE); + || databasePlatform.isPlatform(Platform.YUGABYTE) + || databasePlatform.isPlatform(Platform.COCKROACH); } private boolean hstoreSupport() { 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 8c3d8bfe4..7a14001fa 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 @@ -21,21 +21,9 @@ public class CockroachDdl extends PlatformDdl { return NativeDbArray.logicalToNative(logicalArrayType); } - /** - * Map bigint, integer and smallint all into serial. - */ @Override public String asIdentityColumn(String columnDefn, DdlIdentity identity) { - if ("bigint".equalsIgnoreCase(columnDefn)) { - return "serial"; - } - if ("integer".equalsIgnoreCase(columnDefn)) { - return "serial"; - } - if ("smallint".equalsIgnoreCase(columnDefn)) { - return "serial"; - } - return columnDefn; + return asIdentityStandardOptions(columnDefn, identity); } @Override diff --git a/ebean-test/src/test/java/main/StartCockroach.java b/ebean-test/src/test/java/main/StartCockroach.java index dfdd96a40..bb189daa0 100644 --- a/ebean-test/src/test/java/main/StartCockroach.java +++ b/ebean-test/src/test/java/main/StartCockroach.java @@ -1,16 +1,16 @@ package main; -//import io.ebean.docker.commands.CockroachConfig; -//import io.ebean.docker.commands.CockroachContainer; +import io.ebean.docker.commands.CockroachConfig; +import io.ebean.docker.commands.CockroachContainer; public class StartCockroach { public static void main(String[] args) { -// CockroachConfig config = new CockroachConfig(); -// config.setDbName("unit"); -// -// CockroachContainer container = new CockroachContainer(config); -// container.startWithDropCreate(); + CockroachConfig config = new CockroachConfig("v21.2.4"); + config.setDbName("unit"); + + CockroachContainer container = new CockroachContainer(config); + container.start(); } }