Forgot to add PRIMARY KEY for Entities, Types and Mixin tables and CREATE INDEX for _ASSOCS tables. ALso check that entities named "ENTITIES" and "TYPES" is handled correctly (counter suffix).
Project: http://git-wip-us.apache.org/repos/asf/polygene-java/repo Commit: http://git-wip-us.apache.org/repos/asf/polygene-java/commit/f6a5b338 Tree: http://git-wip-us.apache.org/repos/asf/polygene-java/tree/f6a5b338 Diff: http://git-wip-us.apache.org/repos/asf/polygene-java/diff/f6a5b338 Branch: refs/heads/develop Commit: f6a5b3384163e9be2fafce022c6ce2b5c984a420 Parents: 0de78c4 Author: niclas <[email protected]> Authored: Thu Oct 26 19:22:06 2017 +0800 Committer: niclas <[email protected]> Committed: Thu Oct 26 19:23:21 2017 +0800 ---------------------------------------------------------------------- .../java/org/apache/polygene/entitystore/sql/MixinTable.java | 4 ++++ .../java/org/apache/polygene/entitystore/sql/SqlTable.java | 2 ++ .../java/org/apache/polygene/entitystore/sql/TypesTable.java | 8 +++++++- 3 files changed, 13 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/polygene-java/blob/f6a5b338/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/MixinTable.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/MixinTable.java b/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/MixinTable.java index c55e793..70d13b9 100644 --- a/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/MixinTable.java +++ b/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/MixinTable.java @@ -42,6 +42,7 @@ import org.jooq.InsertSetStep; import org.jooq.Record; import org.jooq.Table; import org.jooq.UpdateSetMoreStep; +import org.jooq.impl.DSL; class MixinTable implements TableFields @@ -248,6 +249,9 @@ class MixinTable .column( indexColumn ) .column( referenceColumn ) .execute(); + dsl.createIndex( DSL.name( "IDX_" + table.getName() ) ) + .on( table, identityColumn ) + .execute(); return table; } else http://git-wip-us.apache.org/repos/asf/polygene-java/blob/f6a5b338/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/SqlTable.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/SqlTable.java b/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/SqlTable.java index 36fc983..1d8018e 100644 --- a/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/SqlTable.java +++ b/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/SqlTable.java @@ -224,6 +224,7 @@ public interface SqlTable extends ServiceActivation .column( tableNameColumn ) .column( createdColumn ) .column( modifiedColumn ) + .constraint( DSL.primaryKey( identityColumn ) ) .execute(); dsl.createTableIfNotExists( dsl.tableNameOf( entitiesTableName ) ) @@ -234,6 +235,7 @@ public interface SqlTable extends ServiceActivation .column( typeNameColumn ) .column( modifiedColumn ) .column( createdColumn ) + .constraint( DSL.primaryKey( identityColumn ) ) .execute(); } ); } http://git-wip-us.apache.org/repos/asf/polygene-java/blob/f6a5b338/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/TypesTable.java ---------------------------------------------------------------------- diff --git a/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/TypesTable.java b/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/TypesTable.java index 4c4b6ea..9082302 100644 --- a/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/TypesTable.java +++ b/extensions/entitystore-sql/src/main/java/org/apache/polygene/entitystore/sql/TypesTable.java @@ -121,6 +121,8 @@ public class TypesTable primaryTable.column( fieldOf( assoc ) ); } } ); + primaryTable.constraint( DSL.primaryKey( identityColumn ) ); + int result1 = primaryTable.execute(); int result3 = dsl.insertInto( typesTable ) .set( identityColumn, mixinTypeName ) @@ -135,7 +137,7 @@ public class TypesTable { String typeName = mixinType.getSimpleName(); String postFix = ""; - int counter = 0; + int counter = 1; boolean found = false; do { @@ -147,6 +149,10 @@ public class TypesTable private boolean checkForTableNamed( String tableName ) { + if( tableName.equalsIgnoreCase( "entities" ) || tableName.equalsIgnoreCase( "types" )) + { + return true; + } return dsl.select() .from( typesTable ) .where( tableNameColumn.eq( tableName ) )
