Author: gk Date: Fri Oct 25 15:13:36 2019 New Revision: 1868940 URL: http://svn.apache.org/viewvc?rev=1868940&view=rev Log: torque templates: - add hasUniqueConstraintSize (column size in unique constraint) into Platform (allow sizing in mysql and probably postgresql) - add test table for this case (and test for multiple unique columns as well)
Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/model/Unique.java db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/model/UniqueColumn.java db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformDefaultImpl.java db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformMysqlImpl.java db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformPostgresqlImpl.java db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLModelTransformer.java db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLTransformer.java db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SqlAttributeName.java db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/createdb/templates/mysql/createdb.vm db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-4-1.xsd db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-derby.sql db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-hsqldb.sql db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-idtable-init.sql db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mssql.sql db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mysql.sql db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-oracle.sql db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-postgresql.sql db/torque/torque4/trunk/torque-templates/src/test/schema/schema.xml Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/model/Unique.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/model/Unique.java?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/model/Unique.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/model/Unique.java Fri Oct 25 15:13:36 2019 @@ -45,7 +45,7 @@ public class Unique // SQL generation properties - /** Contains all unique column names in a comma-separated String. */ + /** Contains all unique column names in a comma-separated String with optional character size of each column. */ public String uniqueColumnNames; } Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/model/UniqueColumn.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/model/UniqueColumn.java?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/model/UniqueColumn.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/model/UniqueColumn.java Fri Oct 25 15:13:36 2019 @@ -34,4 +34,11 @@ public class UniqueColumn * unique constraint. */ public String name; + + /** + * The optional size of the column to be included in the + * unique constraint. + */ + + public String size; } Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/Platform.java Fri Oct 25 15:13:36 2019 @@ -138,4 +138,12 @@ public interface Platform * @return true if separate schema creation is possible, false if not. */ boolean usesStandaloneSchema(); + + /** + * Returns whether the database has schema support unique constraint + * for columns with size + * + * @return true if unique column constraint has size + */ + boolean hasUniqueConstraintSize(); } Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformDefaultImpl.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformDefaultImpl.java?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformDefaultImpl.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformDefaultImpl.java Fri Oct 25 15:13:36 2019 @@ -235,4 +235,9 @@ public class PlatformDefaultImpl impleme { return false; } + + @Override + public boolean hasUniqueConstraintSize() { + return false; + } } Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformMysqlImpl.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformMysqlImpl.java?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformMysqlImpl.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformMysqlImpl.java Fri Oct 25 15:13:36 2019 @@ -143,4 +143,12 @@ public class PlatformMysqlImpl extends P .format(date.toInstant() .atZone(ZoneId.of("GMT"))); } + + /** + * {@inheritDoc} + */ + @Override + public boolean hasUniqueConstraintSize() { + return true; + } } Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformPostgresqlImpl.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformPostgresqlImpl.java?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformPostgresqlImpl.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformPostgresqlImpl.java Fri Oct 25 15:13:36 2019 @@ -145,4 +145,9 @@ public class PlatformPostgresqlImpl exte { return true; } + + @Override + public boolean hasUniqueConstraintSize() { + return true; + } } Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLModelTransformer.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLModelTransformer.java?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLModelTransformer.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLModelTransformer.java Fri Oct 25 15:13:36 2019 @@ -157,6 +157,9 @@ public class SQLModelTransformer impleme } table.primaryKeyColumnNames = primaryKeyColumnNames.toString(); + Platform platform = getPlatform(controllerState); + boolean hasUniqueSize = platform.hasUniqueConstraintSize(); + // unique int uniqueIndex = 1; for (final Unique unique : table.uniqueList) @@ -166,6 +169,9 @@ public class SQLModelTransformer impleme unique.name = table.name + "_UQ_" + uniqueIndex; } final StringBuilder uniqueColumnNames = new StringBuilder(); + + final StringBuilder uniqueColumnSizes = new StringBuilder(); + for (final UniqueColumn uniqueColumn : unique.uniqueColumnList) { if (uniqueColumnNames.length() != 0) @@ -173,8 +179,19 @@ public class SQLModelTransformer impleme uniqueColumnNames.append(", "); } uniqueColumnNames.append(uniqueColumn.name); + + if (hasUniqueSize) { + if (uniqueColumnSizes.length() != 0) + { + uniqueColumnSizes.append(", "); + } + if (uniqueColumn.size != null) { + uniqueColumnNames.append("(" + uniqueColumn.size + ")"); + } + } } unique.uniqueColumnNames = uniqueColumnNames.toString(); + ++uniqueIndex; } Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLTransformer.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLTransformer.java?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLTransformer.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SQLTransformer.java Fri Oct 25 15:13:36 2019 @@ -212,6 +212,13 @@ public class SQLTransformer implements S uniqueElement.setAttribute( SqlAttributeName.UNIQUE_COLUMN_NAMES, uniqueColumnNames); + String uniqueColumnSizes = collectAttributes( + uniqueElement, + TorqueSchemaElementName.UNIQUE_COLUMN.getName(), + TorqueSchemaAttributeName.SIZE.getName()); + uniqueElement.setAttribute( + SqlAttributeName.UNIQUE_COLUMN_SIZES, + uniqueColumnSizes); ++uniqueIndex; } Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SqlAttributeName.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SqlAttributeName.java?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SqlAttributeName.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/sql/SqlAttributeName.java Fri Oct 25 15:13:36 2019 @@ -42,6 +42,13 @@ public enum SqlAttributeName implements * in a comma-separated String. */ UNIQUE_COLUMN_NAMES("uniqueColumnNames"), + + /** + * The attribute contains all unique column sizes + * in a comma-separated String. + */ + + UNIQUE_COLUMN_SIZES("uniqueColumnSizes"), /** * The attribute contains all index column names Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/createdb/templates/mysql/createdb.vm URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/createdb/templates/mysql/createdb.vm?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/createdb/templates/mysql/createdb.vm (original) +++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/createdb/templates/mysql/createdb.vm Fri Oct 25 15:13:36 2019 @@ -15,4 +15,6 @@ ## specific language governing permissions and limitations ## under the License. drop database if exists $name; +## utf8mb4 has up to 4 bytes per char. +## database limits in mysql <5.7 for innodb 767bytes,m yisam 1000 and mysql > 5.7 3072bytes create database $name character set utf8mb4 collate utf8mb4_unicode_ci; Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-4-1.xsd URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-4-1.xsd?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-4-1.xsd (original) +++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/xsd/database-4-1.xsd Fri Oct 25 15:13:36 2019 @@ -810,6 +810,13 @@ The name to use in defining this constra </xs:documentation> </xs:annotation> </xs:attribute> + <xs:attribute name="size" type="xs:decimal" use="optional" > + <xs:annotation> + <xs:documentation xml:lang="en"> +The size of the field. E.g. columnname(size). Mainly to customize restrictions in bytes/character restrictions without global changes. + </xs:documentation> + </xs:annotation> + </xs:attribute> </xs:complexType> <!-- ===================================== Modified: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-derby.sql URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-derby.sql?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-derby.sql (original) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-derby.sql Fri Oct 25 15:13:36 2019 @@ -64,6 +64,7 @@ ALTER TABLE extext_schema drop table a; drop table b; +drop table b2; drop table r_ab; drop table c; drop table d; @@ -105,6 +106,20 @@ CREATE TABLE b -- ----------------------------------------------------------------------- +-- b2 +-- ----------------------------------------------------------------------- +CREATE TABLE b2 +( + b2_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY, + b2_name_1 VARCHAR(50) NOT NULL, + b2_name_2 VARCHAR(20) NOT NULL, + b2_name_3 VARCHAR(10) NOT NULL, + b2_name_4 VARCHAR(10) NOT NULL, + PRIMARY KEY(b2_id), + CONSTRAINT NAME_UNQ UNIQUE(b2_name_1, b2_name_2, b2_name_3, b2_name_4) +); + +-- ----------------------------------------------------------------------- -- r_ab -- ----------------------------------------------------------------------- CREATE TABLE r_ab Modified: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-hsqldb.sql URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-hsqldb.sql?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-hsqldb.sql (original) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-hsqldb.sql Fri Oct 25 15:13:36 2019 @@ -64,6 +64,7 @@ ALTER TABLE extext_schema drop table a if exists; drop table b if exists; +drop table b2 if exists; drop table r_ab if exists; drop table c if exists; drop table d if exists; @@ -109,6 +110,20 @@ CREATE TABLE b -- ----------------------------------------------------------------------- +-- b2 +-- ----------------------------------------------------------------------- +CREATE TABLE b2 +( + b2_id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL, + b2_name_1 VARCHAR(50) NOT NULL, + b2_name_2 VARCHAR(20) NOT NULL, + b2_name_3 VARCHAR(10) NOT NULL, + b2_name_4 VARCHAR(10) NOT NULL, + PRIMARY KEY(b2_id), + CONSTRAINT NAME_UNQ UNIQUE(b2_name_1, b2_name_2, b2_name_3, b2_name_4) +); + +-- ----------------------------------------------------------------------- -- r_ab -- ----------------------------------------------------------------------- CREATE TABLE r_ab Modified: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-idtable-init.sql URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-idtable-init.sql?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-idtable-init.sql (original) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-idtable-init.sql Fri Oct 25 15:13:36 2019 @@ -17,15 +17,16 @@ ## insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (103, 'a', 1000, 10); insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (104, 'b', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (105, 'r_ab', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (106, 'c', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (107, 'd', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (108, 'nopk', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (109, 'MULTIPK_SELF_REFTABLE', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (110, 'ifc_table', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (111, 'ifc_table2', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (112, 'INHERITANCE_TEST', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (113, 'ext_schema', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (114, 'extext_schema', 1000, 10); -insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (115, 'qualified_name', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (105, 'b2', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (106, 'r_ab', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (107, 'c', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (108, 'd', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (109, 'nopk', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (110, 'MULTIPK_SELF_REFTABLE', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (111, 'ifc_table', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (112, 'ifc_table2', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (113, 'INHERITANCE_TEST', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (114, 'ext_schema', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (115, 'extext_schema', 1000, 10); +insert into ID_TABLE (id_table_id, table_name, next_id, quantity) VALUES (116, 'qualified_name', 1000, 10); Modified: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mssql.sql URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mssql.sql?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mssql.sql (original) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mssql.sql Fri Oct 25 15:13:36 2019 @@ -112,6 +112,31 @@ BEGIN DROP TABLE b END ; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'b2') +BEGIN + DECLARE @reftable_5 nvarchar(60), @constraintname_5 nvarchar(60) + DECLARE refcursor CURSOR FOR + select reftables.name tablename, cons.name constraintname + from sysobjects tables, + sysobjects reftables, + sysobjects cons, + sysreferences ref + where tables.id = ref.rkeyid + and cons.id = ref.constid + and reftables.id = ref.fkeyid + and tables.name = 'b2' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_5, @constraintname_5 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_5+' drop constraint '+@constraintname_5) + FETCH NEXT from refcursor into @reftable_5, @constraintname_5 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE b2 +END +; IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'r_ab') BEGIN DECLARE @reftable_5 nvarchar(60), @constraintname_5 nvarchar(60) @@ -387,6 +412,31 @@ BEGIN DROP TABLE torque.qualified_name END ; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'qualified_name') +BEGIN + DECLARE @reftable_16 nvarchar(60), @constraintname_16 nvarchar(60) + DECLARE refcursor CURSOR FOR + select reftables.name tablename, cons.name constraintname + from sysobjects tables, + sysobjects reftables, + sysobjects cons, + sysreferences ref + where tables.id = ref.rkeyid + and cons.id = ref.constid + and reftables.id = ref.fkeyid + and tables.name = 'torque.qualified_name' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_16, @constraintname_16 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_16+' drop constraint '+@constraintname_16) + FETCH NEXT from refcursor into @reftable_16, @constraintname_16 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE torque.qualified_name +END +; DROP SCHEMA torque; @@ -422,6 +472,21 @@ CREATE TABLE b ) ; +/* ----------------------------------------------------------------------- */ +/* b2 */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE b2 +( + b2_id INT NOT NULL IDENTITY, + b2_name_1 VARCHAR(50) NOT NULL, + b2_name_2 VARCHAR(20) NOT NULL, + b2_name_3 VARCHAR(10) NOT NULL, + b2_name_4 VARCHAR(10) NOT NULL, + CONSTRAINT b2_PK PRIMARY KEY(b2_id), + CONSTRAINT NAME_UNQ UNIQUE (b2_name_1, b2_name_2, b2_name_3, b2_name_4) +) + +; /* ----------------------------------------------------------------------- */ Modified: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mysql.sql URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mysql.sql?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mysql.sql (original) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mysql.sql Fri Oct 25 15:13:36 2019 @@ -62,6 +62,7 @@ ALTER TABLE extext_schema drop table if exists a; drop table if exists b; +drop table if exists b2; drop table if exists r_ab; drop table if exists c; drop table if exists d; @@ -98,7 +99,22 @@ CREATE TABLE b b_id INTEGER NOT NULL AUTO_INCREMENT, name VARCHAR(50) NOT NULL, PRIMARY KEY(b_id), - UNIQUE NAME_UNQ (name) + UNIQUE NAME_UNQ (name(20)) +); + + +# ----------------------------------------------------------------------- +# b2 +# ----------------------------------------------------------------------- +CREATE TABLE b2 +( + b2_id INTEGER NOT NULL AUTO_INCREMENT, + b2_name_1 VARCHAR(50) NOT NULL, + b2_name_2 VARCHAR(20) NOT NULL, + b2_name_3 VARCHAR(10) NOT NULL, + b2_name_4 VARCHAR(10) NOT NULL, + PRIMARY KEY(b2_id), + UNIQUE NAME_UNQ (b2_name_1(20), b2_name_2, b2_name_3(5), b2_name_4) ); Modified: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-oracle.sql URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-oracle.sql?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-oracle.sql (original) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-oracle.sql Fri Oct 25 15:13:36 2019 @@ -64,6 +64,8 @@ DROP TABLE a CASCADE CONSTRAINTS; DROP SEQUENCE a_SEQ; DROP TABLE b CASCADE CONSTRAINTS; DROP SEQUENCE b_SEQ; +DROP TABLE b2 CASCADE CONSTRAINTS; +DROP SEQUENCE b2_SEQ; DROP TABLE r_ab CASCADE CONSTRAINTS; DROP TABLE c CASCADE CONSTRAINTS; DROP SEQUENCE c_SEQ; @@ -122,6 +124,27 @@ CREATE SEQUENCE b_SEQ INCREMENT BY 1 STA -- ----------------------------------------------------------------------- +-- b2 +-- ----------------------------------------------------------------------- +CREATE TABLE b2 +( + b2_id NUMBER(10,0)(0) NOT NULL, + b2_name_1 VARCHAR2(50 CHAR) NOT NULL, + b2_name_2 VARCHAR2(20 CHAR) NOT NULL, + b2_name_3 VARCHAR2(10 CHAR) NOT NULL, + b2_name_4 VARCHAR2(10 CHAR) NOT NULL, + CONSTRAINT NAME_UNQ UNIQUE (b2_name_1, b2_name_2, b2_name_3, b2_name_4) +); + +ALTER TABLE b2 + ADD CONSTRAINT b2_PK + PRIMARY KEY(b2_id); + + +CREATE SEQUENCE b2_SEQ INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE ORDER; + + +-- ----------------------------------------------------------------------- -- r_ab -- ----------------------------------------------------------------------- CREATE TABLE r_ab @@ -379,6 +402,9 @@ COMMENT ON TABLE a IS 'A table'; COMMENT ON TABLE b IS 'B table'; +COMMENT ON TABLE b2 IS 'B table'; + + COMMENT ON TABLE r_ab IS 'r_ab table'; Modified: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-postgresql.sql URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-postgresql.sql?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-postgresql.sql (original) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-postgresql.sql Fri Oct 25 15:13:36 2019 @@ -64,6 +64,8 @@ DROP TABLE a CASCADE; DROP SEQUENCE a_SEQ; DROP TABLE b CASCADE; DROP SEQUENCE b_SEQ; +DROP TABLE b2 CASCADE; +DROP SEQUENCE b2_SEQ; DROP TABLE r_ab CASCADE; DROP TABLE c CASCADE; DROP SEQUENCE c_SEQ; @@ -111,13 +113,29 @@ CREATE TABLE b b_id INTEGER NOT NULL, name VARCHAR(50) NOT NULL, PRIMARY KEY(b_id), - CONSTRAINT NAME_UNQ UNIQUE (name) + CONSTRAINT NAME_UNQ UNIQUE (name(20)) ); CREATE SEQUENCE b_SEQ INCREMENT BY 1 START WITH 1 NO MAXVALUE NO CYCLE; -- ----------------------------------------------------------------------- +-- b2 +-- ----------------------------------------------------------------------- +CREATE TABLE b2 +( + b2_id INTEGER NOT NULL, + b2_name_1 VARCHAR(50) NOT NULL, + b2_name_2 VARCHAR(20) NOT NULL, + b2_name_3 VARCHAR(10) NOT NULL, + b2_name_4 VARCHAR(10) NOT NULL, + PRIMARY KEY(b2_id), + CONSTRAINT NAME_UNQ UNIQUE (b2_name_1(20), b2_name_2, b2_name_3(5), b2_name_4) +); + +CREATE SEQUENCE b2_SEQ INCREMENT BY 1 START WITH 1 NO MAXVALUE NO CYCLE; + +-- ----------------------------------------------------------------------- -- r_ab -- ----------------------------------------------------------------------- CREATE TABLE r_ab @@ -335,6 +353,9 @@ COMMENT ON TABLE a IS 'A table'; COMMENT ON TABLE b IS 'B table'; +COMMENT ON TABLE b2 IS 'B table'; + + COMMENT ON TABLE r_ab IS 'r_ab table'; Modified: db/torque/torque4/trunk/torque-templates/src/test/schema/schema.xml URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/schema/schema.xml?rev=1868940&r1=1868939&r2=1868940&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/schema/schema.xml (original) +++ db/torque/torque4/trunk/torque-templates/src/test/schema/schema.xml Fri Oct 25 15:13:36 2019 @@ -18,10 +18,10 @@ under the License. --> <database - xmlns="http://db.apache.org/torque/4.0/templates/database" + xmlns="http://db.apache.org/torque/4.1/templates/database" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://db.apache.org/torque/4.1/templates/database - http://db.apache.org/torque/torque-4.1/documentation/orm-reference/database-4-1-strict.xsd" + http://db.apache.org/torque/torque-4.1/documentation/orm-reference/database-4-1.xsd" name="bookstore" defaultIdMethod="native"> <external-schema filename="ext-schema.xml" /> @@ -98,7 +98,50 @@ size="50" /> <unique name="NAME_UNQ"> - <unique-column name="name"/> + <unique-column name="name" size="20"/> + </unique> + </table> + + <!-- =================================================== --> + <!-- B2 T A B L E --> + <!-- =================================================== --> + + <table name="b2" description="B table"> + <column + name="b2_id" + required="true" + primaryKey="true" + type="INTEGER" + /> + <column + name="b2_name_1" + required="true" + type="VARCHAR" + size="50" + /> + <column + name="b2_name_2" + required="true" + type="VARCHAR" + size="20" + /> + <column + name="b2_name_3" + required="true" + type="VARCHAR" + size="10" + /> + <column + name="b2_name_4" + required="true" + type="VARCHAR" + size="10" + /> + <unique name="NAME_UNQ"> + <unique-column name="b2_name_1" size="20"/> + <unique-column name="b2_name_2"/> + <unique-column name="b2_name_3" size="5"/> + <unique-column name="b2_name_4"/> </unique> </table> --------------------------------------------------------------------- To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org For additional commands, e-mail: torque-dev-h...@db.apache.org