From 2314fd267fe718c179ca6afba6bee068998aa000 Mon Sep 17 00:00:00 2001
From: Rob Bygrave
Date: Sat, 22 Feb 2020 09:18:05 +1300
Subject: [PATCH] Split Postgres platform into Postgres10 & Postgres9 (DDL -
generated by default as identity) (#1921)
* Split Postgres platform into Postgres10 & Postgres9
- Use "generated by default as identity" for Postgres10 identity columns
* Add postgres9 migrationtest resources
* Set default back to h2
* Add postgres10 migration test resources
---
pom.xml | 2 +-
.../config/dbplatform/DatabasePlatform.java | 2 +-
.../postgres/Postgres9Platform.java | 14 +
.../dbplatform/postgres/PostgresPlatform.java | 7 +-
.../io/ebeaninternal/api/PlatformMatch.java | 27 +
.../dbmigration/DdlGenerator.java | 12 +-
.../dbmigration/DefaultDbMigration.java | 8 +-
.../ddlgeneration/platform/BaseTableDdl.java | 27 +-
.../ddlgeneration/platform/Oracle10Ddl.java | 2 +-
.../ddlgeneration/platform/PlatformDdl.java | 13 -
.../ddlgeneration/platform/Postgres9Ddl.java | 27 +
.../ddlgeneration/platform/PostgresDdl.java | 18 +-
.../dbmigration/model/CurrentModel.java | 4 +-
.../extraddl/model/ExtraDdlXmlReader.java | 57 +-
.../server/core/DatabasePlatformFactory.java | 30 +-
.../server/core/InternalConfiguration.java | 2 +-
.../server/core/PlatformDdlBuilder.java | 8 +-
.../platform/DbExpressionHandlerFactory.java | 2 +
.../server/type/DefaultTypeManager.java | 2 +-
src/test/ddl-review/pg-create-all.sql | 698 +++++++++---------
src/test/ddl-review/pg-drop-all.sql | 2 +-
src/test/java/io/ebean/BaseTestCase.java | 2 +-
.../java/io/ebean/ConditionalTestRunner.java | 10 +-
.../config/ServerConfigSqlServerTest.java | 6 +-
.../dbplatform/DatabasePlatformTest.java | 8 +-
.../ebeaninternal/api/PlatformMatchTest.java | 49 ++
.../extraddl/model/ExtraDdlXmlReaderTest.java | 40 +-
.../deploy/DeployPropertyParserTest.java | 6 +-
src/test/java/main/StartPostgres9.java | 21 +
.../org/tests/basic/TestQueryForUpdate.java | 16 +-
.../pg-apply.sql | 4 +-
.../dbmigration/migrationtest/mysql55/1.3.sql | 4 +
.../migrationtest/mysql55/R__order_views.sql | 7 +
.../migrationtest/postgres/1.0__initial.sql | 44 +-
.../migrationtest/postgres/1.1.sql | 2 +-
.../migrationtest/postgres/1.3.sql | 2 +-
.../migrationtest/postgres10/1.0__initial.sql | 307 ++++++++
.../migrationtest/postgres10/1.1.sql | 237 ++++++
.../postgres10/1.2__dropsFor_1.1.sql | 40 +
.../migrationtest/postgres10/1.3.sql | 141 ++++
.../postgres10/1.4__dropsFor_1.3.sql | 91 +++
.../postgres10/R__multi_comments.sql | 3 +
.../postgres10/R__order_views.sql | 7 +
.../postgres10/R__pg_indexes.sql | 4 +
.../migrationtest/postgres9/1.0__initial.sql | 307 ++++++++
.../migrationtest/postgres9/1.1.sql | 237 ++++++
.../postgres9/1.2__dropsFor_1.1.sql | 40 +
.../migrationtest/postgres9/1.3.sql | 141 ++++
.../postgres9/1.4__dropsFor_1.3.sql | 91 +++
.../postgres9/R__multi_comments.sql | 3 +
.../postgres9/R__order_views.sql | 7 +
.../migrationtest/postgres9/R__pg_indexes.sql | 4 +
src/test/resources/ebean.properties | 6 +
53 files changed, 2274 insertions(+), 577 deletions(-)
create mode 100644 src/main/java/io/ebean/config/dbplatform/postgres/Postgres9Platform.java
create mode 100644 src/main/java/io/ebeaninternal/api/PlatformMatch.java
create mode 100644 src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Postgres9Ddl.java
create mode 100644 src/test/java/io/ebeaninternal/api/PlatformMatchTest.java
create mode 100644 src/test/java/main/StartPostgres9.java
create mode 100644 src/test/resources/dbmigration/migrationtest/mysql55/R__order_views.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres10/1.0__initial.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres10/1.1.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres10/1.2__dropsFor_1.1.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres10/1.3.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres10/1.4__dropsFor_1.3.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres10/R__multi_comments.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres10/R__order_views.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres10/R__pg_indexes.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres9/1.0__initial.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres9/1.1.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres9/1.2__dropsFor_1.1.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres9/1.3.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres9/1.4__dropsFor_1.3.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres9/R__multi_comments.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres9/R__order_views.sql
create mode 100644 src/test/resources/dbmigration/migrationtest/postgres9/R__pg_indexes.sql
diff --git a/pom.xml b/pom.xml
index c9c9687e6..c47919e2e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -88,7 +88,7 @@
io.ebean
ebean-annotation
- 6.4
+ 6.5
diff --git a/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java b/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java
index 369be3917..b97adadc7 100644
--- a/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java
+++ b/src/main/java/io/ebean/config/dbplatform/DatabasePlatform.java
@@ -278,7 +278,7 @@ public class DatabasePlatform {
* Return true if this matches the given platform.
*/
public boolean isPlatform(Platform platform) {
- return this.platform == platform;
+ return this.platform.base() == platform;
}
/**
diff --git a/src/main/java/io/ebean/config/dbplatform/postgres/Postgres9Platform.java b/src/main/java/io/ebean/config/dbplatform/postgres/Postgres9Platform.java
new file mode 100644
index 000000000..47d554621
--- /dev/null
+++ b/src/main/java/io/ebean/config/dbplatform/postgres/Postgres9Platform.java
@@ -0,0 +1,14 @@
+package io.ebean.config.dbplatform.postgres;
+
+import io.ebean.annotation.Platform;
+
+/**
+ * Postgres9 platform - uses serial type for identity columns.
+ */
+public class Postgres9Platform extends PostgresPlatform {
+
+ public Postgres9Platform() {
+ super();
+ this.platform = Platform.POSTGRES9;
+ }
+}
diff --git a/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java b/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java
index 05fe2d026..66e64dc91 100644
--- a/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java
+++ b/src/main/java/io/ebean/config/dbplatform/postgres/PostgresPlatform.java
@@ -19,16 +19,15 @@ import java.sql.SQLException;
import java.sql.Types;
/**
- * Postgres v9 specific platform.
+ * Postgres 10+ specific platform.
*
- * Uses serial types and getGeneratedKeys.
- *
+ * Defaults to use "generated by default as identity".
*/
public class PostgresPlatform extends DatabasePlatform {
public PostgresPlatform() {
super();
- this.platform = Platform.POSTGRES;
+ this.platform = Platform.POSTGRES10;
this.supportsNativeIlike = true;
this.supportsDeleteTableAlias = true;
this.selectCountWithAlias = true;
diff --git a/src/main/java/io/ebeaninternal/api/PlatformMatch.java b/src/main/java/io/ebeaninternal/api/PlatformMatch.java
new file mode 100644
index 000000000..a333008e9
--- /dev/null
+++ b/src/main/java/io/ebeaninternal/api/PlatformMatch.java
@@ -0,0 +1,27 @@
+package io.ebeaninternal.api;
+
+import io.ebean.annotation.Platform;
+import io.ebean.util.StringHelper;
+
+public class PlatformMatch {
+
+ /**
+ * Return true if the script platforms is a match/supported for the given platform.
+ *
+ * @param platform The database platform we are generating/running DDL for
+ * @param platforms The platforms (comma delimited) this script should run for
+ */
+ public static boolean matchPlatform(Platform platform, String platforms) {
+ if (platforms == null || platforms.trim().isEmpty()) {
+ return true;
+ }
+
+ // match on base platform name and platform name
+ for (String name : StringHelper.splitNames(platforms)) {
+ if (name.equalsIgnoreCase(platform.base().name()) || name.equalsIgnoreCase(platform.name())) {
+ return true;
+ }
+ }
+ return false;
+ }
+}
diff --git a/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java
index 95ed4c942..132e357cb 100644
--- a/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java
+++ b/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java
@@ -1,9 +1,9 @@
package io.ebeaninternal.dbmigration;
+import io.ebean.annotation.Platform;
import io.ebean.config.DbMigrationConfig;
import io.ebean.config.ServerConfig;
import io.ebean.config.dbplatform.DatabasePlatform;
-import io.ebean.migration.ddl.DdlAutoCommit;
import io.ebean.migration.ddl.DdlRunner;
import io.ebean.migration.runner.ScriptTransform;
import io.ebean.util.JdbcClose;
@@ -48,6 +48,7 @@ public class DdlGenerator {
private final boolean ddlAutoCommit;
private final String dbSchema;
private final ScriptTransform scriptTransform;
+ private final Platform platform;
private final String platformName;
private CurrentModel currentModel;
@@ -63,7 +64,8 @@ public class DdlGenerator {
this.createOnly = serverConfig.isDdlCreateOnly();
this.dbSchema = serverConfig.getDbSchema();
final DatabasePlatform databasePlatform = server.getDatabasePlatform();
- this.platformName = databasePlatform.getPlatform().base().name();
+ this.platform = databasePlatform.getPlatform();
+ this.platformName = platform.base().name();
if (!serverConfig.getTenantMode().isDdlEnabled() && serverConfig.isDdlRun()) {
log.warn("DDL can't be run on startup with TenantMode " + serverConfig.getTenantMode());
this.runDdl = false;
@@ -188,7 +190,7 @@ public class DdlGenerator {
protected void runDropSql(Connection connection) throws IOException {
if (!createOnly) {
if (extraDdl && jaxbPresent) {
- String extraApply = ExtraDdlXmlReader.buildExtra(server.getDatabasePlatform().getName(), true);
+ String extraApply = ExtraDdlXmlReader.buildExtra(platform, true);
if (extraApply != null) {
runScript(connection, false, extraApply, "extra-ddl");
}
@@ -209,13 +211,13 @@ public class DdlGenerator {
if (extraDdl && jaxbPresent) {
if (currentModel().isTablePartitioning()) {
- String extraPartitioning = ExtraDdlXmlReader.buildPartitioning(server.getDatabasePlatform().getName());
+ String extraPartitioning = ExtraDdlXmlReader.buildPartitioning(platform);
if (extraPartitioning != null && !extraPartitioning.isEmpty()) {
runScript(connection, false, extraPartitioning, "builtin-partitioning-ddl");
}
}
- String extraApply = ExtraDdlXmlReader.buildExtra(server.getDatabasePlatform().getName(), false);
+ String extraApply = ExtraDdlXmlReader.buildExtra(platform, false);
if (extraApply != null) {
runScript(connection, false, extraApply, "extra-ddl");
}
diff --git a/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java b/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java
index f57cdb5de..dec46fef6 100644
--- a/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java
+++ b/src/main/java/io/ebeaninternal/dbmigration/DefaultDbMigration.java
@@ -19,6 +19,7 @@ import io.ebean.config.dbplatform.mysql.MySql55Platform;
import io.ebean.config.dbplatform.mysql.MySqlPlatform;
import io.ebean.config.dbplatform.nuodb.NuoDbPlatform;
import io.ebean.config.dbplatform.oracle.OraclePlatform;
+import io.ebean.config.dbplatform.postgres.Postgres9Platform;
import io.ebean.config.dbplatform.postgres.PostgresPlatform;
import io.ebean.config.dbplatform.sqlanywhere.SqlAnywherePlatform;
import io.ebean.config.dbplatform.sqlite.SQLitePlatform;
@@ -49,6 +50,8 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import static io.ebeaninternal.api.PlatformMatch.matchPlatform;
+
/**
* Generates DB Migration xml and sql scripts.
*
@@ -406,7 +409,7 @@ public class DefaultDbMigration implements DbMigration {
if (extraDdl != null) {
List ddlScript = extraDdl.getDdlScript();
for (DdlScript script : ddlScript) {
- if (!script.isDrop() && ExtraDdlXmlReader.matchPlatform(dbPlatform.getName(), script.getPlatforms())) {
+ if (!script.isDrop() && matchPlatform(dbPlatform.getPlatform(), script.getPlatforms())) {
writeExtraDdl(migrationDir, script);
}
}
@@ -812,7 +815,10 @@ public class DefaultDbMigration implements DbMigration {
return new H2Platform();
case HSQLDB:
return new HsqldbPlatform();
+ case POSTGRES9:
+ return new Postgres9Platform();
case POSTGRES:
+ case POSTGRES10:
return new PostgresPlatform();
case MYSQL55:
return new MySql55Platform();
diff --git a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java
index 2bdaab066..6f7e09b37 100644
--- a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java
+++ b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/BaseTableDdl.java
@@ -1,5 +1,6 @@
package io.ebeaninternal.dbmigration.ddlgeneration.platform;
+import io.ebean.annotation.Platform;
import io.ebean.config.DbConstraintNaming;
import io.ebean.config.NamingConvention;
import io.ebean.config.ServerConfig;
@@ -37,6 +38,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import static io.ebeaninternal.api.PlatformMatch.matchPlatform;
import static io.ebeaninternal.dbmigration.ddlgeneration.platform.SplitColumns.split;
/**
@@ -168,18 +170,14 @@ public class BaseTableDdl implements TableDdl {
}
private List getScriptsForPlatform(List scripts) {
- String searchPlatform = platformDdl.getPlatform().getName();
- List ret = Collections.emptyList();
+ Platform searchPlatform = platformDdl.getPlatform().getPlatform();
for (DdlScript script : scripts) {
- if (script.getPlatforms() == null || script.getPlatforms().isEmpty()) {
- ret = script.getDdl();
- } else for (String platform : StringHelper.splitNames(script.getPlatforms())) {
- if (platform.equals(searchPlatform)) {
- return script.getDdl();
- }
+ if (matchPlatform(searchPlatform, script.getPlatforms())) {
+ // just returns the first match (rather than appends them)
+ return script.getDdl();
}
}
- return ret;
+ return Collections.emptyList();
}
/**
@@ -511,16 +509,7 @@ public class BaseTableDdl implements TableDdl {
}
private boolean platformInclude(String platforms) {
- if (platforms == null || platforms.isEmpty()) {
- return true;
- }
- String currentPlatform = platformDdl.getPlatform().getPlatform().name();
- for (String name : StringHelper.splitNames(platforms)) {
- if (currentPlatform.equalsIgnoreCase(name)) {
- return true;
- }
- }
- return false;
+ return matchPlatform(platformDdl.getPlatform().getPlatform(), platforms);
}
/**
diff --git a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Oracle10Ddl.java b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Oracle10Ddl.java
index 9481660ea..c09a95108 100644
--- a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Oracle10Ddl.java
+++ b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Oracle10Ddl.java
@@ -19,7 +19,7 @@ public class Oracle10Ddl extends PlatformDdl {
this.columnSetNotnull = "not null";
this.columnSetNull = "null";
this.columnSetDefault = "default";
- this.identitySuffix = " generated always as identity";
+ this.identitySuffix = " generated by default as identity";
}
@Override
diff --git a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java
index dc99cbed5..0b29db556 100644
--- a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java
+++ b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PlatformDdl.java
@@ -21,8 +21,6 @@ import io.ebeaninternal.dbmigration.migration.Column;
import io.ebeaninternal.dbmigration.migration.DropHistoryTable;
import io.ebeaninternal.dbmigration.migration.IdentityType;
import io.ebeaninternal.dbmigration.model.MTable;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import java.io.IOException;
import java.util.Collection;
@@ -33,8 +31,6 @@ import java.util.List;
*/
public class PlatformDdl {
- private static final Logger logger = LoggerFactory.getLogger(PlatformDdl.class);
-
protected final DatabasePlatform platform;
protected PlatformHistoryDdl historyDdl = new NoHistorySupportDdl();
@@ -572,7 +568,6 @@ public class PlatformDdl {
*
*/
public String alterColumnType(String tableName, String columnName, String type) {
-
return "alter table " + tableName + " " + alterColumn + " " + columnName + " " + columnSetType + convert(type, false) + alterColumnSuffix;
}
@@ -583,7 +578,6 @@ public class PlatformDdl {
*
*/
public String alterColumnNotnull(String tableName, String columnName, boolean notnull) {
-
String suffix = notnull ? columnSetNotnull : columnSetNull;
return "alter table " + tableName + " " + alterColumn + " " + columnName + " " + suffix + alterColumnSuffix;
}
@@ -592,7 +586,6 @@ public class PlatformDdl {
* Alter table adding the check constraint.
*/
public String alterTableAddCheckConstraint(String tableName, String checkConstraintName, String checkConstraint) {
-
return "alter table " + tableName + " " + addConstraint + " " + maxConstraintName(checkConstraintName) + " " + checkConstraint;
}
@@ -627,12 +620,6 @@ public class PlatformDdl {
buffer.append(")");
}
- protected void appendWithSpace(String content, StringBuilder buffer) {
- if (hasValue(content)) {
- buffer.append(" ").append(content);
- }
- }
-
/**
* Convert the table to lower case.
*
diff --git a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Postgres9Ddl.java b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Postgres9Ddl.java
new file mode 100644
index 000000000..89bd55bdc
--- /dev/null
+++ b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/Postgres9Ddl.java
@@ -0,0 +1,27 @@
+package io.ebeaninternal.dbmigration.ddlgeneration.platform;
+
+import io.ebean.config.dbplatform.DatabasePlatform;
+
+public class Postgres9Ddl extends PostgresDdl {
+
+ public Postgres9Ddl(DatabasePlatform platform) {
+ super(platform);
+ }
+
+ /**
+ * Map bigint, integer and smallint into their equivalent serial types.
+ */
+ @Override
+ public String asIdentityColumn(String columnDefn) {
+ if ("bigint".equalsIgnoreCase(columnDefn)) {
+ return "bigserial";
+ }
+ if ("integer".equalsIgnoreCase(columnDefn)) {
+ return "serial";
+ }
+ if ("smallint".equalsIgnoreCase(columnDefn)) {
+ return "smallserial";
+ }
+ return columnDefn;
+ }
+}
diff --git a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java
index 8a36b57b7..b77145041 100644
--- a/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java
+++ b/src/main/java/io/ebeaninternal/dbmigration/ddlgeneration/platform/PostgresDdl.java
@@ -21,6 +21,7 @@ public class PostgresDdl extends PlatformDdl {
this.columnSetNull = "drop not null";
this.addForeignKeySkipCheck = " not valid";
this.indexConcurrent = "concurrently ";
+ this.identitySuffix = " generated by default as identity";
}
public String setLockTimeout(int lockTimeoutSeconds) {
@@ -37,23 +38,6 @@ public class PostgresDdl extends PlatformDdl {
return NativeDbArray.logicalToNative(logicalArrayType);
}
- /**
- * Map bigint, integer and smallint into their equivalent serial types.
- */
- @Override
- public String asIdentityColumn(String columnDefn) {
- if ("bigint".equalsIgnoreCase(columnDefn)) {
- return "bigserial";
- }
- if ("integer".equalsIgnoreCase(columnDefn)) {
- return "serial";
- }
- if ("smallint".equalsIgnoreCase(columnDefn)) {
- return "smallserial";
- }
- return columnDefn;
- }
-
@Override
public void addTablePartition(DdlBuffer apply, String partitionMode, String partitionColumn) throws IOException {
apply.append(" partition by range (").append(partitionColumn).append(")");
diff --git a/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java b/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java
index 726220cac..9ac2478ba 100644
--- a/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java
+++ b/src/main/java/io/ebeaninternal/dbmigration/model/CurrentModel.java
@@ -17,6 +17,8 @@ import io.ebeaninternal.extraddl.model.ExtraDdlXmlReader;
import java.io.IOException;
import java.util.List;
+import static io.ebeaninternal.api.PlatformMatch.matchPlatform;
+
/**
* Reads EbeanServer bean descriptors to build the current model.
*/
@@ -146,7 +148,7 @@ public class CurrentModel {
if (extraDdl != null) {
List ddlScript = extraDdl.getDdlScript();
for (DdlScript script : ddlScript) {
- if (script.isInit() && ExtraDdlXmlReader.matchPlatform(server.getDatabasePlatform().getName(), script.getPlatforms())) {
+ if (script.isInit() && matchPlatform(server.getDatabasePlatform().getPlatform(), script.getPlatforms())) {
ddl.append(prefix).append(script.getName()).append('\n');
ddl.append(script.getValue());
}
diff --git a/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java b/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java
index 34b7381a5..eac6284d5 100644
--- a/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java
+++ b/src/main/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReader.java
@@ -1,7 +1,6 @@
package io.ebeaninternal.extraddl.model;
import io.ebean.annotation.Platform;
-import io.ebean.util.StringHelper;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -11,6 +10,8 @@ import javax.xml.bind.Unmarshaller;
import java.io.IOException;
import java.io.InputStream;
+import static io.ebeaninternal.api.PlatformMatch.matchPlatform;
+
/**
* Read ExtraDdl from an XML document.
*/
@@ -18,25 +19,21 @@ public class ExtraDdlXmlReader {
private static final Logger logger = LoggerFactory.getLogger(ExtraDdlXmlReader.class);
- private static final String SQLSERVER = Platform.SQLSERVER.name().toLowerCase();
-
/**
* Return the combined extra DDL that should be run given the platform name.
*/
- public static String buildExtra(String platformName, boolean drops) {
-
- ExtraDdl read = ExtraDdlXmlReader.read("/extra-ddl.xml");
- return buildExtra(platformName, drops, read);
+ public static String buildExtra(Platform platform, boolean drops) {
+ return buildExtra(platform, drops, read("/extra-ddl.xml"));
}
/**
* Return any extra DDL for supporting partitioning given the database platform.
*/
- public static String buildPartitioning(String platformName) {
- return buildExtra(platformName, false, readBuiltinTablePartitioning());
+ public static String buildPartitioning(Platform platform) {
+ return buildExtra(platform, false, readBuiltinTablePartitioning());
}
- private static String buildExtra(String platformName, boolean drops, ExtraDdl read) {
+ private static String buildExtra(Platform platform, boolean drops, ExtraDdl read) {
if (read == null) {
return null;
@@ -44,7 +41,7 @@ public class ExtraDdlXmlReader {
StringBuilder sb = new StringBuilder(300);
for (DdlScript script : read.getDdlScript()) {
- if (script.isDrop() == drops && matchPlatform(platformName, script.getPlatforms())) {
+ if (script.isDrop() == drops && matchPlatform(platform, script.getPlatforms())) {
logger.debug("include script {}", script.getName());
String value = script.getValue();
sb.append(value);
@@ -58,44 +55,6 @@ public class ExtraDdlXmlReader {
return sb.toString();
}
- /**
- * Return true if the script platforms is a match/supported for the given platform.
- *
- * @param platformName The database platform we are generating/running DDL for
- * @param platforms The platforms (comma delimited) this script should run for
- */
- public static boolean matchPlatform(String platformName, String platforms) {
- if (platforms == null || platforms.trim().isEmpty()) {
- return true;
- }
-
- String genericMatch = genericPlatformMatch(platformName);
-
- for (String name : StringHelper.splitNames(platforms)) {
- if (name.toLowerCase().contains(platformName)) {
- return true;
- } else if (genericMatch != null && genericMatch.equals(name.toLowerCase())) {
- // allow sqlserver ... to match sqlserver17 and sqlserver16 platforms
- return true;
- }
- }
- return false;
- }
-
- /**
- * Return a "generic" platform name that can be used. e.g. sqlserver17 -> sqlserver.
- */
- private static String genericPlatformMatch(String platformName) {
- switch (platformName) {
- case "sqlserver17":
- return SQLSERVER;
- case "sqlserver16":
- return SQLSERVER;
- default:
- return null;
- }
- }
-
/**
* Read the builtin extra ddl. (Stored procedures, tvp types etc)
*/
diff --git a/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java b/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java
index 88c172875..9c0e4b439 100644
--- a/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java
+++ b/src/main/java/io/ebeaninternal/server/core/DatabasePlatformFactory.java
@@ -13,6 +13,7 @@ import io.ebean.config.dbplatform.mysql.MySqlPlatform;
import io.ebean.config.dbplatform.nuodb.NuoDbPlatform;
import io.ebean.config.dbplatform.oracle.OraclePlatform;
import io.ebean.config.dbplatform.postgres.Postgres8Platform;
+import io.ebean.config.dbplatform.postgres.Postgres9Platform;
import io.ebean.config.dbplatform.postgres.PostgresPlatform;
import io.ebean.config.dbplatform.sqlanywhere.SqlAnywherePlatform;
import io.ebean.config.dbplatform.sqlite.SQLitePlatform;
@@ -166,7 +167,7 @@ public class DatabasePlatformFactory {
} else if (dbProductName.contains("hsql database engine")) {
return new HsqldbPlatform();
} else if (dbProductName.contains("postgres")) {
- return readPostgres(connection);
+ return readPostgres(connection, majorVersion);
} else if (dbProductName.contains("nuo")) {
return new NuoDbPlatform();
} else if (dbProductName.contains("sqlite")) {
@@ -195,28 +196,23 @@ public class DatabasePlatformFactory {
/**
* Use a select version() query as it could be Postgres or CockroachDB.
*/
- private static DatabasePlatform readPostgres(Connection connection) {
- // Postgres driver uses a hardcoded product name so use version() query
- PreparedStatement statement = null;
- ResultSet resultSet = null;
- try {
- statement = connection.prepareStatement("SELECT version() AS \"version\"");
- resultSet = statement.executeQuery();
- if (resultSet.next()) {
- String productVersion = resultSet.getString("version").toLowerCase();
- if (productVersion.contains("cockroach")) {
- return new CockroachPlatform();
+ private static DatabasePlatform readPostgres(Connection connection, int majorVersion) {
+ try (PreparedStatement statement = connection.prepareStatement("select version() as \"version\"")) {
+ try (ResultSet resultSet = statement.executeQuery()) {
+ if (resultSet.next()) {
+ String productVersion = resultSet.getString("version").toLowerCase();
+ if (productVersion.contains("cockroach")) {
+ return new CockroachPlatform();
+ }
}
}
} catch (SQLException e) {
logger.warn("Error running detection query on Postgres", e);
-
- } finally {
- JdbcClose.close(resultSet);
- JdbcClose.close(statement);
}
- // Real Postgres
+ if (majorVersion <= 9) {
+ return new Postgres9Platform();
+ }
return new PostgresPlatform();
}
}
diff --git a/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java b/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java
index d422fe6df..811a36acf 100644
--- a/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java
+++ b/src/main/java/io/ebeaninternal/server/core/InternalConfiguration.java
@@ -343,7 +343,7 @@ public class InternalConfiguration {
private MultiValueBind createMultiValueBind(Platform platform) {
// only Postgres at this stage
- if (platform == Platform.POSTGRES) {
+ if (platform.base() == Platform.POSTGRES) {
return new PostgresMultiValueBind();
}
return new MultiValueBind();
diff --git a/src/main/java/io/ebeaninternal/server/core/PlatformDdlBuilder.java b/src/main/java/io/ebeaninternal/server/core/PlatformDdlBuilder.java
index f6aadfa83..543d9bf02 100644
--- a/src/main/java/io/ebeaninternal/server/core/PlatformDdlBuilder.java
+++ b/src/main/java/io/ebeaninternal/server/core/PlatformDdlBuilder.java
@@ -11,6 +11,7 @@ import io.ebeaninternal.dbmigration.ddlgeneration.platform.MySqlDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.NuoDbDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.Oracle10Ddl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PlatformDdl;
+import io.ebeaninternal.dbmigration.ddlgeneration.platform.Postgres9Ddl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.PostgresDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.SQLiteDdl;
import io.ebeaninternal.dbmigration.ddlgeneration.platform.SqlServerDdl;
@@ -41,14 +42,13 @@ public class PlatformDdlBuilder {
return new Oracle10Ddl(platform);
case SQLITE:
return new SQLiteDdl(platform);
- case GENERIC:
- return new PlatformDdl(platform);
+ case POSTGRES9:
+ return new Postgres9Ddl(platform);
case POSTGRES:
+ case POSTGRES10:
return new PostgresDdl(platform);
case COCKROACH:
return new CockroachDdl(platform);
- case SQLANYWHERE:
- return new PlatformDdl(platform);
case SQLSERVER16:
case SQLSERVER17:
case SQLSERVER:
diff --git a/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java b/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java
index 14bcb1e95..0d7872416 100644
--- a/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java
+++ b/src/main/java/io/ebeaninternal/server/expression/platform/DbExpressionHandlerFactory.java
@@ -16,6 +16,8 @@ public class DbExpressionHandlerFactory {
case H2:
return new H2DbExpression();
case POSTGRES:
+ case POSTGRES9:
+ case POSTGRES10:
return new PostgresDbExpression();
case MYSQL55:
case MYSQL:
diff --git a/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java b/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java
index 7a4f91cd3..bada29fe1 100644
--- a/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java
+++ b/src/main/java/io/ebeaninternal/server/type/DefaultTypeManager.java
@@ -264,7 +264,7 @@ public final class DefaultTypeManager implements TypeManager {
}
private boolean isPostgres(DatabasePlatform databasePlatform) {
- return databasePlatform.getPlatform() == Platform.POSTGRES;
+ return databasePlatform.getPlatform().base() == Platform.POSTGRES;
}
/**
diff --git a/src/test/ddl-review/pg-create-all.sql b/src/test/ddl-review/pg-create-all.sql
index 996afc929..723b44fee 100644
--- a/src/test/ddl-review/pg-create-all.sql
+++ b/src/test/ddl-review/pg-create-all.sql
@@ -1,13 +1,13 @@
--- Generated by ebean unknown at 2020-01-29T03:58:42.859353Z
+-- Generated by ebean unknown at 2020-01-29T09:37:27.117523Z
create table asimple_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_asimple_bean primary key (id)
);
create table bar (
bar_type varchar(31) not null,
- bar_id serial not null,
+ bar_id integer generated by default as identity not null,
foo_id integer not null,
version integer not null,
constraint pk_bar primary key (bar_id)
@@ -15,7 +15,7 @@ create table bar (
create table block (
case_type integer not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
notes varchar(255),
@@ -23,7 +23,7 @@ create table block (
);
create table oto_account (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -32,20 +32,20 @@ create table oto_account (
);
create table acl (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_acl primary key (id)
);
create table acl_container_relation (
- id bigserial not null,
+ id bigint generated by default as identity not null,
container_id bigint not null,
acl_entry_id bigint not null,
constraint pk_acl_container_relation primary key (id)
);
create table addr (
- id bigserial not null,
+ id bigint generated by default as identity not null,
employee_id bigint,
name varchar(255),
address_line1 varchar(255),
@@ -56,14 +56,14 @@ create table addr (
);
create table address (
- oid bigserial not null,
+ oid bigint generated by default as identity not null,
street varchar(255),
version integer not null,
constraint pk_address primary key (oid)
);
create table o_address (
- id serial not null,
+ id integer generated by default as identity not null,
line_1 varchar(100),
line_2 varchar(100),
city varchar(100),
@@ -74,7 +74,7 @@ create table o_address (
);
create table album (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
cover_id bigint,
deleted boolean default false not null,
@@ -86,7 +86,7 @@ create table album (
create table animal (
species varchar(255) not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
shelter_id bigint,
version bigint not null,
name varchar(255),
@@ -97,14 +97,14 @@ create table animal (
);
create table animal_shelter (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_animal_shelter primary key (id)
);
create table article (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
author varchar(255),
cretime timestamptz not null,
@@ -115,7 +115,7 @@ create table article (
create table attribute (
option_type integer not null,
- id serial not null,
+ id integer generated by default as identity not null,
attribute_holder_id integer,
cretime timestamptz not null,
updtime timestamptz not null,
@@ -124,7 +124,7 @@ create table attribute (
);
create table attribute_holder (
- id serial not null,
+ id integer generated by default as identity not null,
cretime timestamptz not null,
updtime timestamptz not null,
version bigint not null,
@@ -132,27 +132,27 @@ create table attribute_holder (
);
create table audit_log (
- id bigserial not null,
+ id bigint generated by default as identity not null,
description varchar(255),
modified_description varchar(255),
constraint pk_audit_log primary key (id)
);
create table bbookmark (
- id serial not null,
+ id integer generated by default as identity not null,
bookmark_reference varchar(255),
user_id integer,
constraint pk_bbookmark primary key (id)
);
create table bbookmark_org (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_bbookmark_org primary key (id)
);
create table bbookmark_user (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
password varchar(255),
email_address varchar(255),
@@ -162,7 +162,7 @@ create table bbookmark_user (
);
create table bsimple_with_gen (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_bsimple_with_gen primary key (id)
);
@@ -220,7 +220,7 @@ create table buser (
);
create table bwith_qident (
- id serial not null,
+ id integer generated by default as identity not null,
"Name" varchar(191),
"CODE" varchar(255),
last_updated timestamptz not null,
@@ -229,7 +229,7 @@ create table bwith_qident (
);
create table basic_draftable_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -238,7 +238,7 @@ create table basic_draftable_bean (
);
create table basic_draftable_bean_draft (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -247,7 +247,7 @@ create table basic_draftable_bean_draft (
);
create table basic_joda_entity (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
period varchar(50),
local_date date,
@@ -258,7 +258,7 @@ create table basic_joda_entity (
);
create table bean_with_time_zone (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
timezone varchar(20),
constraint pk_bean_with_time_zone primary key (id)
@@ -278,7 +278,7 @@ create table drel_booking (
create sequence drel_booking_seq;
create table bw_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
flags integer not null,
version bigint not null,
@@ -286,14 +286,14 @@ create table bw_bean (
);
create table cepcategory (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_cepcategory primary key (id)
);
create table cepproduct (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_cepproduct primary key (id)
@@ -308,7 +308,7 @@ create table cepproduct_category (
);
create table cinh_ref (
- id serial not null,
+ id integer generated by default as identity not null,
ref_id integer,
cretime timestamptz not null,
updtime timestamptz not null,
@@ -318,7 +318,7 @@ create table cinh_ref (
create table cinh_root (
dtype varchar(3) not null,
- id serial not null,
+ id integer generated by default as identity not null,
license_number varchar(255),
cretime timestamptz not null,
updtime timestamptz not null,
@@ -330,13 +330,13 @@ create table cinh_root (
);
create table ckey_assoc (
- id serial not null,
+ id integer generated by default as identity not null,
assoc_one varchar(255),
constraint pk_ckey_assoc primary key (id)
);
create table ckey_detail (
- id serial not null,
+ id integer generated by default as identity not null,
something varchar(255),
one_key integer,
two_key varchar(127),
@@ -353,13 +353,13 @@ create table ckey_parent (
);
create table coone (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_coone primary key (id)
);
create table coone_many (
- id bigserial not null,
+ id bigint generated by default as identity not null,
coone_id bigint not null,
name varchar(255),
deleted boolean default false not null,
@@ -367,7 +367,7 @@ create table coone_many (
);
create table coroot (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
one_id bigint,
constraint uq_coroot_one_id unique (one_id),
@@ -375,7 +375,7 @@ create table coroot (
);
create table calculation_result (
- id serial not null,
+ id integer generated by default as identity not null,
charge float not null,
product_configuration_id integer,
group_configuration_id integer,
@@ -420,7 +420,7 @@ create table sa_car (
create sequence sa_car_seq;
create table car_accessory (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
fuse_id bigint not null,
car_id integer,
@@ -431,13 +431,13 @@ create table car_accessory (
);
create table car_fuse (
- id bigserial not null,
+ id bigint generated by default as identity not null,
location_code varchar(255),
constraint pk_car_fuse primary key (id)
);
create table category (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
surveyobjectid bigint,
sequence_number integer not null,
@@ -445,7 +445,7 @@ create table category (
);
create table e_save_test_d (
- id bigserial not null,
+ id bigint generated by default as identity not null,
parent_id bigint,
test_property boolean default false not null,
version bigint not null,
@@ -454,7 +454,7 @@ create table e_save_test_d (
);
create table child_person (
- identifier serial not null,
+ identifier integer generated by default as identity not null,
name varchar(255),
age integer,
some_bean_id integer,
@@ -481,7 +481,7 @@ create table cke_user (
create table class_super (
dtype varchar(31) not null,
- sid bigserial not null,
+ sid bigint generated by default as identity not null,
constraint pk_class_super primary key (sid)
);
@@ -494,7 +494,7 @@ create table class_super_monkey (
create table configuration (
type varchar(21) not null,
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
configurations_id integer,
group_name varchar(255),
@@ -503,13 +503,13 @@ create table configuration (
);
create table configurations (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_configurations primary key (id)
);
create table contact (
- id serial not null,
+ id integer generated by default as identity not null,
first_name varchar(127),
last_name varchar(127),
phone varchar(255),
@@ -524,7 +524,7 @@ create table contact (
);
create table contact_group (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
cretime timestamptz not null,
updtime timestamptz not null,
@@ -533,7 +533,7 @@ create table contact_group (
);
create table contact_note (
- id serial not null,
+ id integer generated by default as identity not null,
contact_id integer,
title varchar(255),
note text,
@@ -544,20 +544,20 @@ create table contact_note (
);
create table contract (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_contract primary key (id)
);
create table contract_costs (
- id bigserial not null,
+ id bigint generated by default as identity not null,
status varchar(255),
position_id bigint not null,
constraint pk_contract_costs primary key (id)
);
create table c_conversation (
- id bigserial not null,
+ id bigint generated by default as identity not null,
title varchar(255),
isopen boolean default false not null,
group_id bigint,
@@ -574,14 +574,14 @@ create table o_country (
);
create table cover (
- id bigserial not null,
+ id bigint generated by default as identity not null,
s3_url varchar(255),
deleted boolean default false not null,
constraint pk_cover primary key (id)
);
create table o_customer (
- id serial not null,
+ id integer generated by default as identity not null,
status varchar(1),
name varchar(40) not null,
smallnote varchar(100),
@@ -600,7 +600,7 @@ comment on column o_customer.smallnote is 'Short notes regarding the customer';
comment on column o_customer.anniversary is 'Join date of the customer';
create table dcredit (
- id bigserial not null,
+ id bigint generated by default as identity not null,
credit varchar(255),
constraint pk_dcredit primary key (id)
);
@@ -612,7 +612,7 @@ create table dcredit_drol (
);
create table dexh_entity (
- oid bigserial not null,
+ oid bigint generated by default as identity not null,
exhange varchar(255),
an_enum_type varchar(255),
last_updated timestamptz not null,
@@ -621,14 +621,14 @@ create table dexh_entity (
create table dint_parent (
type integer not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
val integer,
more varchar(255),
constraint pk_dint_parent primary key (id)
);
create table dmachine (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
organisation_id bigint,
version bigint not null,
@@ -636,7 +636,7 @@ create table dmachine (
);
create table d_machine_aux_use (
- id bigserial not null,
+ id bigint generated by default as identity not null,
machine_id bigint not null,
name varchar(255),
date date,
@@ -647,7 +647,7 @@ create table d_machine_aux_use (
);
create table d_machine_stats (
- id bigserial not null,
+ id bigint generated by default as identity not null,
machine_id bigint not null,
date date,
total_kms bigint not null,
@@ -659,7 +659,7 @@ create table d_machine_stats (
);
create table d_machine_use (
- id bigserial not null,
+ id bigint generated by default as identity not null,
machine_id bigint not null,
date date,
distance_kms bigint not null,
@@ -670,14 +670,14 @@ create table d_machine_use (
);
create table dorg (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_dorg primary key (id)
);
create table dperson (
- id bigserial not null,
+ id bigint generated by default as identity not null,
first_name varchar(255),
last_name varchar(255),
salary decimal(38),
@@ -685,13 +685,13 @@ create table dperson (
);
create table drol (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_drol primary key (id)
);
create table drot (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_drot primary key (id)
);
@@ -703,7 +703,7 @@ create table drot_drol (
);
create table rawinherit_data (
- id bigserial not null,
+ id bigint generated by default as identity not null,
val integer,
constraint pk_rawinherit_data primary key (id)
);
@@ -715,7 +715,7 @@ create table data_container (
);
create table dc_detail (
- id bigserial not null,
+ id bigint generated by default as identity not null,
master_id bigint,
description varchar(255),
version bigint not null,
@@ -723,41 +723,41 @@ create table dc_detail (
);
create table dc_master (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_dc_master primary key (id)
);
create table dfk_cascade (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
one_id bigint,
constraint pk_dfk_cascade primary key (id)
);
create table dfk_cascade_one (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_dfk_cascade_one primary key (id)
);
create table dfk_none (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
one_id bigint,
constraint pk_dfk_none primary key (id)
);
create table dfk_none_via_join (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
one_id bigint,
constraint pk_dfk_none_via_join primary key (id)
);
create table dfk_none_via_mto_m (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_dfk_none_via_mto_m primary key (id)
);
@@ -769,20 +769,20 @@ create table dfk_none_via_mto_m_dfk_one (
);
create table dfk_one (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_dfk_one primary key (id)
);
create table dfk_set_null (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
one_id bigint,
constraint pk_dfk_set_null primary key (id)
);
create table doc (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -803,7 +803,7 @@ create table doc_link_draft (
);
create table doc_draft (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -812,7 +812,7 @@ create table doc_draft (
);
create table document (
- id bigserial not null,
+ id bigint generated by default as identity not null,
title varchar(127),
body varchar(255),
organisation_id bigint,
@@ -824,7 +824,7 @@ create table document (
);
create table document_draft (
- id bigserial not null,
+ id bigint generated by default as identity not null,
title varchar(127),
body varchar(255),
when_publish timestamptz,
@@ -837,7 +837,7 @@ create table document_draft (
);
create table document_media (
- id bigserial not null,
+ id bigint generated by default as identity not null,
document_id bigint,
name varchar(255),
description varchar(255),
@@ -848,7 +848,7 @@ create table document_media (
);
create table document_media_draft (
- id bigserial not null,
+ id bigint generated by default as identity not null,
document_id bigint,
name varchar(255),
description varchar(255),
@@ -867,7 +867,7 @@ create table sp_car_door (
create sequence sp_car_door_seq;
create table earray_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
foo integer,
name varchar(255),
phone_numbers varchar[],
@@ -884,7 +884,7 @@ create table earray_bean (
);
create table earray_set_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
phone_numbers varchar[],
uids uuid[],
@@ -895,7 +895,7 @@ create table earray_set_bean (
);
create table e_basic (
- id serial not null,
+ id integer generated by default as identity not null,
status varchar(1),
name varchar(127),
description varchar(255),
@@ -905,7 +905,7 @@ create table e_basic (
);
create table ebasic_change_log (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(20),
short_description varchar(50),
long_description varchar(100),
@@ -918,7 +918,7 @@ create table ebasic_change_log (
);
create table ebasic_clob (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
title varchar(255),
description text,
@@ -927,7 +927,7 @@ create table ebasic_clob (
);
create table ebasic_clob_fetch_eager (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
title varchar(255),
description text,
@@ -936,14 +936,14 @@ create table ebasic_clob_fetch_eager (
);
create table ebasic_clob_no_ver (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
description text,
constraint pk_ebasic_clob_no_ver primary key (id)
);
create table e_basicenc (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
description bytea,
dob bytea,
@@ -953,7 +953,7 @@ create table e_basicenc (
);
create table e_basicenc_bin (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
description varchar(255),
data bytea,
@@ -963,7 +963,7 @@ create table e_basicenc_bin (
);
create table e_basicenc_client (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
description bytea,
dob bytea,
@@ -973,7 +973,7 @@ create table e_basicenc_client (
);
create table e_basicenc_relate (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
other_id integer,
constraint pk_e_basicenc_relate primary key (id)
@@ -988,7 +988,7 @@ create table e_basic_enum_id (
);
create table e_basic_eni (
- id serial not null,
+ id integer generated by default as identity not null,
status integer,
name varchar(255),
description varchar(255),
@@ -998,7 +998,7 @@ create table e_basic_eni (
);
create table ebasic_hstore (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
map hstore,
version bigint not null,
@@ -1006,7 +1006,7 @@ create table ebasic_hstore (
);
create table ebasic_json_jackson (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
value_set json,
value_list jsonb,
@@ -1017,7 +1017,7 @@ create table ebasic_json_jackson (
);
create table ebasic_json_jackson2 (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
value_set json,
value_list jsonb,
@@ -1028,7 +1028,7 @@ create table ebasic_json_jackson2 (
);
create table ebasic_json_list (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
bean_set json,
bean_list jsonb,
@@ -1041,7 +1041,7 @@ create table ebasic_json_list (
);
create table ebasic_json_map (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
content json,
version bigint not null,
@@ -1049,7 +1049,7 @@ create table ebasic_json_map (
);
create table ebasic_json_map_blob (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
content bytea,
version bigint not null,
@@ -1057,7 +1057,7 @@ create table ebasic_json_map_blob (
);
create table ebasic_json_map_clob (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
content text,
version bigint not null,
@@ -1065,7 +1065,7 @@ create table ebasic_json_map_clob (
);
create table ebasic_json_map_detail (
- id bigserial not null,
+ id bigint generated by default as identity not null,
owner_id bigint,
name varchar(255),
content json,
@@ -1074,7 +1074,7 @@ create table ebasic_json_map_detail (
);
create table ebasic_json_map_json_b (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
content jsonb,
version bigint not null,
@@ -1082,7 +1082,7 @@ create table ebasic_json_map_json_b (
);
create table ebasic_json_map_varchar (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
content varchar(3000),
version bigint not null,
@@ -1090,7 +1090,7 @@ create table ebasic_json_map_varchar (
);
create table ebasic_json_node (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
content json,
version bigint not null,
@@ -1098,7 +1098,7 @@ create table ebasic_json_node (
);
create table ebasic_json_node_blob (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
content bytea,
version bigint not null,
@@ -1106,7 +1106,7 @@ create table ebasic_json_node_blob (
);
create table ebasic_json_node_json_b (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
content jsonb,
version bigint not null,
@@ -1114,7 +1114,7 @@ create table ebasic_json_node_json_b (
);
create table ebasic_json_node_varchar (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
content varchar(1000),
version bigint not null,
@@ -1122,20 +1122,20 @@ create table ebasic_json_node_varchar (
);
create table ebasic_json_unmapped (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_ebasic_json_unmapped primary key (id)
);
create table e_basic_ndc (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_e_basic_ndc primary key (id)
);
create table ebasic_no_sdchild (
- id bigserial not null,
+ id bigint generated by default as identity not null,
owner_id bigint not null,
child_name varchar(255),
amount bigint not null,
@@ -1144,7 +1144,7 @@ create table ebasic_no_sdchild (
);
create table ebasic_sdchild (
- id bigserial not null,
+ id bigint generated by default as identity not null,
owner_id bigint not null,
child_name varchar(255),
amount bigint not null,
@@ -1154,7 +1154,7 @@ create table ebasic_sdchild (
);
create table ebasic_soft_delete (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
description varchar(255),
version bigint not null,
@@ -1163,7 +1163,7 @@ create table ebasic_soft_delete (
);
create table e_basicver (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
description varchar(255),
other varchar(255),
@@ -1172,7 +1172,7 @@ create table e_basicver (
);
create table e_basic_withlife (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
other varchar(255),
deleted boolean default false not null,
@@ -1181,14 +1181,14 @@ create table e_basic_withlife (
);
create table e_basic_with_ex (
- id bigserial not null,
+ id bigint generated by default as identity not null,
deleted boolean default false not null,
version bigint not null,
constraint pk_e_basic_with_ex primary key (id)
);
create table e_basicverucon (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(127),
other varchar(127),
other_one varchar(127),
@@ -1213,7 +1213,7 @@ create table ecache_root (
);
create table e_col_ab (
- id bigserial not null,
+ id bigint generated by default as identity not null,
column_a varchar(255),
column_b varchar(255),
constraint pk_e_col_ab primary key (id)
@@ -1226,7 +1226,7 @@ create table ecustom_id (
);
create table edefault_prop (
- id serial not null,
+ id integer generated by default as identity not null,
e_simple_usertypeid integer,
name varchar(255),
constraint uq_edefault_prop_e_simple_usertypeid unique (e_simple_usertypeid),
@@ -1234,7 +1234,7 @@ create table edefault_prop (
);
create table eemb_inner (
- id serial not null,
+ id integer generated by default as identity not null,
nome_inner varchar(255),
outer_id integer,
update_count integer not null,
@@ -1242,7 +1242,7 @@ create table eemb_inner (
);
create table eemb_outer (
- id serial not null,
+ id integer generated by default as identity not null,
nome_outer varchar(255),
date1 timestamptz,
date2 timestamptz,
@@ -1276,7 +1276,7 @@ create table efile_no_fk_euser_no_fk_soft_del (
);
create table egen_props (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -1297,7 +1297,7 @@ create table egen_props (
);
create table eid_uid_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
uuid uuid not null,
name varchar(255),
constraint uq_eid_uid_bean_uuid unique (uuid),
@@ -1305,7 +1305,7 @@ create table eid_uid_bean (
);
create table einvoice (
- id bigserial not null,
+ id bigint generated by default as identity not null,
invoice_date timestamptz,
state integer,
person_id bigint,
@@ -1325,7 +1325,7 @@ create table einvoice (
);
create table e_main (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
description varchar(255),
version bigint not null,
@@ -1333,20 +1333,20 @@ create table e_main (
);
create table enull_collection (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_enull_collection primary key (id)
);
create table enull_collection_detail (
- id serial not null,
+ id integer generated by default as identity not null,
enull_collection_id integer not null,
something varchar(255),
constraint pk_enull_collection_detail primary key (id)
);
create table eopt_one_a (
- id serial not null,
+ id integer generated by default as identity not null,
name_for_a varchar(255),
b_id integer,
cretime timestamptz not null,
@@ -1356,7 +1356,7 @@ create table eopt_one_a (
);
create table eopt_one_b (
- id serial not null,
+ id integer generated by default as identity not null,
name_for_b varchar(255),
c_id integer not null,
cretime timestamptz not null,
@@ -1366,7 +1366,7 @@ create table eopt_one_b (
);
create table eopt_one_c (
- id serial not null,
+ id integer generated by default as identity not null,
name_for_c varchar(255),
cretime timestamptz not null,
updtime timestamptz not null,
@@ -1375,7 +1375,7 @@ create table eopt_one_c (
);
create table eper_addr (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
ma_street varchar(255),
ma_suburb varchar(255),
@@ -1386,7 +1386,7 @@ create table eper_addr (
);
create table eperson (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
notes varchar(255),
street varchar(255),
@@ -1399,7 +1399,7 @@ create table eperson (
);
create table e_person_online (
- id bigserial not null,
+ id bigint generated by default as identity not null,
email varchar(127),
online_status boolean default false not null,
when_updated timestamptz not null,
@@ -1408,13 +1408,13 @@ create table e_person_online (
);
create table esimple (
- usertypeid serial not null,
+ usertypeid integer generated by default as identity not null,
name varchar(255),
constraint pk_esimple primary key (usertypeid)
);
create table esoft_del_book (
- id bigserial not null,
+ id bigint generated by default as identity not null,
book_title varchar(255),
lend_by_id bigint,
version bigint not null,
@@ -1429,7 +1429,7 @@ create table esoft_del_book_esoft_del_user (
);
create table esoft_del_down (
- id bigserial not null,
+ id bigint generated by default as identity not null,
esoft_del_mid_id bigint not null,
down varchar(255),
version bigint not null,
@@ -1438,7 +1438,7 @@ create table esoft_del_down (
);
create table esoft_del_mid (
- id bigserial not null,
+ id bigint generated by default as identity not null,
top_id bigint,
mid varchar(255),
up_id bigint,
@@ -1448,7 +1448,7 @@ create table esoft_del_mid (
);
create table esoft_del_one_a (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
oneb_id bigint,
deleted boolean default false not null,
@@ -1458,14 +1458,14 @@ create table esoft_del_one_a (
);
create table esoft_del_one_b (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_esoft_del_one_b primary key (id)
);
create table esoft_del_role (
- id bigserial not null,
+ id bigint generated by default as identity not null,
role_name varchar(255),
version bigint not null,
deleted boolean default false not null,
@@ -1479,7 +1479,7 @@ create table esoft_del_role_esoft_del_user (
);
create table esoft_del_top (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
deleted boolean default false not null,
@@ -1487,7 +1487,7 @@ create table esoft_del_top (
);
create table esoft_del_up (
- id bigserial not null,
+ id bigint generated by default as identity not null,
up varchar(255),
version bigint not null,
deleted boolean default false not null,
@@ -1495,7 +1495,7 @@ create table esoft_del_up (
);
create table esoft_del_user (
- id bigserial not null,
+ id bigint generated by default as identity not null,
user_name varchar(255),
version bigint not null,
deleted boolean default false not null,
@@ -1509,14 +1509,14 @@ create table esoft_del_user_esoft_del_role (
);
create table esome_convert_type (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
money decimal(38),
constraint pk_esome_convert_type primary key (id)
);
create table esome_type (
- id serial not null,
+ id integer generated by default as identity not null,
currency varchar(3),
locale varchar(20),
time_zone varchar(20),
@@ -1524,13 +1524,13 @@ create table esome_type (
);
create table etrans_many (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_etrans_many primary key (id)
);
create table rawinherit_uncle (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
parent_id bigint not null,
version bigint not null,
@@ -1538,32 +1538,32 @@ create table rawinherit_uncle (
);
create table euser_no_fk (
- user_id serial not null,
+ user_id integer generated by default as identity not null,
user_name varchar(255),
constraint pk_euser_no_fk primary key (user_id)
);
create table euser_no_fk_soft_del (
- user_id serial not null,
+ user_id integer generated by default as identity not null,
user_name varchar(255),
constraint pk_euser_no_fk_soft_del primary key (user_id)
);
create table evanilla_collection (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_evanilla_collection primary key (id)
);
create table evanilla_collection_detail (
- id serial not null,
+ id integer generated by default as identity not null,
evanilla_collection_id integer not null,
something varchar(255),
constraint pk_evanilla_collection_detail primary key (id)
);
create table ewho_props (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -1574,7 +1574,7 @@ create table ewho_props (
);
create table e_withinet (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
inet_address inet,
inet2 inet,
@@ -1584,7 +1584,7 @@ create table e_withinet (
);
create table ec_enum_person (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_ec_enum_person primary key (id)
@@ -1597,7 +1597,7 @@ create table ec_enum_person_tags (
);
create table ec_person (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_ec_person primary key (id)
@@ -1609,7 +1609,7 @@ create table ec_person_phone (
);
create table ec_top (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
person_id bigint,
version bigint not null,
@@ -1623,7 +1623,7 @@ create table ec_top_ecs_person (
);
create table ecbl_person (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_ecbl_person primary key (id)
@@ -1637,7 +1637,7 @@ create table ecbl_person_phone_numbers (
);
create table ecbm_person (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_ecbm_person primary key (id)
@@ -1652,7 +1652,7 @@ create table ecbm_person_phone_numbers (
);
create table ecm_person (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_ecm_person primary key (id)
@@ -1665,7 +1665,7 @@ create table ecm_person_phone_numbers (
);
create table ecmc_person (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_ecmc_person primary key (id)
@@ -1678,7 +1678,7 @@ create table ecmc_person_phone_numbers (
);
create table ecs_person (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_ecs_person primary key (id)
@@ -1710,7 +1710,7 @@ create table ecsm_one (
);
create table ecsm_parent (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_ecsm_parent primary key (id)
@@ -1724,7 +1724,7 @@ create table ecsm_two (
);
create table td_child (
- child_id serial not null,
+ child_id integer generated by default as identity not null,
child_name varchar(255),
parent_id integer not null,
constraint pk_td_child primary key (child_id)
@@ -1732,21 +1732,21 @@ create table td_child (
create table td_parent (
parent_type varchar(31) not null,
- parent_id serial not null,
+ parent_id integer generated by default as identity not null,
parent_name varchar(255),
extended_name varchar(255),
constraint pk_td_parent primary key (parent_id)
);
create table element_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
complex_bean_id uuid not null,
value varchar(255) not null,
constraint pk_element_bean primary key (id)
);
create table empl (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
age integer,
default_address_id bigint,
@@ -1754,7 +1754,7 @@ create table empl (
);
create table esd_detail (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
master_id bigint not null,
version bigint not null,
@@ -1763,7 +1763,7 @@ create table esd_detail (
);
create table esd_master (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
deleted boolean default false not null,
@@ -1771,27 +1771,27 @@ create table esd_master (
);
create table feature_desc (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
description varchar(255),
constraint pk_feature_desc primary key (id)
);
create table f_first (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_f_first primary key (id)
);
create table foo (
- foo_id serial not null,
+ foo_id integer generated by default as identity not null,
important_text varchar(255),
version integer not null,
constraint pk_foo primary key (foo_id)
);
create table gen_key_identity (
- id bigserial not null,
+ id bigint generated by default as identity not null,
description varchar(255),
constraint pk_gen_key_identity primary key (id)
);
@@ -1804,13 +1804,13 @@ create table gen_key_sequence (
create sequence SEQ;
create table gen_key_table (
- id bigserial not null,
+ id bigint generated by default as identity not null,
description varchar(255),
constraint pk_gen_key_table primary key (id)
);
create table grand_parent_person (
- identifier serial not null,
+ identifier integer generated by default as identity not null,
name varchar(255),
age integer,
some_bean_id integer,
@@ -1820,7 +1820,7 @@ create table grand_parent_person (
);
create table survey_group (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
categoryobjectid bigint,
sequence_number integer not null,
@@ -1828,7 +1828,7 @@ create table survey_group (
);
create table c_group (
- id bigserial not null,
+ id bigint generated by default as identity not null,
inactive boolean default false not null,
name varchar(255),
version bigint not null,
@@ -1838,7 +1838,7 @@ create table c_group (
);
create table he_doc (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -1847,7 +1847,7 @@ create table he_doc (
);
create table hx_link (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
location varchar(255),
comments varchar(255),
@@ -1865,7 +1865,7 @@ create table hx_link_doc (
);
create table hi_doc (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -1874,7 +1874,7 @@ create table hi_doc (
);
create table hi_link (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
location varchar(255),
comments varchar(255),
@@ -1891,7 +1891,7 @@ create table hi_link_doc (
);
create table hi_tone (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
comments varchar(255),
version bigint not null,
@@ -1901,7 +1901,7 @@ create table hi_tone (
);
create table hi_tthree (
- id bigserial not null,
+ id bigint generated by default as identity not null,
hi_ttwo_id bigint not null,
three varchar(255),
version bigint not null,
@@ -1911,7 +1911,7 @@ create table hi_tthree (
);
create table hi_ttwo (
- id bigserial not null,
+ id bigint generated by default as identity not null,
hi_tone_id bigint not null,
two varchar(255),
version bigint not null,
@@ -1921,7 +1921,7 @@ create table hi_ttwo (
);
create table hsd_setting (
- id bigserial not null,
+ id bigint generated by default as identity not null,
code varchar(255),
content varchar(255),
user_id bigint,
@@ -1934,7 +1934,7 @@ create table hsd_setting (
);
create table hsd_user (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -1945,20 +1945,20 @@ create table hsd_user (
create table iaf_segment (
ptype varchar(31) not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
segment_id_zat bigint not null,
status_id bigint not null,
constraint pk_iaf_segment primary key (id)
);
create table iaf_segment_status (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_iaf_segment_status primary key (id)
);
create table imrelated (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
owner_id bigint not null,
constraint pk_imrelated primary key (id)
@@ -1966,7 +1966,7 @@ create table imrelated (
create table imroot (
dtype varchar(31) not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
title varchar(255),
when_title timestamptz,
@@ -1981,14 +1981,14 @@ create table ixresource (
);
create table info_company (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_info_company primary key (id)
);
create table info_contact (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
company_id bigint not null,
version bigint not null,
@@ -1996,7 +1996,7 @@ create table info_contact (
);
create table info_customer (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
company_id bigint,
version bigint not null,
@@ -2005,7 +2005,7 @@ create table info_customer (
);
create table inner_report (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
forecast_id bigint,
constraint uq_inner_report_forecast_id unique (forecast_id),
@@ -2036,7 +2036,7 @@ create table item (
);
create table monkey (
- mid bigserial not null,
+ mid bigint generated by default as identity not null,
name varchar(255),
food_preference varchar(255),
version bigint not null,
@@ -2044,7 +2044,7 @@ create table monkey (
);
create table mkeygroup (
- pid bigserial not null,
+ pid bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_mkeygroup primary key (pid)
@@ -2058,7 +2058,7 @@ create table mkeygroup_monkey (
);
create table trainer (
- tid bigserial not null,
+ tid bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_trainer primary key (tid)
@@ -2072,7 +2072,7 @@ create table trainer_monkey (
);
create table troop (
- pid bigserial not null,
+ pid bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_troop primary key (pid)
@@ -2086,19 +2086,19 @@ create table troop_monkey (
);
create table l2_cldf_reset_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_l2_cldf_reset_bean primary key (id)
);
create table l2_cldf_reset_bean_child (
- id bigserial not null,
+ id bigint generated by default as identity not null,
parent_id bigint,
constraint pk_l2_cldf_reset_bean_child primary key (id)
);
create table level1 (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_level1 primary key (id)
);
@@ -2116,7 +2116,7 @@ create table level1_level2 (
);
create table level2 (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_level2 primary key (id)
);
@@ -2128,19 +2128,19 @@ create table level2_level3 (
);
create table level3 (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_level3 primary key (id)
);
create table level4 (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_level4 primary key (id)
);
create table link (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
location varchar(255),
when_publish timestamptz,
@@ -2153,7 +2153,7 @@ create table link (
);
create table link_draft (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
location varchar(255),
when_publish timestamptz,
@@ -2167,7 +2167,7 @@ create table link_draft (
);
create table la_attr_value (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
cretime timestamptz not null,
updtime timestamptz not null,
@@ -2182,7 +2182,7 @@ create table la_attr_value_attribute (
);
create table looney (
- id bigserial not null,
+ id bigint generated by default as identity not null,
tune_id bigint,
name varchar(255),
constraint pk_looney primary key (id)
@@ -2227,13 +2227,13 @@ create table mcustomer (
);
create table mgroup (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_mgroup primary key (id)
);
create table mmachine (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_mmachine primary key (id)
@@ -2247,14 +2247,14 @@ create table mmachine_mgroup (
create table mmedia (
type varchar(31) not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
url varchar(255),
note varchar(255),
constraint pk_mmedia primary key (id)
);
create table non_updateprop (
- id serial not null,
+ id integer generated by default as identity not null,
non_enum varchar(5),
name varchar(255),
note varchar(255),
@@ -2263,7 +2263,7 @@ create table non_updateprop (
);
create table mprinter (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
flags bigint not null,
current_state_id bigint,
@@ -2280,7 +2280,7 @@ create table mprinter (
);
create table mprinter_state (
- id bigserial not null,
+ id bigint generated by default as identity not null,
flags bigint not null,
printer_id bigint,
version bigint not null,
@@ -2288,20 +2288,20 @@ create table mprinter_state (
);
create table mprofile (
- id bigserial not null,
+ id bigint generated by default as identity not null,
picture_id bigint,
name varchar(255),
constraint pk_mprofile primary key (id)
);
create table mprotected_construct_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_mprotected_construct_bean primary key (id)
);
create table mrole (
- roleid serial not null,
+ roleid integer generated by default as identity not null,
role_name varchar(255),
constraint pk_mrole primary key (roleid)
);
@@ -2313,33 +2313,33 @@ create table mrole_muser (
);
create table msome_other (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_msome_other primary key (id)
);
create table muser (
- userid serial not null,
+ userid integer generated by default as identity not null,
user_name varchar(255),
user_type_id integer,
constraint pk_muser primary key (userid)
);
create table muser_type (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_muser_type primary key (id)
);
create table mail_box (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_mail_box primary key (id)
);
create table mail_user (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_mail_user primary key (id)
@@ -2373,7 +2373,7 @@ create table main_entity_relation (
);
create table map_super_actual (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
when_created timestamptz not null,
when_updated timestamptz not null,
@@ -2381,7 +2381,7 @@ create table map_super_actual (
);
create table c_message (
- id bigserial not null,
+ id bigint generated by default as identity not null,
title varchar(255),
body varchar(255),
conversation_id bigint,
@@ -2429,14 +2429,14 @@ create table meter_version (
);
create table mnoc_role (
- role_id serial not null,
+ role_id integer generated by default as identity not null,
role_name varchar(255),
version integer not null,
constraint pk_mnoc_role primary key (role_id)
);
create table mnoc_user (
- user_id serial not null,
+ user_id integer generated by default as identity not null,
user_name varchar(255),
version integer not null,
constraint pk_mnoc_user primary key (user_id)
@@ -2449,7 +2449,7 @@ create table mnoc_user_mnoc_role (
);
create table mny_a (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -2458,7 +2458,7 @@ create table mny_a (
);
create table mny_b (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
a_id bigint,
version bigint not null,
@@ -2474,7 +2474,7 @@ create table mny_b_mny_c (
);
create table mny_c (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -2483,7 +2483,7 @@ create table mny_c (
);
create table mny_topic (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_mny_topic primary key (id)
@@ -2496,7 +2496,7 @@ create table subtopics (
);
create table mp_role (
- id bigserial not null,
+ id bigint generated by default as identity not null,
mp_user_id bigint not null,
code varchar(255),
organization_id bigint,
@@ -2504,13 +2504,13 @@ create table mp_role (
);
create table mp_user (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_mp_user primary key (id)
);
create table ms_many_a (
- aid bigserial not null,
+ aid bigint generated by default as identity not null,
name varchar(255),
ms_many_a_many_b boolean default false not null,
ms_many_b boolean default false not null,
@@ -2525,7 +2525,7 @@ create table ms_many_a_many_b (
);
create table ms_many_b (
- bid bigserial not null,
+ bid bigint generated by default as identity not null,
name varchar(255),
deleted boolean default false not null,
constraint pk_ms_many_b primary key (bid)
@@ -2538,7 +2538,7 @@ create table ms_many_b_many_a (
);
create table my_lob_size (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
my_count integer not null,
my_lob text,
@@ -2546,7 +2546,7 @@ create table my_lob_size (
);
create table my_lob_size_join_many (
- id serial not null,
+ id integer generated by default as identity not null,
something varchar(255),
other varchar(255),
parent_id integer,
@@ -2560,13 +2560,13 @@ create table noidbean (
);
create table o_bean_child (
- id bigserial not null,
+ id bigint generated by default as identity not null,
cached_bean_id bigint,
constraint pk_o_bean_child primary key (id)
);
create table ocached_app (
- id bigserial not null,
+ id bigint generated by default as identity not null,
app_name varchar(255),
version bigint not null,
constraint uq_ocached_app_app_name unique (app_name),
@@ -2574,7 +2574,7 @@ create table ocached_app (
);
create table ocached_app_detail (
- id bigserial not null,
+ id bigint generated by default as identity not null,
app_id bigint not null,
detail varchar(255),
version bigint not null,
@@ -2583,7 +2583,7 @@ create table ocached_app_detail (
);
create table o_cached_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_o_cached_bean primary key (id)
);
@@ -2595,14 +2595,14 @@ create table o_cached_bean_country (
);
create table o_cached_bean_child (
- id bigserial not null,
+ id bigint generated by default as identity not null,
cached_bean_id bigint,
constraint pk_o_cached_bean_child primary key (id)
);
create table o_cached_inherit (
dtype varchar(31) not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
child_adata varchar(255),
child_bdata varchar(255),
@@ -2610,7 +2610,7 @@ create table o_cached_inherit (
);
create table o_cached_natkey (
- id bigserial not null,
+ id bigint generated by default as identity not null,
store varchar(255),
sku varchar(255),
description varchar(255),
@@ -2618,7 +2618,7 @@ create table o_cached_natkey (
);
create table o_cached_natkey3 (
- id bigserial not null,
+ id bigint generated by default as identity not null,
store varchar(255),
code integer not null,
sku varchar(255),
@@ -2627,7 +2627,7 @@ create table o_cached_natkey3 (
);
create table ocached_nkey_uid (
- id bigserial not null,
+ id bigint generated by default as identity not null,
uid uuid,
other varchar(255),
version bigint not null,
@@ -2635,7 +2635,7 @@ create table ocached_nkey_uid (
);
create table ocar (
- id serial not null,
+ id integer generated by default as identity not null,
vin varchar(255),
name varchar(255),
cretime timestamptz not null,
@@ -2645,7 +2645,7 @@ create table ocar (
);
create table ocompany (
- id serial not null,
+ id integer generated by default as identity not null,
corp_id varchar(50),
cretime timestamptz not null,
updtime timestamptz not null,
@@ -2686,7 +2686,7 @@ create table omvertex_other (
);
create table oroad_show_msg (
- id serial not null,
+ id integer generated by default as identity not null,
company_id integer not null,
cretime timestamptz not null,
updtime timestamptz not null,
@@ -2696,20 +2696,20 @@ create table oroad_show_msg (
);
create table om_account_child_dbo (
- id bigserial not null,
+ id bigint generated by default as identity not null,
description varchar(255),
banana_rama_id bigint,
constraint pk_om_account_child_dbo primary key (id)
);
create table om_account_dbo (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_om_account_dbo primary key (id)
);
create table om_basic_child (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
parent_id bigint,
version bigint not null,
@@ -2717,14 +2717,14 @@ create table om_basic_child (
);
create table om_basic_parent (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_om_basic_parent primary key (id)
);
create table om_ordered_detail (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
master_id bigint,
version bigint not null,
@@ -2733,19 +2733,19 @@ create table om_ordered_detail (
);
create table om_ordered_master (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_om_ordered_master primary key (id)
);
create table only_id_entity (
- id bigserial not null,
+ id bigint generated by default as identity not null,
constraint pk_only_id_entity primary key (id)
);
create table o_order (
- id serial not null,
+ id integer generated by default as identity not null,
status integer,
order_date date,
ship_date date,
@@ -2757,7 +2757,7 @@ create table o_order (
);
create table o_order_detail (
- id serial not null,
+ id integer generated by default as identity not null,
order_id integer not null,
order_qty integer,
ship_qty integer,
@@ -2783,7 +2783,7 @@ create table s_order_items (
);
create table or_order_ship (
- id serial not null,
+ id integer generated by default as identity not null,
order_id integer,
ship_time timestamptz,
cretime timestamptz not null,
@@ -2793,7 +2793,7 @@ create table or_order_ship (
);
create table organisation (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -2803,7 +2803,7 @@ create table organisation (
create table organization_node (
kind varchar(31) not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
parent_tree_node_id bigint not null,
title varchar(255),
constraint uq_organization_node_parent_tree_node_id unique (parent_tree_node_id),
@@ -2811,7 +2811,7 @@ create table organization_node (
);
create table organization_tree_node (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_organization_tree_node primary key (id)
);
@@ -2868,13 +2868,13 @@ create table oto_bchild (
);
create table oto_bmaster (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_oto_bmaster primary key (id)
);
create table oto_child (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
master_id bigint,
constraint uq_oto_child_master_id unique (master_id),
@@ -2882,14 +2882,14 @@ create table oto_child (
);
create table oto_cust (
- cid bigserial not null,
+ cid bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_oto_cust primary key (cid)
);
create table oto_cust_address (
- aid bigserial not null,
+ aid bigint generated by default as identity not null,
line1 varchar(255),
line2 varchar(255),
line3 varchar(255),
@@ -2900,7 +2900,7 @@ create table oto_cust_address (
);
create table oto_level_a (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
b_id bigint,
constraint uq_oto_level_a_b_id unique (b_id),
@@ -2908,7 +2908,7 @@ create table oto_level_a (
);
create table oto_level_b (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
c_id bigint,
constraint uq_oto_level_b_c_id unique (c_id),
@@ -2916,19 +2916,19 @@ create table oto_level_b (
);
create table oto_level_c (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_oto_level_c primary key (id)
);
create table oto_master (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_oto_master primary key (id)
);
create table oto_prime (
- pid bigserial not null,
+ pid bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_oto_prime primary key (pid)
@@ -2942,7 +2942,7 @@ create table oto_prime_extra (
);
create table oto_sd_child (
- id bigserial not null,
+ id bigint generated by default as identity not null,
child varchar(255),
master_id bigint,
deleted boolean default false not null,
@@ -2952,14 +2952,14 @@ create table oto_sd_child (
);
create table oto_sd_master (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_oto_sd_master primary key (id)
);
create table oto_th_many (
- id bigserial not null,
+ id bigint generated by default as identity not null,
oto_th_top_id bigint not null,
many varchar(255),
version bigint not null,
@@ -2969,7 +2969,7 @@ create table oto_th_many (
);
create table oto_th_one (
- id bigserial not null,
+ id bigint generated by default as identity not null,
one boolean default false not null,
many_id bigint,
version bigint not null,
@@ -2980,7 +2980,7 @@ create table oto_th_one (
);
create table oto_th_top (
- id bigserial not null,
+ id bigint generated by default as identity not null,
topp varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -3017,7 +3017,7 @@ create table oto_uprime_extra (
);
create table oto_user_model (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
user_optional_id bigint,
version bigint not null,
@@ -3028,7 +3028,7 @@ create table oto_user_model (
);
create table oto_user_model_optional (
- id bigserial not null,
+ id bigint generated by default as identity not null,
optional varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -3037,7 +3037,7 @@ create table oto_user_model_optional (
);
create table pfile (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
file_content_id integer,
file_content2_id integer,
@@ -3050,7 +3050,7 @@ create table pfile (
);
create table pfile_content (
- id serial not null,
+ id integer generated by default as identity not null,
content bytea,
cretime timestamptz not null,
updtime timestamptz not null,
@@ -3066,20 +3066,20 @@ create table paggview (
create table pallet_location (
type varchar(31) not null,
- id serial not null,
+ id integer generated by default as identity not null,
zone_sid integer not null,
attribute varchar(255),
constraint pk_pallet_location primary key (id)
);
create table parcel (
- parcelid bigserial not null,
+ parcelid bigint generated by default as identity not null,
description varchar(255),
constraint pk_parcel primary key (parcelid)
);
create table parcel_location (
- parcellocid bigserial not null,
+ parcellocid bigint generated by default as identity not null,
location varchar(255),
parcelid bigint,
constraint uq_parcel_location_parcelid unique (parcelid),
@@ -3088,7 +3088,7 @@ create table parcel_location (
create table rawinherit_parent (
type varchar(31) not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
val integer,
more varchar(255),
constraint pk_rawinherit_parent primary key (id)
@@ -3101,13 +3101,13 @@ create table rawinherit_parent_rawinherit_data (
);
create table e_save_test_c (
- id bigserial not null,
+ id bigint generated by default as identity not null,
version bigint not null,
constraint pk_e_save_test_c primary key (id)
);
create table parent_person (
- identifier serial not null,
+ identifier integer generated by default as identity not null,
name varchar(255),
age integer,
some_bean_id integer,
@@ -3118,7 +3118,7 @@ create table parent_person (
);
create table c_participation (
- id bigserial not null,
+ id bigint generated by default as identity not null,
rating integer,
type integer,
conversation_id bigint not null,
@@ -3131,7 +3131,7 @@ create table c_participation (
);
create table password_store_model (
- id bigserial not null,
+ id bigint generated by default as identity not null,
enc1 varchar(30),
enc2 varchar(40),
enc3 text,
@@ -3145,14 +3145,14 @@ create table password_store_model (
);
create table pcf_calendar (
- id bigserial not null,
+ id bigint generated by default as identity not null,
pcf_person_id bigint not null,
version bigint not null,
constraint pk_pcf_calendar primary key (id)
);
create table pcf_city (
- id bigserial not null,
+ id bigint generated by default as identity not null,
pcf_country_id bigint not null,
name varchar(255),
mayor_id bigint not null,
@@ -3164,13 +3164,13 @@ create table pcf_city (
);
create table pcf_country (
- id bigserial not null,
+ id bigint generated by default as identity not null,
version bigint not null,
constraint pk_pcf_country primary key (id)
);
create table pcf_event (
- id bigserial not null,
+ id bigint generated by default as identity not null,
pcf_calendar_id bigint not null,
name varchar(255),
version bigint not null,
@@ -3178,7 +3178,7 @@ create table pcf_event (
);
create table pcf_person (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_pcf_person primary key (id)
@@ -3191,7 +3191,7 @@ create table mt_permission (
);
create table persistent_file (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
cretime timestamptz not null,
updtime timestamptz not null,
@@ -3200,7 +3200,7 @@ create table persistent_file (
);
create table persistent_file_content (
- id serial not null,
+ id integer generated by default as identity not null,
persistent_file_id integer,
content bytea,
cretime timestamptz not null,
@@ -3211,14 +3211,14 @@ create table persistent_file_content (
);
create table person (
- oid bigserial not null,
+ oid bigint generated by default as identity not null,
default_address_oid bigint,
version integer not null,
constraint pk_person primary key (oid)
);
create table persons (
- id bigserial not null,
+ id bigint generated by default as identity not null,
surname varchar(64) not null,
name varchar(64) not null,
constraint pk_persons primary key (id)
@@ -3238,7 +3238,7 @@ create table person_cache_info (
);
create table phones (
- id bigserial not null,
+ id bigint generated by default as identity not null,
phone_number varchar(7) not null,
person_id bigint not null,
constraint uq_phones_phone_number unique (phone_number),
@@ -3246,7 +3246,7 @@ create table phones (
);
create table e_position (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
contract_id bigint not null,
constraint pk_e_position primary key (id)
@@ -3261,7 +3261,7 @@ create table primary_revision (
);
create table o_product (
- id serial not null,
+ id integer generated by default as identity not null,
sku varchar(20),
name varchar(255),
cretime timestamptz not null,
@@ -3283,7 +3283,7 @@ create table pp_to_ww (
);
create table question (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
groupobjectid bigint,
sequence_number integer not null,
@@ -3319,14 +3319,14 @@ create table region (
);
create table rel_detail (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version integer not null,
constraint pk_rel_detail primary key (id)
);
create table rel_master (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
detail_id bigint,
version integer not null,
@@ -3355,7 +3355,7 @@ create table mt_role_permission (
);
create table em_role (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_em_role primary key (id)
);
@@ -3369,7 +3369,7 @@ create table root_bean (
);
create table f_second (
- id bigserial not null,
+ id bigint generated by default as identity not null,
mod_name varchar(255),
first bigint,
title varchar(255),
@@ -3378,7 +3378,7 @@ create table f_second (
);
create table section (
- id serial not null,
+ id integer generated by default as identity not null,
article_id integer,
type integer,
content text,
@@ -3390,7 +3390,7 @@ create table section (
);
create table self_parent (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
parent_id bigint,
version bigint not null,
@@ -3398,27 +3398,27 @@ create table self_parent (
);
create table self_ref_customer (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
referred_by_id bigint,
constraint pk_self_ref_customer primary key (id)
);
create table self_ref_example (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255) not null,
parent_id bigint,
constraint pk_self_ref_example primary key (id)
);
create table e_save_test_a (
- id bigserial not null,
+ id bigint generated by default as identity not null,
version bigint not null,
constraint pk_e_save_test_a primary key (id)
);
create table e_save_test_b (
- id bigserial not null,
+ id bigint generated by default as identity not null,
sibling_a_id bigint,
test_property boolean default false not null,
version bigint not null,
@@ -3446,7 +3446,7 @@ create table site_address (
);
create table some_enum_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
some_enum integer,
name varchar(255),
constraint ck_some_enum_bean_some_enum check ( some_enum in (0,1)),
@@ -3454,7 +3454,7 @@ create table some_enum_bean (
);
create table some_file_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
content bytea,
version bigint not null,
@@ -3462,7 +3462,7 @@ create table some_file_bean (
);
create table some_new_types_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
dow integer,
mth integer,
yr integer,
@@ -3487,7 +3487,7 @@ create table some_new_types_bean (
);
create table some_period_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
anniversary date,
version bigint not null,
constraint pk_some_period_bean primary key (id)
@@ -3504,13 +3504,13 @@ create table source_base (
create table stockforecast (
type varchar(31) not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
inner_report_id bigint,
constraint pk_stockforecast primary key (id)
);
create table sub_section (
- id serial not null,
+ id integer generated by default as identity not null,
section_id integer,
title varchar(255),
cretime timestamptz not null,
@@ -3520,20 +3520,20 @@ create table sub_section (
);
create table sub_type (
- sub_type_id serial not null,
+ sub_type_id integer generated by default as identity not null,
description varchar(255),
version bigint not null,
constraint pk_sub_type primary key (sub_type_id)
);
create table survey (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_survey primary key (id)
);
create table tbytes_only (
- id serial not null,
+ id integer generated by default as identity not null,
content bytea,
constraint pk_tbytes_only primary key (id)
);
@@ -3546,14 +3546,14 @@ create table tcar (
);
create table tevent (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
constraint pk_tevent primary key (id)
);
create table tevent_many (
- id bigserial not null,
+ id bigint generated by default as identity not null,
description varchar(255),
event_id bigint,
units integer not null,
@@ -3563,7 +3563,7 @@ create table tevent_many (
);
create table tevent_one (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
status integer,
event_id bigint,
@@ -3575,20 +3575,20 @@ create table tevent_one (
create table tint_root (
my_type integer not null,
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
child_property varchar(255),
constraint pk_tint_root primary key (id)
);
create table tjoda_entity (
- id serial not null,
+ id integer generated by default as identity not null,
local_time time,
constraint pk_tjoda_entity primary key (id)
);
create table t_mapsuper1 (
- id serial not null,
+ id integer generated by default as identity not null,
something varchar(255),
name varchar(255),
version integer not null,
@@ -3596,7 +3596,7 @@ create table t_mapsuper1 (
);
create table t_oneb (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
description varchar(255),
active boolean default false not null,
@@ -3625,7 +3625,7 @@ create table t_atable_thatisrelatively (
create sequence t_atable_master_seq;
create table ttruck_holder (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
truck_plate_no varchar(32) not null,
basic_id integer,
@@ -3634,7 +3634,7 @@ create table ttruck_holder (
);
create table ttruck_holder_item (
- id bigserial not null,
+ id bigint generated by default as identity not null,
some_uid uuid,
foo varchar(255),
owner_id bigint not null,
@@ -3648,13 +3648,13 @@ create table tuuid_entity (
);
create table twheel (
- id bigserial not null,
+ id bigint generated by default as identity not null,
owner_plate_no varchar(32) not null,
constraint pk_twheel primary key (id)
);
create table twith_pre_insert (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255) not null,
title varchar(255),
constraint pk_twith_pre_insert primary key (id)
@@ -3701,14 +3701,14 @@ create table sa_tire (
create sequence sa_tire_seq;
create table tree_entity (
- id serial not null,
+ id integer generated by default as identity not null,
text varchar(255),
parent_id integer,
constraint pk_tree_entity primary key (id)
);
create table trip (
- id serial not null,
+ id integer generated by default as identity not null,
vehicle_driver_id integer,
destination varchar(255),
address_id integer,
@@ -3720,13 +3720,13 @@ create table trip (
);
create table truck_ref (
- id serial not null,
+ id integer generated by default as identity not null,
something varchar(255),
constraint pk_truck_ref primary key (id)
);
create table tune (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_tune primary key (id)
);
@@ -3741,7 +3741,7 @@ create table "type" (
);
create table tz_bean (
- id bigserial not null,
+ id bigint generated by default as identity not null,
moda varchar(255),
ts timestamptz,
tstz timestamptz,
@@ -3756,7 +3756,7 @@ create table usib_child (
);
create table usib_child_sibling (
- id bigserial not null,
+ id bigint generated by default as identity not null,
child_id uuid,
deleted boolean default false not null,
constraint uq_usib_child_sibling_child_id unique (child_id),
@@ -3764,13 +3764,13 @@ create table usib_child_sibling (
);
create table usib_parent (
- id bigserial not null,
+ id bigint generated by default as identity not null,
deleted boolean default false not null,
constraint pk_usib_parent primary key (id)
);
create table ut_detail (
- id serial not null,
+ id integer generated by default as identity not null,
utmaster_id integer not null,
name varchar(255),
qty integer,
@@ -3780,7 +3780,7 @@ create table ut_detail (
);
create table ut_master (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
description varchar(255),
date date,
@@ -3806,7 +3806,7 @@ create table uutwo (
);
create table oto_user (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
account_id bigint not null,
version bigint not null,
@@ -3817,7 +3817,7 @@ create table oto_user (
);
create table c_user (
- id bigserial not null,
+ id bigint generated by default as identity not null,
inactive boolean default false not null,
name varchar(255),
email varchar(255),
@@ -3830,20 +3830,20 @@ create table c_user (
);
create table tx_user (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_tx_user primary key (id)
);
create table g_user (
- id bigserial not null,
+ id bigint generated by default as identity not null,
username varchar(255),
version bigint not null,
constraint pk_g_user primary key (id)
);
create table em_user (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_em_user primary key (id)
);
@@ -3856,7 +3856,7 @@ create table em_user_role (
create table vehicle (
dtype varchar(3) not null,
- id serial not null,
+ id integer generated by default as identity not null,
license_number varchar(255),
registration_date timestamptz,
lease_id bigint,
@@ -3874,7 +3874,7 @@ create table vehicle (
);
create table vehicle_driver (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
vehicle_id integer,
address_id integer,
@@ -3887,7 +3887,7 @@ create table vehicle_driver (
create table vehicle_lease (
dtype varchar(31) not null,
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
active_start date,
active_end date,
@@ -3900,7 +3900,7 @@ create table vehicle_lease (
);
create table warehouses (
- id serial not null,
+ id integer generated by default as identity not null,
officezoneid integer,
constraint pk_warehouses primary key (id)
);
@@ -3936,7 +3936,7 @@ create table sp_car_wheel (
create sequence sp_car_wheel_seq;
create table g_who_props_otm (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
version bigint not null,
when_created timestamptz not null,
@@ -3947,7 +3947,7 @@ create table g_who_props_otm (
);
create table with_zero (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
parent_id integer,
lang varchar(2) default 'en' not null,
@@ -3956,7 +3956,7 @@ create table with_zero (
);
create table parent (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_parent primary key (id)
);
@@ -3970,7 +3970,7 @@ create table wview (
create table zones (
type varchar(31) not null,
- id serial not null,
+ id integer generated by default as identity not null,
attribute varchar(255),
constraint pk_zones primary key (id)
);
diff --git a/src/test/ddl-review/pg-drop-all.sql b/src/test/ddl-review/pg-drop-all.sql
index df6f5815b..b2ce7ee84 100644
--- a/src/test/ddl-review/pg-drop-all.sql
+++ b/src/test/ddl-review/pg-drop-all.sql
@@ -1,4 +1,4 @@
--- Generated by ebean unknown at 2020-01-29T03:58:42.859353Z
+-- Generated by ebean unknown at 2020-01-29T09:37:27.117523Z
alter table if exists bar drop constraint if exists fk_bar_foo_id;
drop index if exists ix_bar_foo_id;
diff --git a/src/test/java/io/ebean/BaseTestCase.java b/src/test/java/io/ebean/BaseTestCase.java
index 444ec37ea..6a1077bfc 100644
--- a/src/test/java/io/ebean/BaseTestCase.java
+++ b/src/test/java/io/ebean/BaseTestCase.java
@@ -199,7 +199,7 @@ public abstract class BaseTestCase {
}
public boolean isPostgres() {
- return Platform.POSTGRES == platform();
+ return Platform.POSTGRES == platform().base();
}
public boolean isMySql() {
diff --git a/src/test/java/io/ebean/ConditionalTestRunner.java b/src/test/java/io/ebean/ConditionalTestRunner.java
index 7764cea97..dc207a869 100644
--- a/src/test/java/io/ebean/ConditionalTestRunner.java
+++ b/src/test/java/io/ebean/ConditionalTestRunner.java
@@ -37,13 +37,9 @@ public class ConditionalTestRunner extends BlockJUnit4ClassRunner {
}
private boolean platformMath(Platform[] platforms) {
- Platform current = DB.getDefault().getPluginApi().getDatabasePlatform().getPlatform();
- for (Platform p : platforms) {
- if (p.equals(current)) {
- return true;
- }
- if (p == Platform.SQLSERVER && current == Platform.SQLSERVER17) {
- // treat SQLSERVER as SQLSERVER17 in testing
+ Platform basePlatform = DB.getDefault().getPluginApi().getDatabasePlatform().getPlatform().base();
+ for (Platform platform : platforms) {
+ if (platform.equals(basePlatform)) {
return true;
}
}
diff --git a/src/test/java/io/ebean/config/ServerConfigSqlServerTest.java b/src/test/java/io/ebean/config/ServerConfigSqlServerTest.java
index 7e3e73bba..8f74deaac 100644
--- a/src/test/java/io/ebean/config/ServerConfigSqlServerTest.java
+++ b/src/test/java/io/ebean/config/ServerConfigSqlServerTest.java
@@ -17,7 +17,7 @@ import static org.assertj.core.api.Assertions.assertThat;
public class ServerConfigSqlServerTest {
@Ignore
- @ForPlatform({Platform.SQLSERVER, Platform.SQLSERVER17, Platform.SQLSERVER16})
+ @ForPlatform({Platform.SQLSERVER})
@Test(expected = PersistenceException.class)
public void need_explicitPlatform() {
@@ -55,7 +55,7 @@ public class ServerConfigSqlServerTest {
}
@Ignore
- @ForPlatform({Platform.SQLSERVER, Platform.SQLSERVER17, Platform.SQLSERVER16})
+ @ForPlatform({Platform.SQLSERVER})
@Test
public void explicit_17() {
@@ -85,7 +85,7 @@ public class ServerConfigSqlServerTest {
}
@Ignore
- @ForPlatform({Platform.SQLSERVER, Platform.SQLSERVER17, Platform.SQLSERVER16})
+ @ForPlatform({Platform.SQLSERVER})
@Test
public void explicit_16() {
diff --git a/src/test/java/io/ebean/config/dbplatform/DatabasePlatformTest.java b/src/test/java/io/ebean/config/dbplatform/DatabasePlatformTest.java
index ddfd991a9..3b2ff4eed 100644
--- a/src/test/java/io/ebean/config/dbplatform/DatabasePlatformTest.java
+++ b/src/test/java/io/ebean/config/dbplatform/DatabasePlatformTest.java
@@ -14,7 +14,7 @@ import static org.junit.Assert.assertEquals;
public class DatabasePlatformTest {
@Test
- public void convertQuotedIdentifiers_when_allQuotedIdentifier_sqlServer() throws Exception {
+ public void convertQuotedIdentifiers_when_allQuotedIdentifier_sqlServer() {
ServerConfig config = new ServerConfig();
config.setAllQuotedIdentifiers(true);
@@ -29,7 +29,7 @@ public class DatabasePlatformTest {
}
@Test
- public void convertQuotedIdentifiers() throws Exception {
+ public void convertQuotedIdentifiers() {
ServerConfig config = new ServerConfig();
@@ -46,7 +46,7 @@ public class DatabasePlatformTest {
}
@Test
- public void defaultTypesForDecimalAndVarchar() throws Exception {
+ public void defaultTypesForDecimalAndVarchar() {
DatabasePlatform dbPlatform = new DatabasePlatform();
assertEquals(defaultDecimalDefn(dbPlatform), "decimal(38)");
@@ -54,7 +54,7 @@ public class DatabasePlatformTest {
}
@Test
- public void configure_customType() throws Exception {
+ public void configure_customType() {
PlatformConfig config = new PlatformConfig();
config.addCustomMapping(DbType.VARCHAR, "text", Platform.POSTGRES);
diff --git a/src/test/java/io/ebeaninternal/api/PlatformMatchTest.java b/src/test/java/io/ebeaninternal/api/PlatformMatchTest.java
new file mode 100644
index 000000000..c3c036af4
--- /dev/null
+++ b/src/test/java/io/ebeaninternal/api/PlatformMatchTest.java
@@ -0,0 +1,49 @@
+package io.ebeaninternal.api;
+
+import io.ebean.annotation.Platform;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+
+public class PlatformMatchTest {
+
+
+ @Test
+ public void match() {
+
+ assertTrue(PlatformMatch.matchPlatform(Platform.H2, "h2"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.H2, "mysql,h2"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.H2, "mysql,h2,"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.H2, "mysql , h2 ,"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.H2, "mysql , h2, oracle"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.H2, "mysql , h2, oracle"));
+
+ assertTrue(PlatformMatch.matchPlatform(Platform.SQLSERVER, "sqlserver"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.SQLSERVER17, "sqlserver"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.SQLSERVER16, "sqlserver"));
+
+ assertTrue(PlatformMatch.matchPlatform(Platform.POSTGRES, "postgres"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.POSTGRES9, "postgres"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.POSTGRES10, "postgres"));
+ }
+
+ @Test
+ public void match_sqlserver17_matchAlsoToGenericName() {
+ assertTrue(PlatformMatch.matchPlatform(Platform.SQLSERVER17, "sqlserver"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.SQLSERVER17, "sqlserver17"));
+ }
+
+ @Test
+ public void matchPlatform_sqlserver16_matchAlsoToGenericName() {
+ assertTrue(PlatformMatch.matchPlatform(Platform.SQLSERVER16, "sqlserver"));
+ assertTrue(PlatformMatch.matchPlatform(Platform.SQLSERVER16, "sqlserver16"));
+ }
+
+ @Test
+ public void matchPlatform_sqlserver_nonMatch() {
+ assertFalse(PlatformMatch.matchPlatform(Platform.SQLSERVER16, "sqlserver17"));
+ assertFalse(PlatformMatch.matchPlatform(Platform.SQLSERVER17, "sqlserver16"));
+ assertFalse(PlatformMatch.matchPlatform(Platform.SQLSERVER, "sqlserver16"));
+ assertFalse(PlatformMatch.matchPlatform(Platform.SQLSERVER, "sqlserver17"));
+ }
+}
diff --git a/src/test/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReaderTest.java b/src/test/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReaderTest.java
index b28b1fb2e..cf4b284fe 100644
--- a/src/test/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReaderTest.java
+++ b/src/test/java/io/ebeaninternal/extraddl/model/ExtraDdlXmlReaderTest.java
@@ -1,5 +1,6 @@
package io.ebeaninternal.extraddl.model;
+import io.ebean.annotation.Platform;
import org.junit.Test;
import static org.assertj.core.api.Assertions.assertThat;
@@ -19,7 +20,7 @@ public class ExtraDdlXmlReaderTest {
@Test
public void buildExtra_when_h2() {
- String ddl = ExtraDdlXmlReader.buildExtra("h2", false);
+ String ddl = ExtraDdlXmlReader.buildExtra(Platform.H2, false);
assertThat(ddl).contains("create or replace view order_agg_vw");
assertThat(ddl).contains("-- h2 and postgres script");
@@ -29,7 +30,7 @@ public class ExtraDdlXmlReaderTest {
@Test
public void buildExtra_when_oracle() {
- String ddl = ExtraDdlXmlReader.buildExtra("oracle", false);
+ String ddl = ExtraDdlXmlReader.buildExtra(Platform.ORACLE, false);
assertThat(ddl).contains("create or replace view order_agg_vw");
assertThat(ddl).doesNotContain("-- h2 and postgres script");
@@ -39,44 +40,11 @@ public class ExtraDdlXmlReaderTest {
@Test
public void buildExtra_when_mysql() {
- String ddl = ExtraDdlXmlReader.buildExtra("mysql", false);
+ String ddl = ExtraDdlXmlReader.buildExtra(Platform.MYSQL, false);
assertThat(ddl).contains("create or replace view order_agg_vw");
assertThat(ddl).doesNotContain("-- h2 and postgres script");
assertThat(ddl).doesNotContain(" -- oracle only script");
}
- @Test
- public void matchPlatform() {
-
- assertTrue(ExtraDdlXmlReader.matchPlatform("h2", "h2"));
- assertTrue(ExtraDdlXmlReader.matchPlatform("h2", "mysql,h2"));
- assertTrue(ExtraDdlXmlReader.matchPlatform("h2", "mysql,h2,"));
- assertTrue(ExtraDdlXmlReader.matchPlatform("h2", "mysql , h2 ,"));
- assertTrue(ExtraDdlXmlReader.matchPlatform("h2", "mysql , h2, oracle"));
- assertTrue(ExtraDdlXmlReader.matchPlatform("h2", "mysql , h2, oracle"));
-
- assertTrue(ExtraDdlXmlReader.matchPlatform("sqlserver17", "sqlserver17"));
- assertTrue(ExtraDdlXmlReader.matchPlatform("sqlserver16", "sqlserver16"));
- }
-
- @Test
- public void matchPlatform_sqlserver17_matchAlsoToGenericName() {
-
- assertTrue(ExtraDdlXmlReader.matchPlatform("sqlserver17", "sqlserver"));
- }
-
- @Test
- public void matchPlatform_sqlserver16_matchAlsoToGenericName() {
-
- assertTrue(ExtraDdlXmlReader.matchPlatform("sqlserver16", "sqlserver"));
- }
-
- @Test
- public void matchPlatform_sqlserver_nonMatch() {
-
- assertFalse(ExtraDdlXmlReader.matchPlatform("sqlserver16", "sqlserver17"));
- assertFalse(ExtraDdlXmlReader.matchPlatform("sqlserver17", "sqlserver16"));
- }
-
}
diff --git a/src/test/java/io/ebeaninternal/server/deploy/DeployPropertyParserTest.java b/src/test/java/io/ebeaninternal/server/deploy/DeployPropertyParserTest.java
index bb7d4e20a..cfb35f740 100644
--- a/src/test/java/io/ebeaninternal/server/deploy/DeployPropertyParserTest.java
+++ b/src/test/java/io/ebeaninternal/server/deploy/DeployPropertyParserTest.java
@@ -62,19 +62,19 @@ public class DeployPropertyParserTest extends BaseTestCase {
}
@Test
- @ForPlatform(value = {Platform.H2, Platform.POSTGRES})
+ @ForPlatform({Platform.H2, Platform.POSTGRES})
public void withQuote_when_match_h2() {
assertThat(withQuoteParser().parse("name like ?")).isEqualTo("${}\"Name\" like ?");
}
@Test
- @ForPlatform(value = Platform.SQLSERVER)
+ @ForPlatform(Platform.SQLSERVER)
public void withQuote_when_match_sqlserver() {
assertThat(withQuoteParser().parse("name like ?")).isEqualTo("${}[Name] like ?");
}
@Test
- @ForPlatform(value = Platform.MYSQL)
+ @ForPlatform(Platform.MYSQL)
public void withQuote_when_match_mysql() {
assertThat(withQuoteParser().parse("name like ?")).isEqualTo("${}`Name` like ?");
}
diff --git a/src/test/java/main/StartPostgres9.java b/src/test/java/main/StartPostgres9.java
new file mode 100644
index 000000000..9b925d9a8
--- /dev/null
+++ b/src/test/java/main/StartPostgres9.java
@@ -0,0 +1,21 @@
+package main;
+
+import io.ebean.docker.commands.PostgresConfig;
+import io.ebean.docker.commands.PostgresContainer;
+
+public class StartPostgres9 {
+
+ public static void main(String[] args) {
+
+ PostgresConfig config = new PostgresConfig("9.6");
+ config.setPort("9432");
+ config.setDbName("unit");
+ config.setUser("unit");
+ config.setPassword("unit");
+ config.setContainerName("pg9");
+ config.setExtensions("hstore,pgcrypto");
+
+ PostgresContainer container = new PostgresContainer(config);
+ container.startWithDropCreate();
+ }
+}
diff --git a/src/test/java/org/tests/basic/TestQueryForUpdate.java b/src/test/java/org/tests/basic/TestQueryForUpdate.java
index 530468c00..2f4800a82 100644
--- a/src/test/java/org/tests/basic/TestQueryForUpdate.java
+++ b/src/test/java/org/tests/basic/TestQueryForUpdate.java
@@ -23,9 +23,7 @@ public class TestQueryForUpdate extends BaseTestCase {
@Test
- @ForPlatform({
- Platform.H2, Platform.ORACLE, Platform.POSTGRES, Platform.SQLSERVER, Platform.MYSQL
- })
+ @ForPlatform({Platform.H2, Platform.ORACLE, Platform.POSTGRES, Platform.SQLSERVER, Platform.MYSQL})
public void testForUpdate() {
ResetBasicData.reset();
@@ -43,9 +41,7 @@ public class TestQueryForUpdate extends BaseTestCase {
}
@Test
- @ForPlatform({
- Platform.H2, Platform.ORACLE, Platform.POSTGRES, Platform.SQLSERVER, Platform.MYSQL
- })
+ @ForPlatform({ Platform.H2, Platform.ORACLE, Platform.POSTGRES, Platform.SQLSERVER, Platform.MYSQL})
public void testForUpdate_when_alreadyInPC() {
EBasic basic = new EBasic("test PC cache");
@@ -79,9 +75,7 @@ public class TestQueryForUpdate extends BaseTestCase {
}
@Test
- @ForPlatform({
- Platform.H2, Platform.POSTGRES, Platform.SQLSERVER, Platform.ORACLE
- })
+ @ForPlatform({Platform.H2, Platform.POSTGRES, Platform.SQLSERVER, Platform.ORACLE})
public void testForUpdate_noWait_noMaxRows() {
ResetBasicData.reset();
@@ -103,9 +97,7 @@ public class TestQueryForUpdate extends BaseTestCase {
}
@Test
- @ForPlatform({
- Platform.H2, Platform.POSTGRES, Platform.SQLSERVER
- })
+ @ForPlatform({Platform.H2, Platform.POSTGRES, Platform.SQLSERVER})
public void testForUpdate_noWait() {
ResetBasicData.reset();
diff --git a/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql b/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql
index 94d31e04f..dfab09392 100644
--- a/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql
+++ b/src/test/resources/assert/ModelBuild_explicitSequencesTest/pg-apply.sql
@@ -1,12 +1,12 @@
create table persons (
- id bigserial not null,
+ id bigint generated by default as identity not null,
surname varchar(64) not null,
name varchar(64) not null,
constraint pk_persons primary key (id)
);
create table phones (
- id bigserial not null,
+ id bigint generated by default as identity not null,
phone_number varchar(7) not null,
person_id bigint not null,
constraint uq_phones_phone_number unique (phone_number),
diff --git a/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql b/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql
index 057cec8bd..593f0f3c0 100644
--- a/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql
+++ b/src/test/resources/dbmigration/migrationtest/mysql55/1.3.sql
@@ -58,8 +58,12 @@ alter table migtest_e_history6 modify test_number1 integer;
update migtest_e_history6 set test_number2 = 7 where test_number2 is null;
alter table migtest_e_history6 alter test_number2 set default 7;
alter table migtest_e_history6 modify test_number2 integer not null;
+alter table migtest_oto_child add constraint uq_m12_otoc72 unique (name);
+alter table migtest_oto_master add constraint uq_migtest_oto_master_name unique (name);
create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
+create index ix_m12_otoc72 on migtest_oto_child (name);
+create index ix_migtest_oto_master_name on migtest_oto_master (name);
drop index ix_migtest_e_basic_indextest3 on migtest_e_basic;
drop index ix_migtest_e_basic_indextest6 on migtest_e_basic;
create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
diff --git a/src/test/resources/dbmigration/migrationtest/mysql55/R__order_views.sql b/src/test/resources/dbmigration/migrationtest/mysql55/R__order_views.sql
new file mode 100644
index 000000000..ccf30a2c6
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/mysql55/R__order_views.sql
@@ -0,0 +1,7 @@
+
+ create or replace view order_agg_vw as
+ select d.order_id, sum(d.order_qty * d.unit_price) as order_total,
+ sum(d.ship_qty * d.unit_price) as ship_total
+ from o_order_detail d
+ group by d.order_id
+
\ No newline at end of file
diff --git a/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql
index fa4d80c2c..bc920ec22 100644
--- a/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql
+++ b/src/test/resources/dbmigration/migrationtest/postgres/1.0__initial.sql
@@ -1,13 +1,13 @@
-- Migrationscripts for ebean unittest
-- apply changes
create table migtest_ckey_assoc (
- id serial not null,
+ id integer generated by default as identity not null,
assoc_one varchar(255),
constraint pk_migtest_ckey_assoc primary key (id)
);
create table migtest_ckey_detail (
- id serial not null,
+ id integer generated by default as identity not null,
something varchar(255),
constraint pk_migtest_ckey_detail primary key (id)
);
@@ -21,41 +21,41 @@ create table migtest_ckey_parent (
);
create table migtest_fk_cascade (
- id bigserial not null,
+ id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_cascade primary key (id)
);
create table migtest_fk_cascade_one (
- id bigserial not null,
+ id bigint generated by default as identity not null,
constraint pk_migtest_fk_cascade_one primary key (id)
);
create table migtest_fk_none (
- id bigserial not null,
+ id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_none primary key (id)
);
create table migtest_fk_none_via_join (
- id bigserial not null,
+ id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_none_via_join primary key (id)
);
create table migtest_fk_one (
- id bigserial not null,
+ id bigint generated by default as identity not null,
constraint pk_migtest_fk_one primary key (id)
);
create table migtest_fk_set_null (
- id bigserial not null,
+ id bigint generated by default as identity not null,
one_id bigint,
constraint pk_migtest_fk_set_null primary key (id)
);
create table migtest_e_basic (
- id serial not null,
+ id integer generated by default as identity not null,
status varchar(1),
status2 varchar(1) default 'N' not null,
name varchar(127),
@@ -79,20 +79,20 @@ create table migtest_e_basic (
);
create table migtest_e_enum (
- id serial not null,
+ id integer generated by default as identity not null,
test_status varchar(1),
constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')),
constraint pk_migtest_e_enum primary key (id)
);
create table migtest_e_history (
- id serial not null,
+ id integer generated by default as identity not null,
test_string varchar(255),
constraint pk_migtest_e_history primary key (id)
);
create table migtest_e_history2 (
- id serial not null,
+ id integer generated by default as identity not null,
test_string varchar(255),
obsolete_string1 varchar(255),
obsolete_string2 varchar(255),
@@ -100,63 +100,63 @@ create table migtest_e_history2 (
);
create table migtest_e_history3 (
- id serial not null,
+ id integer generated by default as identity not null,
test_string varchar(255),
constraint pk_migtest_e_history3 primary key (id)
);
create table migtest_e_history4 (
- id serial not null,
+ id integer generated by default as identity not null,
test_number integer,
constraint pk_migtest_e_history4 primary key (id)
);
create table migtest_e_history5 (
- id serial not null,
+ id integer generated by default as identity not null,
test_number integer,
constraint pk_migtest_e_history5 primary key (id)
);
create table migtest_e_history6 (
- id serial not null,
+ id integer generated by default as identity not null,
test_number1 integer,
test_number2 integer not null,
constraint pk_migtest_e_history6 primary key (id)
);
create table migtest_e_ref (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(127) not null,
constraint uq_migtest_e_ref_name unique (name),
constraint pk_migtest_e_ref primary key (id)
);
create table migtest_e_softdelete (
- id serial not null,
+ id integer generated by default as identity not null,
test_string varchar(255),
constraint pk_migtest_e_softdelete primary key (id)
);
create table migtest_mtm_c (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_migtest_mtm_c primary key (id)
);
create table migtest_mtm_m (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_migtest_mtm_m primary key (id)
);
create table migtest_oto_child (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(255),
constraint pk_migtest_oto_child primary key (id)
);
create table migtest_oto_master (
- id bigserial not null,
+ id bigint generated by default as identity not null,
name varchar(255),
constraint pk_migtest_oto_master primary key (id)
);
diff --git a/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql b/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql
index 34ec2956d..5cc3be7a8 100644
--- a/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql
+++ b/src/test/resources/dbmigration/migrationtest/postgres/1.1.sql
@@ -7,7 +7,7 @@ drop view if exists migtest_e_history5_with_history;
-- apply changes
create table migtest_e_user (
- id serial not null,
+ id integer generated by default as identity not null,
constraint pk_migtest_e_user primary key (id)
);
diff --git a/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql b/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql
index d3e5a0b37..172853cbd 100644
--- a/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql
+++ b/src/test/resources/dbmigration/migrationtest/postgres/1.3.sql
@@ -6,7 +6,7 @@ drop view if exists migtest_e_history4_with_history;
-- apply changes
create table migtest_e_ref (
- id serial not null,
+ id integer generated by default as identity not null,
name varchar(127) not null,
constraint uq_migtest_e_ref_name unique (name),
constraint pk_migtest_e_ref primary key (id)
diff --git a/src/test/resources/dbmigration/migrationtest/postgres10/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/postgres10/1.0__initial.sql
new file mode 100644
index 000000000..bc920ec22
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres10/1.0__initial.sql
@@ -0,0 +1,307 @@
+-- Migrationscripts for ebean unittest
+-- apply changes
+create table migtest_ckey_assoc (
+ id integer generated by default as identity not null,
+ assoc_one varchar(255),
+ constraint pk_migtest_ckey_assoc primary key (id)
+);
+
+create table migtest_ckey_detail (
+ id integer generated by default as identity not null,
+ something varchar(255),
+ constraint pk_migtest_ckey_detail primary key (id)
+);
+
+create table migtest_ckey_parent (
+ one_key integer not null,
+ two_key varchar(127) not null,
+ name varchar(255),
+ version integer not null,
+ constraint pk_migtest_ckey_parent primary key (one_key,two_key)
+);
+
+create table migtest_fk_cascade (
+ id bigint generated by default as identity not null,
+ one_id bigint,
+ constraint pk_migtest_fk_cascade primary key (id)
+);
+
+create table migtest_fk_cascade_one (
+ id bigint generated by default as identity not null,
+ constraint pk_migtest_fk_cascade_one primary key (id)
+);
+
+create table migtest_fk_none (
+ id bigint generated by default as identity not null,
+ one_id bigint,
+ constraint pk_migtest_fk_none primary key (id)
+);
+
+create table migtest_fk_none_via_join (
+ id bigint generated by default as identity not null,
+ one_id bigint,
+ constraint pk_migtest_fk_none_via_join primary key (id)
+);
+
+create table migtest_fk_one (
+ id bigint generated by default as identity not null,
+ constraint pk_migtest_fk_one primary key (id)
+);
+
+create table migtest_fk_set_null (
+ id bigint generated by default as identity not null,
+ one_id bigint,
+ constraint pk_migtest_fk_set_null primary key (id)
+);
+
+create table migtest_e_basic (
+ id integer generated by default as identity not null,
+ status varchar(1),
+ status2 varchar(1) default 'N' not null,
+ name varchar(127),
+ description varchar(127),
+ some_date timestamptz,
+ old_boolean boolean default false not null,
+ old_boolean2 boolean,
+ eref_id integer,
+ indextest1 varchar(127),
+ indextest2 varchar(127),
+ indextest3 varchar(127),
+ indextest4 varchar(127),
+ indextest5 varchar(127),
+ indextest6 varchar(127),
+ user_id integer not null,
+ constraint ck_migtest_e_basic_status check ( status in ('N','A','I')),
+ constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')),
+ constraint uq_migtest_e_basic_indextest2 unique (indextest2),
+ constraint uq_migtest_e_basic_indextest6 unique (indextest6),
+ constraint pk_migtest_e_basic primary key (id)
+);
+
+create table migtest_e_enum (
+ id integer generated by default as identity not null,
+ test_status varchar(1),
+ constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')),
+ constraint pk_migtest_e_enum primary key (id)
+);
+
+create table migtest_e_history (
+ id integer generated by default as identity not null,
+ test_string varchar(255),
+ constraint pk_migtest_e_history primary key (id)
+);
+
+create table migtest_e_history2 (
+ id integer generated by default as identity not null,
+ test_string varchar(255),
+ obsolete_string1 varchar(255),
+ obsolete_string2 varchar(255),
+ constraint pk_migtest_e_history2 primary key (id)
+);
+
+create table migtest_e_history3 (
+ id integer generated by default as identity not null,
+ test_string varchar(255),
+ constraint pk_migtest_e_history3 primary key (id)
+);
+
+create table migtest_e_history4 (
+ id integer generated by default as identity not null,
+ test_number integer,
+ constraint pk_migtest_e_history4 primary key (id)
+);
+
+create table migtest_e_history5 (
+ id integer generated by default as identity not null,
+ test_number integer,
+ constraint pk_migtest_e_history5 primary key (id)
+);
+
+create table migtest_e_history6 (
+ id integer generated by default as identity not null,
+ test_number1 integer,
+ test_number2 integer not null,
+ constraint pk_migtest_e_history6 primary key (id)
+);
+
+create table migtest_e_ref (
+ id integer generated by default as identity not null,
+ name varchar(127) not null,
+ constraint uq_migtest_e_ref_name unique (name),
+ constraint pk_migtest_e_ref primary key (id)
+);
+
+create table migtest_e_softdelete (
+ id integer generated by default as identity not null,
+ test_string varchar(255),
+ constraint pk_migtest_e_softdelete primary key (id)
+);
+
+create table migtest_mtm_c (
+ id integer generated by default as identity not null,
+ name varchar(255),
+ constraint pk_migtest_mtm_c primary key (id)
+);
+
+create table migtest_mtm_m (
+ id bigint generated by default as identity not null,
+ name varchar(255),
+ constraint pk_migtest_mtm_m primary key (id)
+);
+
+create table migtest_oto_child (
+ id integer generated by default as identity not null,
+ name varchar(255),
+ constraint pk_migtest_oto_child primary key (id)
+);
+
+create table migtest_oto_master (
+ id bigint generated by default as identity not null,
+ name varchar(255),
+ constraint pk_migtest_oto_master primary key (id)
+);
+
+create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
+create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
+create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM';
+create index concurrently ix_migtest_oto_child_lowername_id on migtest_oto_child (lower(name),id);
+create index ix_migtest_oto_child_lowername on migtest_oto_child (lower(name));
+create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
+alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade;
+
+create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
+alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update set null;
+
+create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
+alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
+
+alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history2_history(like migtest_e_history2);
+create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
+
+alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history3_history(like migtest_e_history3);
+create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
+
+alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history4_history(like migtest_e_history4);
+create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
+
+alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history5_history(like migtest_e_history5);
+create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
+
+alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history6_history(like migtest_e_history6);
+create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history;
+
+create or replace function migtest_e_history2_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history2_history_upd
+ before update or delete on migtest_e_history2
+ for each row execute procedure migtest_e_history2_history_version();
+
+create or replace function migtest_e_history3_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history3_history_upd
+ before update or delete on migtest_e_history3
+ for each row execute procedure migtest_e_history3_history_version();
+
+create or replace function migtest_e_history4_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history4_history_upd
+ before update or delete on migtest_e_history4
+ for each row execute procedure migtest_e_history4_history_version();
+
+create or replace function migtest_e_history5_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history5_history_upd
+ before update or delete on migtest_e_history5
+ for each row execute procedure migtest_e_history5_history_version();
+
+create or replace function migtest_e_history6_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history6_history_upd
+ before update or delete on migtest_e_history6
+ for each row execute procedure migtest_e_history6_history_version();
+
diff --git a/src/test/resources/dbmigration/migrationtest/postgres10/1.1.sql b/src/test/resources/dbmigration/migrationtest/postgres10/1.1.sql
new file mode 100644
index 000000000..5cc3be7a8
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres10/1.1.sql
@@ -0,0 +1,237 @@
+-- Migrationscripts for ebean unittest
+-- drop dependencies
+drop view if exists migtest_e_history2_with_history;
+drop view if exists migtest_e_history3_with_history;
+drop view if exists migtest_e_history4_with_history;
+drop view if exists migtest_e_history5_with_history;
+
+-- apply changes
+create table migtest_e_user (
+ id integer generated by default as identity not null,
+ constraint pk_migtest_e_user primary key (id)
+);
+
+create table migtest_mtm_c_migtest_mtm_m (
+ migtest_mtm_c_id integer not null,
+ migtest_mtm_m_id bigint not null,
+ constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id)
+);
+
+create table migtest_mtm_m_migtest_mtm_c (
+ migtest_mtm_m_id bigint not null,
+ migtest_mtm_c_id integer not null,
+ constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id)
+);
+
+alter table migtest_ckey_detail add column one_key integer;
+alter table migtest_ckey_detail add column two_key varchar(127);
+
+alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update restrict;
+alter table migtest_ckey_parent add column assoc_id integer;
+
+alter table if exists migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id;
+alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update restrict;
+alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
+alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
+alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id;
+alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
+
+update migtest_e_basic set status = 'A' where status is null;
+alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status;
+alter table migtest_e_basic alter column status set default 'A';
+alter table migtest_e_basic alter column status set not null;
+alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?'));
+alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2;
+alter table migtest_e_basic alter column status2 type varchar(127);
+alter table migtest_e_basic alter column status2 drop default;
+alter table migtest_e_basic alter column status2 drop not null;
+
+-- rename all collisions;
+alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description);
+
+insert into migtest_e_user (id) select distinct user_id from migtest_e_basic;
+alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict;
+alter table migtest_e_basic alter column user_id drop not null;
+alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null;
+alter table migtest_e_basic add column new_boolean_field boolean default true not null;
+update migtest_e_basic set new_boolean_field = old_boolean;
+
+alter table migtest_e_basic add column new_boolean_field2 boolean default true not null;
+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;
+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);
+alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5);
+alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status;
+
+alter table migtest_e_history alter column test_string TYPE bigint USING (test_string::integer);
+comment on column migtest_e_history.test_string is 'Column altered to long now';
+alter table migtest_e_history alter column test_string type bigint;
+comment on table migtest_e_history is 'We have history now';
+
+-- NOTE: table has @History - special migration may be necessary
+update migtest_e_history2 set test_string = 'unknown' where test_string is null;
+alter table migtest_e_history2 alter column test_string set default 'unknown';
+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
+update migtest_e_history6 set test_number1 = 42 where test_number1 is null;
+alter table migtest_e_history6 alter column test_number1 set default 42;
+alter table migtest_e_history6 alter column test_number1 set not null;
+alter table migtest_e_history6 alter column test_number2 drop not null;
+alter table migtest_e_softdelete add column deleted boolean default false not null;
+
+alter table migtest_oto_child add column master_id bigint;
+
+create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3);
+create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6);
+create index ix_migtest_oto_child_name on migtest_oto_child (name);
+drop index if exists ix_migtest_e_basic_indextest1;
+drop index if exists ix_migtest_e_basic_indextest5;
+drop index if exists idxd_migtest_0;
+drop index concurrently if exists ix_migtest_oto_child_lowername_id;
+drop index if exists ix_migtest_oto_child_lowername;
+create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id);
+alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
+
+create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id);
+alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
+
+create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id);
+alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
+
+create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id);
+alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
+
+create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id);
+alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict;
+
+alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict;
+
+alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history_history(like migtest_e_history);
+create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history;
+
+create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
+
+create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
+
+create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
+
+create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
+
+create or replace function migtest_e_history_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history_history_upd
+ before update or delete on migtest_e_history
+ for each row execute procedure migtest_e_history_history_version();
+
+-- changes: [add test_string2, add test_string3, add new_column]
+create or replace function migtest_e_history2_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [exclude test_string]
+create or replace function migtest_e_history3_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [alter test_number]
+create or replace function migtest_e_history4_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [add test_boolean]
+create or replace function migtest_e_history5_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
diff --git a/src/test/resources/dbmigration/migrationtest/postgres10/1.2__dropsFor_1.1.sql b/src/test/resources/dbmigration/migrationtest/postgres10/1.2__dropsFor_1.1.sql
new file mode 100644
index 000000000..c9a6d03e6
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres10/1.2__dropsFor_1.1.sql
@@ -0,0 +1,40 @@
+-- Migrationscripts for ebean unittest
+-- drop dependencies
+drop view if exists migtest_e_history2_with_history;
+
+-- apply changes
+alter table migtest_e_basic drop column old_boolean;
+
+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;
+create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
+
+-- changes: [drop obsolete_string1, drop obsolete_string2]
+create or replace function migtest_e_history2_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
diff --git a/src/test/resources/dbmigration/migrationtest/postgres10/1.3.sql b/src/test/resources/dbmigration/migrationtest/postgres10/1.3.sql
new file mode 100644
index 000000000..172853cbd
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres10/1.3.sql
@@ -0,0 +1,141 @@
+-- Migrationscripts for ebean unittest
+-- drop dependencies
+drop view if exists migtest_e_history2_with_history;
+drop view if exists migtest_e_history3_with_history;
+drop view if exists migtest_e_history4_with_history;
+
+-- apply changes
+create table migtest_e_ref (
+ id integer generated by default as identity not null,
+ name varchar(127) not null,
+ constraint uq_migtest_e_ref_name unique (name),
+ constraint pk_migtest_e_ref primary key (id)
+);
+
+alter table if exists migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent;
+alter table if exists migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id;
+alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade;
+alter table if exists migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id;
+alter table if exists migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id;
+alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id;
+alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update set null;
+alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status;
+alter table migtest_e_basic alter column status drop default;
+alter table migtest_e_basic alter column status drop not null;
+alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I'));
+
+update migtest_e_basic set status2 = 'N' where status2 is null;
+alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2;
+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;
+
+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;
+alter table migtest_e_basic alter column user_id set default 23;
+alter table migtest_e_basic alter column user_id set not null;
+alter table migtest_e_basic add column old_boolean boolean default false not null;
+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;
+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;
+alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I'));
+comment on column migtest_e_history.test_string is '';
+comment on table migtest_e_history is '';
+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;
+
+-- NOTE: table has @History - special migration may be necessary
+update migtest_e_history6 set test_number2 = 7 where test_number2 is null;
+alter table migtest_e_history6 alter column test_number2 set default 7;
+alter table migtest_e_history6 alter column test_number2 set not null;
+create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
+create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
+create index ix_m12_otoc71 on migtest_oto_child (name);
+create unique index uq_m12_otoc71 on migtest_oto_child (lower(name));
+create unique index ix_migtest_oto_master_lowername on migtest_oto_master (lower(name));
+drop index if exists ix_migtest_e_basic_indextest3;
+drop index if exists ix_migtest_e_basic_indextest6;
+create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
+alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
+
+create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
+
+create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
+
+create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
+
+-- changes: [add obsolete_string1, add obsolete_string2]
+create or replace function migtest_e_history2_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [include test_string]
+create or replace function migtest_e_history3_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [alter test_number]
+create or replace function migtest_e_history4_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
diff --git a/src/test/resources/dbmigration/migrationtest/postgres10/1.4__dropsFor_1.3.sql b/src/test/resources/dbmigration/migrationtest/postgres10/1.4__dropsFor_1.3.sql
new file mode 100644
index 000000000..748ee959b
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres10/1.4__dropsFor_1.3.sql
@@ -0,0 +1,91 @@
+-- Migrationscripts for ebean unittest
+-- drop dependencies
+drop trigger if exists migtest_e_history_history_upd on migtest_e_history cascade;
+drop function if exists migtest_e_history_history_version();
+
+drop view migtest_e_history_with_history;
+alter table migtest_e_history drop column sys_period;
+drop table migtest_e_history_history;
+
+drop view if exists migtest_e_history2_with_history;
+drop view if exists migtest_e_history5_with_history;
+
+-- apply changes
+alter table migtest_ckey_detail drop column one_key;
+
+alter table migtest_ckey_detail drop column two_key;
+
+alter table migtest_ckey_parent drop column assoc_id;
+
+alter table migtest_e_basic drop column new_string_field;
+
+alter table migtest_e_basic drop column new_boolean_field;
+
+alter table migtest_e_basic drop column new_boolean_field2;
+
+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;
+
+alter table migtest_oto_child drop column master_id;
+
+drop table if exists migtest_e_user cascade;
+drop sequence if exists migtest_e_user_seq;
+drop table if exists migtest_mtm_c_migtest_mtm_m cascade;
+drop table if exists migtest_mtm_m_migtest_mtm_c cascade;
+create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
+
+create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
+
+-- changes: [drop test_string2, drop test_string3, drop new_column]
+create or replace function migtest_e_history2_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [drop test_boolean]
+create or replace function migtest_e_history5_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
diff --git a/src/test/resources/dbmigration/migrationtest/postgres10/R__multi_comments.sql b/src/test/resources/dbmigration/migrationtest/postgres10/R__multi_comments.sql
new file mode 100644
index 000000000..0ede0c9eb
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres10/R__multi_comments.sql
@@ -0,0 +1,3 @@
+
+ -- h2 and postgres script
+
\ No newline at end of file
diff --git a/src/test/resources/dbmigration/migrationtest/postgres10/R__order_views.sql b/src/test/resources/dbmigration/migrationtest/postgres10/R__order_views.sql
new file mode 100644
index 000000000..ccf30a2c6
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres10/R__order_views.sql
@@ -0,0 +1,7 @@
+
+ create or replace view order_agg_vw as
+ select d.order_id, sum(d.order_qty * d.unit_price) as order_total,
+ sum(d.ship_qty * d.unit_price) as ship_total
+ from o_order_detail d
+ group by d.order_id
+
\ No newline at end of file
diff --git a/src/test/resources/dbmigration/migrationtest/postgres10/R__pg_indexes.sql b/src/test/resources/dbmigration/migrationtest/postgres10/R__pg_indexes.sql
new file mode 100644
index 000000000..fa0bab998
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres10/R__pg_indexes.sql
@@ -0,0 +1,4 @@
+
+ -- postgres specific indexes
+ create index ix_ebasic_jmjb_gin2 on ebasic_json_map_json_b using gin(content jsonb_path_ops);
+
\ No newline at end of file
diff --git a/src/test/resources/dbmigration/migrationtest/postgres9/1.0__initial.sql b/src/test/resources/dbmigration/migrationtest/postgres9/1.0__initial.sql
new file mode 100644
index 000000000..010470b33
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres9/1.0__initial.sql
@@ -0,0 +1,307 @@
+-- Migrationscripts for ebean unittest
+-- apply changes
+create table migtest_ckey_assoc (
+ id bigserial not null,
+ assoc_one varchar(255),
+ constraint pk_migtest_ckey_assoc primary key (id)
+);
+
+create table migtest_ckey_detail (
+ id bigserial not null,
+ something varchar(255),
+ constraint pk_migtest_ckey_detail primary key (id)
+);
+
+create table migtest_ckey_parent (
+ one_key integer not null,
+ two_key varchar(127) not null,
+ name varchar(255),
+ version integer not null,
+ constraint pk_migtest_ckey_parent primary key (one_key,two_key)
+);
+
+create table migtest_fk_cascade (
+ id bigserial not null,
+ one_id bigint,
+ constraint pk_migtest_fk_cascade primary key (id)
+);
+
+create table migtest_fk_cascade_one (
+ id bigserial not null,
+ constraint pk_migtest_fk_cascade_one primary key (id)
+);
+
+create table migtest_fk_none (
+ id bigserial not null,
+ one_id bigint,
+ constraint pk_migtest_fk_none primary key (id)
+);
+
+create table migtest_fk_none_via_join (
+ id bigserial not null,
+ one_id bigint,
+ constraint pk_migtest_fk_none_via_join primary key (id)
+);
+
+create table migtest_fk_one (
+ id bigserial not null,
+ constraint pk_migtest_fk_one primary key (id)
+);
+
+create table migtest_fk_set_null (
+ id bigserial not null,
+ one_id bigint,
+ constraint pk_migtest_fk_set_null primary key (id)
+);
+
+create table migtest_e_basic (
+ id bigserial not null,
+ status varchar(1),
+ status2 varchar(1) default 'N' not null,
+ name varchar(127),
+ description varchar(127),
+ some_date timestamptz,
+ old_boolean boolean default false not null,
+ old_boolean2 boolean,
+ eref_id integer,
+ indextest1 varchar(127),
+ indextest2 varchar(127),
+ indextest3 varchar(127),
+ indextest4 varchar(127),
+ indextest5 varchar(127),
+ indextest6 varchar(127),
+ user_id integer not null,
+ constraint ck_migtest_e_basic_status check ( status in ('N','A','I')),
+ constraint ck_migtest_e_basic_status2 check ( status2 in ('N','A','I')),
+ constraint uq_migtest_e_basic_indextest2 unique (indextest2),
+ constraint uq_migtest_e_basic_indextest6 unique (indextest6),
+ constraint pk_migtest_e_basic primary key (id)
+);
+
+create table migtest_e_enum (
+ id bigserial not null,
+ test_status varchar(1),
+ constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I')),
+ constraint pk_migtest_e_enum primary key (id)
+);
+
+create table migtest_e_history (
+ id bigserial not null,
+ test_string varchar(255),
+ constraint pk_migtest_e_history primary key (id)
+);
+
+create table migtest_e_history2 (
+ id bigserial not null,
+ test_string varchar(255),
+ obsolete_string1 varchar(255),
+ obsolete_string2 varchar(255),
+ constraint pk_migtest_e_history2 primary key (id)
+);
+
+create table migtest_e_history3 (
+ id bigserial not null,
+ test_string varchar(255),
+ constraint pk_migtest_e_history3 primary key (id)
+);
+
+create table migtest_e_history4 (
+ id bigserial not null,
+ test_number integer,
+ constraint pk_migtest_e_history4 primary key (id)
+);
+
+create table migtest_e_history5 (
+ id bigserial not null,
+ test_number integer,
+ constraint pk_migtest_e_history5 primary key (id)
+);
+
+create table migtest_e_history6 (
+ id bigserial not null,
+ test_number1 integer,
+ test_number2 integer not null,
+ constraint pk_migtest_e_history6 primary key (id)
+);
+
+create table migtest_e_ref (
+ id bigserial not null,
+ name varchar(127) not null,
+ constraint uq_migtest_e_ref_name unique (name),
+ constraint pk_migtest_e_ref primary key (id)
+);
+
+create table migtest_e_softdelete (
+ id bigserial not null,
+ test_string varchar(255),
+ constraint pk_migtest_e_softdelete primary key (id)
+);
+
+create table migtest_mtm_c (
+ id bigserial not null,
+ name varchar(255),
+ constraint pk_migtest_mtm_c primary key (id)
+);
+
+create table migtest_mtm_m (
+ id bigserial not null,
+ name varchar(255),
+ constraint pk_migtest_mtm_m primary key (id)
+);
+
+create table migtest_oto_child (
+ id bigserial not null,
+ name varchar(255),
+ constraint pk_migtest_oto_child primary key (id)
+);
+
+create table migtest_oto_master (
+ id bigserial not null,
+ name varchar(255),
+ constraint pk_migtest_oto_master primary key (id)
+);
+
+create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
+create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
+create index idxd_migtest_0 on migtest_oto_child using hash (upper(name)) where upper(name) = 'JIM';
+create index concurrently ix_migtest_oto_child_lowername_id on migtest_oto_child (lower(name),id);
+create index ix_migtest_oto_child_lowername on migtest_oto_child (lower(name));
+create index ix_migtest_fk_cascade_one_id on migtest_fk_cascade (one_id);
+alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade;
+
+create index ix_migtest_fk_set_null_one_id on migtest_fk_set_null (one_id);
+alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update set null;
+
+create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
+alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
+
+alter table migtest_e_history2 add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history2_history(like migtest_e_history2);
+create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
+
+alter table migtest_e_history3 add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history3_history(like migtest_e_history3);
+create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
+
+alter table migtest_e_history4 add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history4_history(like migtest_e_history4);
+create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
+
+alter table migtest_e_history5 add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history5_history(like migtest_e_history5);
+create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
+
+alter table migtest_e_history6 add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history6_history(like migtest_e_history6);
+create view migtest_e_history6_with_history as select * from migtest_e_history6 union all select * from migtest_e_history6_history;
+
+create or replace function migtest_e_history2_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history2_history_upd
+ before update or delete on migtest_e_history2
+ for each row execute procedure migtest_e_history2_history_version();
+
+create or replace function migtest_e_history3_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history3_history_upd
+ before update or delete on migtest_e_history3
+ for each row execute procedure migtest_e_history3_history_version();
+
+create or replace function migtest_e_history4_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history4_history_upd
+ before update or delete on migtest_e_history4
+ for each row execute procedure migtest_e_history4_history_version();
+
+create or replace function migtest_e_history5_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history5_history_upd
+ before update or delete on migtest_e_history5
+ for each row execute procedure migtest_e_history5_history_version();
+
+create or replace function migtest_e_history6_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history6_history (sys_period,id, test_number1, test_number2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number1, OLD.test_number2);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history6_history_upd
+ before update or delete on migtest_e_history6
+ for each row execute procedure migtest_e_history6_history_version();
+
diff --git a/src/test/resources/dbmigration/migrationtest/postgres9/1.1.sql b/src/test/resources/dbmigration/migrationtest/postgres9/1.1.sql
new file mode 100644
index 000000000..52b2a90c1
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres9/1.1.sql
@@ -0,0 +1,237 @@
+-- Migrationscripts for ebean unittest
+-- drop dependencies
+drop view if exists migtest_e_history2_with_history;
+drop view if exists migtest_e_history3_with_history;
+drop view if exists migtest_e_history4_with_history;
+drop view if exists migtest_e_history5_with_history;
+
+-- apply changes
+create table migtest_e_user (
+ id bigserial not null,
+ constraint pk_migtest_e_user primary key (id)
+);
+
+create table migtest_mtm_c_migtest_mtm_m (
+ migtest_mtm_c_id integer not null,
+ migtest_mtm_m_id bigint not null,
+ constraint pk_migtest_mtm_c_migtest_mtm_m primary key (migtest_mtm_c_id,migtest_mtm_m_id)
+);
+
+create table migtest_mtm_m_migtest_mtm_c (
+ migtest_mtm_m_id bigint not null,
+ migtest_mtm_c_id integer not null,
+ constraint pk_migtest_mtm_m_migtest_mtm_c primary key (migtest_mtm_m_id,migtest_mtm_c_id)
+);
+
+alter table migtest_ckey_detail add column one_key integer;
+alter table migtest_ckey_detail add column two_key varchar(127);
+
+alter table migtest_ckey_detail add constraint fk_migtest_ckey_detail_parent foreign key (one_key,two_key) references migtest_ckey_parent (one_key,two_key) on delete restrict on update restrict;
+alter table migtest_ckey_parent add column assoc_id integer;
+
+alter table if exists migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id;
+alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete restrict on update restrict;
+alter table migtest_fk_none add constraint fk_migtest_fk_none_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
+alter table migtest_fk_none_via_join add constraint fk_migtest_fk_none_via_join_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
+alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id;
+alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete restrict on update restrict;
+
+update migtest_e_basic set status = 'A' where status is null;
+alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status;
+alter table migtest_e_basic alter column status set default 'A';
+alter table migtest_e_basic alter column status set not null;
+alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I','?'));
+alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2;
+alter table migtest_e_basic alter column status2 type varchar(127);
+alter table migtest_e_basic alter column status2 drop default;
+alter table migtest_e_basic alter column status2 drop not null;
+
+-- rename all collisions;
+alter table migtest_e_basic add constraint uq_migtest_e_basic_description unique (description);
+
+insert into migtest_e_user (id) select distinct user_id from migtest_e_basic;
+alter table migtest_e_basic add constraint fk_migtest_e_basic_user_id foreign key (user_id) references migtest_e_user (id) on delete restrict on update restrict;
+alter table migtest_e_basic alter column user_id drop not null;
+alter table migtest_e_basic add column new_string_field varchar(255) default 'foo''bar' not null;
+alter table migtest_e_basic add column new_boolean_field boolean default true not null;
+update migtest_e_basic set new_boolean_field = old_boolean;
+
+alter table migtest_e_basic add column new_boolean_field2 boolean default true not null;
+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;
+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);
+alter table migtest_e_basic add constraint uq_migtest_e_basic_indextest5 unique (indextest5);
+alter table migtest_e_enum drop constraint if exists ck_migtest_e_enum_test_status;
+
+alter table migtest_e_history alter column test_string TYPE bigint USING (test_string::integer);
+comment on column migtest_e_history.test_string is 'Column altered to long now';
+alter table migtest_e_history alter column test_string type bigint;
+comment on table migtest_e_history is 'We have history now';
+
+-- NOTE: table has @History - special migration may be necessary
+update migtest_e_history2 set test_string = 'unknown' where test_string is null;
+alter table migtest_e_history2 alter column test_string set default 'unknown';
+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
+update migtest_e_history6 set test_number1 = 42 where test_number1 is null;
+alter table migtest_e_history6 alter column test_number1 set default 42;
+alter table migtest_e_history6 alter column test_number1 set not null;
+alter table migtest_e_history6 alter column test_number2 drop not null;
+alter table migtest_e_softdelete add column deleted boolean default false not null;
+
+alter table migtest_oto_child add column master_id bigint;
+
+create index ix_migtest_e_basic_indextest3 on migtest_e_basic (indextest3);
+create index ix_migtest_e_basic_indextest6 on migtest_e_basic (indextest6);
+create index ix_migtest_oto_child_name on migtest_oto_child (name);
+drop index if exists ix_migtest_e_basic_indextest1;
+drop index if exists ix_migtest_e_basic_indextest5;
+drop index if exists idxd_migtest_0;
+drop index concurrently if exists ix_migtest_oto_child_lowername_id;
+drop index if exists ix_migtest_oto_child_lowername;
+create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c on migtest_mtm_c_migtest_mtm_m (migtest_mtm_c_id);
+alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
+
+create index ix_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m on migtest_mtm_c_migtest_mtm_m (migtest_mtm_m_id);
+alter table migtest_mtm_c_migtest_mtm_m add constraint fk_migtest_mtm_c_migtest_mtm_m_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
+
+create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m on migtest_mtm_m_migtest_mtm_c (migtest_mtm_m_id);
+alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_m foreign key (migtest_mtm_m_id) references migtest_mtm_m (id) on delete restrict on update restrict;
+
+create index ix_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c on migtest_mtm_m_migtest_mtm_c (migtest_mtm_c_id);
+alter table migtest_mtm_m_migtest_mtm_c add constraint fk_migtest_mtm_m_migtest_mtm_c_migtest_mtm_c foreign key (migtest_mtm_c_id) references migtest_mtm_c (id) on delete restrict on update restrict;
+
+create index ix_migtest_ckey_parent_assoc_id on migtest_ckey_parent (assoc_id);
+alter table migtest_ckey_parent add constraint fk_migtest_ckey_parent_assoc_id foreign key (assoc_id) references migtest_ckey_assoc (id) on delete restrict on update restrict;
+
+alter table migtest_oto_child add constraint fk_migtest_oto_child_master_id foreign key (master_id) references migtest_oto_master (id) on delete restrict on update restrict;
+
+alter table migtest_e_history add column sys_period tstzrange not null default tstzrange(current_timestamp, null);
+create table migtest_e_history_history(like migtest_e_history);
+create view migtest_e_history_with_history as select * from migtest_e_history union all select * from migtest_e_history_history;
+
+create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
+
+create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
+
+create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
+
+create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
+
+create or replace function migtest_e_history_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+create trigger migtest_e_history_history_upd
+ before update or delete on migtest_e_history
+ for each row execute procedure migtest_e_history_history_version();
+
+-- changes: [add test_string2, add test_string3, add new_column]
+create or replace function migtest_e_history2_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column, obsolete_string1, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column, OLD.obsolete_string1, OLD.obsolete_string2);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [exclude test_string]
+create or replace function migtest_e_history3_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history3_history (sys_period,id) values (tstzrange(lowerTs,upperTs), OLD.id);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [alter test_number]
+create or replace function migtest_e_history4_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [add test_boolean]
+create or replace function migtest_e_history5_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number, test_boolean) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number, OLD.test_boolean);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
diff --git a/src/test/resources/dbmigration/migrationtest/postgres9/1.2__dropsFor_1.1.sql b/src/test/resources/dbmigration/migrationtest/postgres9/1.2__dropsFor_1.1.sql
new file mode 100644
index 000000000..c9a6d03e6
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres9/1.2__dropsFor_1.1.sql
@@ -0,0 +1,40 @@
+-- Migrationscripts for ebean unittest
+-- drop dependencies
+drop view if exists migtest_e_history2_with_history;
+
+-- apply changes
+alter table migtest_e_basic drop column old_boolean;
+
+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;
+create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
+
+-- changes: [drop obsolete_string1, drop obsolete_string2]
+create or replace function migtest_e_history2_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.test_string3, OLD.new_column);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
diff --git a/src/test/resources/dbmigration/migrationtest/postgres9/1.3.sql b/src/test/resources/dbmigration/migrationtest/postgres9/1.3.sql
new file mode 100644
index 000000000..80535c062
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres9/1.3.sql
@@ -0,0 +1,141 @@
+-- Migrationscripts for ebean unittest
+-- drop dependencies
+drop view if exists migtest_e_history2_with_history;
+drop view if exists migtest_e_history3_with_history;
+drop view if exists migtest_e_history4_with_history;
+
+-- apply changes
+create table migtest_e_ref (
+ id bigserial not null,
+ name varchar(127) not null,
+ constraint uq_migtest_e_ref_name unique (name),
+ constraint pk_migtest_e_ref primary key (id)
+);
+
+alter table if exists migtest_ckey_detail drop constraint if exists fk_migtest_ckey_detail_parent;
+alter table if exists migtest_fk_cascade drop constraint if exists fk_migtest_fk_cascade_one_id;
+alter table migtest_fk_cascade add constraint fk_migtest_fk_cascade_one_id foreign key (one_id) references migtest_fk_cascade_one (id) on delete cascade on update cascade;
+alter table if exists migtest_fk_none drop constraint if exists fk_migtest_fk_none_one_id;
+alter table if exists migtest_fk_none_via_join drop constraint if exists fk_migtest_fk_none_via_join_one_id;
+alter table if exists migtest_fk_set_null drop constraint if exists fk_migtest_fk_set_null_one_id;
+alter table migtest_fk_set_null add constraint fk_migtest_fk_set_null_one_id foreign key (one_id) references migtest_fk_one (id) on delete set null on update set null;
+alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status;
+alter table migtest_e_basic alter column status drop default;
+alter table migtest_e_basic alter column status drop not null;
+alter table migtest_e_basic add constraint ck_migtest_e_basic_status check ( status in ('N','A','I'));
+
+update migtest_e_basic set status2 = 'N' where status2 is null;
+alter table migtest_e_basic drop constraint if exists ck_migtest_e_basic_status2;
+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;
+
+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;
+alter table migtest_e_basic alter column user_id set default 23;
+alter table migtest_e_basic alter column user_id set not null;
+alter table migtest_e_basic add column old_boolean boolean default false not null;
+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;
+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;
+alter table migtest_e_enum add constraint ck_migtest_e_enum_test_status check ( test_status in ('N','A','I'));
+comment on column migtest_e_history.test_string is '';
+comment on table migtest_e_history is '';
+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;
+
+-- NOTE: table has @History - special migration may be necessary
+update migtest_e_history6 set test_number2 = 7 where test_number2 is null;
+alter table migtest_e_history6 alter column test_number2 set default 7;
+alter table migtest_e_history6 alter column test_number2 set not null;
+create index ix_migtest_e_basic_indextest1 on migtest_e_basic (indextest1);
+create index ix_migtest_e_basic_indextest5 on migtest_e_basic (indextest5);
+create index ix_m12_otoc71 on migtest_oto_child (name);
+create unique index uq_m12_otoc71 on migtest_oto_child (lower(name));
+create unique index ix_migtest_oto_master_lowername on migtest_oto_master (lower(name));
+drop index if exists ix_migtest_e_basic_indextest3;
+drop index if exists ix_migtest_e_basic_indextest6;
+create index ix_migtest_e_basic_eref_id on migtest_e_basic (eref_id);
+alter table migtest_e_basic add constraint fk_migtest_e_basic_eref_id foreign key (eref_id) references migtest_e_ref (id) on delete restrict on update restrict;
+
+create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
+
+create view migtest_e_history3_with_history as select * from migtest_e_history3 union all select * from migtest_e_history3_history;
+
+create view migtest_e_history4_with_history as select * from migtest_e_history4 union all select * from migtest_e_history4_history;
+
+-- changes: [add obsolete_string1, add obsolete_string2]
+create or replace function migtest_e_history2_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2, test_string2, test_string3, new_column) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2, OLD.test_string2, OLD.test_string3, OLD.new_column);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [include test_string]
+create or replace function migtest_e_history3_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history3_history (sys_period,id, test_string) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [alter test_number]
+create or replace function migtest_e_history4_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history4_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
diff --git a/src/test/resources/dbmigration/migrationtest/postgres9/1.4__dropsFor_1.3.sql b/src/test/resources/dbmigration/migrationtest/postgres9/1.4__dropsFor_1.3.sql
new file mode 100644
index 000000000..748ee959b
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres9/1.4__dropsFor_1.3.sql
@@ -0,0 +1,91 @@
+-- Migrationscripts for ebean unittest
+-- drop dependencies
+drop trigger if exists migtest_e_history_history_upd on migtest_e_history cascade;
+drop function if exists migtest_e_history_history_version();
+
+drop view migtest_e_history_with_history;
+alter table migtest_e_history drop column sys_period;
+drop table migtest_e_history_history;
+
+drop view if exists migtest_e_history2_with_history;
+drop view if exists migtest_e_history5_with_history;
+
+-- apply changes
+alter table migtest_ckey_detail drop column one_key;
+
+alter table migtest_ckey_detail drop column two_key;
+
+alter table migtest_ckey_parent drop column assoc_id;
+
+alter table migtest_e_basic drop column new_string_field;
+
+alter table migtest_e_basic drop column new_boolean_field;
+
+alter table migtest_e_basic drop column new_boolean_field2;
+
+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;
+
+alter table migtest_oto_child drop column master_id;
+
+drop table if exists migtest_e_user cascade;
+drop sequence if exists migtest_e_user_seq;
+drop table if exists migtest_mtm_c_migtest_mtm_m cascade;
+drop table if exists migtest_mtm_m_migtest_mtm_c cascade;
+create view migtest_e_history2_with_history as select * from migtest_e_history2 union all select * from migtest_e_history2_history;
+
+create view migtest_e_history5_with_history as select * from migtest_e_history5 union all select * from migtest_e_history5_history;
+
+-- changes: [drop test_string2, drop test_string3, drop new_column]
+create or replace function migtest_e_history2_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history2_history (sys_period,id, test_string, obsolete_string2) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_string, OLD.obsolete_string2);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
+-- changes: [drop test_boolean]
+create or replace function migtest_e_history5_history_version() returns trigger as $$
+declare
+ lowerTs timestamptz;
+ upperTs timestamptz;
+begin
+ lowerTs = lower(OLD.sys_period);
+ upperTs = greatest(lowerTs + '1 microsecond',current_timestamp);
+ if (TG_OP = 'UPDATE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ NEW.sys_period = tstzrange(upperTs,null);
+ return new;
+ elsif (TG_OP = 'DELETE') then
+ insert into migtest_e_history5_history (sys_period,id, test_number) values (tstzrange(lowerTs,upperTs), OLD.id, OLD.test_number);
+ return old;
+ end if;
+end;
+$$ LANGUAGE plpgsql;
+
diff --git a/src/test/resources/dbmigration/migrationtest/postgres9/R__multi_comments.sql b/src/test/resources/dbmigration/migrationtest/postgres9/R__multi_comments.sql
new file mode 100644
index 000000000..0ede0c9eb
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres9/R__multi_comments.sql
@@ -0,0 +1,3 @@
+
+ -- h2 and postgres script
+
\ No newline at end of file
diff --git a/src/test/resources/dbmigration/migrationtest/postgres9/R__order_views.sql b/src/test/resources/dbmigration/migrationtest/postgres9/R__order_views.sql
new file mode 100644
index 000000000..ccf30a2c6
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres9/R__order_views.sql
@@ -0,0 +1,7 @@
+
+ create or replace view order_agg_vw as
+ select d.order_id, sum(d.order_qty * d.unit_price) as order_total,
+ sum(d.ship_qty * d.unit_price) as ship_total
+ from o_order_detail d
+ group by d.order_id
+
\ No newline at end of file
diff --git a/src/test/resources/dbmigration/migrationtest/postgres9/R__pg_indexes.sql b/src/test/resources/dbmigration/migrationtest/postgres9/R__pg_indexes.sql
new file mode 100644
index 000000000..fa0bab998
--- /dev/null
+++ b/src/test/resources/dbmigration/migrationtest/postgres9/R__pg_indexes.sql
@@ -0,0 +1,4 @@
+
+ -- postgres specific indexes
+ create index ix_ebasic_jmjb_gin2 on ebasic_json_map_json_b using gin(content jsonb_path_ops);
+
\ No newline at end of file
diff --git a/src/test/resources/ebean.properties b/src/test/resources/ebean.properties
index 3494a3750..21941d391 100644
--- a/src/test/resources/ebean.properties
+++ b/src/test/resources/ebean.properties
@@ -162,6 +162,12 @@ datasource.pg.databaseDriver=org.postgresql.Driver
#datasource.pg.capturestacktrace=true
datasource.pg.maxStackTraceSize=50
+datasource.pg9.username=unit
+datasource.pg9.password=unit
+datasource.pg9.databaseUrl=jdbc:postgresql://127.0.0.1:9432/unit
+datasource.pg9.databaseDriver=org.postgresql.Driver
+
+
#ebean.sqlserver.idType=SEQUENCE
# Our main testing target for SqlServer is sqlserver17
ebean.sqlserver.databasePlatformName=sqlserver17