Author: gk Date: Fri Mar 22 15:32:47 2019 New Revision: 1856067 URL: http://svn.apache.org/viewvc?rev=1856067&view=rev Log: -add parameterized test in junit test class TestProcessing - preliminarily comment html/xdoc tests in junit test class TestProcessing, more info in TORQUE-358 - add timestamp test field in schema - add scale handling in type mapping, transformer and platform
Added: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-derby.sql (with props) db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-hsqldb.sql (with props) db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mssql.sql (with props) db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mysql.sql (with props) db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-oracle.sql (with props) db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-postgresql.sql (with props) Removed: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema.sql Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformHsqldbImpl.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/transformer/SchemaTypeHelper.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/typemapping/SqlType.java db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/doc/html/templates/html-table.vm db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/doc/xdoc/templates/xdoc-table.vm db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/GenerateOmClassesFromJavaTest.java db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/jdbc2schema/Jdbc2SchemaTest.java db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-datamodel.xml db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema.html db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/jdbc2schema/expected-schema.xml db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/jdbc2schema/jdbc2schemaTest.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/platform/PlatformHsqldbImpl.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformHsqldbImpl.java?rev=1856067&r1=1856066&r2=1856067&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformHsqldbImpl.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/platform/PlatformHsqldbImpl.java Fri Mar 22 15:32:47 2019 @@ -101,6 +101,8 @@ public class PlatformHsqldbImpl extends dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); return dateFormat.format(date); } + + /** * {@inheritDoc} @@ -125,4 +127,15 @@ public class PlatformHsqldbImpl extends { return true; } + + @Override + public boolean hasSize(String sqlType) { + return "VARCHAR".equals(sqlType); + } + + @Override + public boolean hasScale(String sqlType) { + return "TIMESTAMP".equals(sqlType) || "DATE".equals(sqlType) || "TIME".equals(sqlType); + } + } 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=1856067&r1=1856066&r2=1856067&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 Mar 22 15:32:47 2019 @@ -20,6 +20,8 @@ package org.apache.torque.templates.plat */ import java.text.SimpleDateFormat; +import java.time.ZoneId; +import java.time.format.DateTimeFormatter; import java.util.Date; import java.util.TimeZone; @@ -36,6 +38,9 @@ public class PlatformMysqlImpl extends P { /** The date format for formatting database dates. */ private static final String DATE_FORMAT = "''yyyy-MM-dd''"; + + /** The date format for formatting database dates. */ + private static final String TIMESTAMP_FORMAT = "''yyyy-MM-dd HH:mm:ss.SSS''"; /** * Default constructor. @@ -59,7 +64,7 @@ public class PlatformMysqlImpl extends P new SqlType("MEDIUMTEXT")); setSchemaTypeToSqlTypeMapping( SchemaType.TIMESTAMP, - new SqlType("DATETIME(3)")); // support milliseconds + new SqlType("DATETIME")); // support milliseconds setSchemaTypeToSqlTypeMapping( SchemaType.BINARY, new SqlType("BLOB")); @@ -96,6 +101,19 @@ public class PlatformMysqlImpl extends P || "BLOB".equals(sqlType) || "MEDIUMBLOB".equals(sqlType) || "LONGBLOB".equals(sqlType)); } + + + /** + * precison in time formats is more like a scale, which is the number of digits to the right of the decimal point in a number. + * + * @see Platform#hasScale(String) + */ + @Override + public boolean hasScale(String sqlType) + { + return "TIMESTAMP".equals(sqlType) || "DATETIME".equals(sqlType) || "DATE".equals(sqlType) || "TIME".equals(sqlType); + } + @Override protected boolean escapeBackslashes() @@ -113,4 +131,16 @@ public class PlatformMysqlImpl extends P dateFormat.setTimeZone(TimeZone.getTimeZone("GMT")); return dateFormat.format(date); } + + /** + * {@inheritDoc} + */ + @Override + public String getTimestampString(Date date) + { + return DateTimeFormatter.ofPattern(TIMESTAMP_FORMAT ) + //.withZone( ZoneId.of("GMT") ) + .format(date.toInstant() + .atZone(ZoneId.of("GMT"))); + } } Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/SchemaTypeHelper.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/SchemaTypeHelper.java?rev=1856067&r1=1856066&r2=1856067&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/SchemaTypeHelper.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/transformer/SchemaTypeHelper.java Fri Mar 22 15:32:47 2019 @@ -20,8 +20,8 @@ package org.apache.torque.templates.tran */ import java.util.List; +import java.util.Objects; -import org.apache.commons.lang3.ObjectUtils; import org.apache.torque.generator.control.ControllerState; import org.apache.torque.generator.source.SourceElement; import org.apache.torque.generator.source.transform.SourceTransformerException; @@ -277,16 +277,16 @@ public final class SchemaTypeHelper + columnElement.getAttribute(TorqueSchemaAttributeName.NAME) + " was not found in this schema"); } - final String sqlType = ObjectUtils.toString( + final String sqlType = Objects.toString( domainElement.getAttribute(TorqueSchemaAttributeName.TYPE), null); - final String defaultValue = ObjectUtils.toString( + final String defaultValue = Objects.toString( domainElement.getAttribute(TorqueSchemaAttributeName.DEFAULT), null); - final String size = ObjectUtils.toString( + final String size = Objects.toString( domainElement.getAttribute(TorqueSchemaAttributeName.SIZE), null); - final String scale = ObjectUtils.toString( + final String scale = Objects.toString( domainElement.getAttribute(TorqueSchemaAttributeName.SCALE), null); return new SqlType(sqlType, size, scale, defaultValue); 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=1856067&r1=1856066&r2=1856067&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 Mar 22 15:32:47 2019 @@ -274,6 +274,11 @@ public class SQLModelTransformer impleme sqlTypeName += sqlType.printSize( platform.getSizeSuffix(sqlTypeName)); } + + if (platform.hasScale(sqlTypeName)) + { + sqlTypeName += sqlType.printScale(); + } resultList.add(sqlTypeName); 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=1856067&r1=1856066&r2=1856067&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 Mar 22 15:32:47 2019 @@ -22,8 +22,8 @@ package org.apache.torque.templates.tran import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Objects; -import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.StringUtils; import org.apache.torque.generator.control.ControllerState; import org.apache.torque.generator.source.SourceElement; @@ -316,9 +316,9 @@ public class SQLTransformer implements S schemaType, domainType, controllerState, - ObjectUtils.toString(size, null), - ObjectUtils.toString(scale, null), - ObjectUtils.toString(defaultValue, null)); + Objects.toString(size, null), + Objects.toString(scale, null), + Objects.toString(defaultValue, null)); Platform platform = getPlatform(controllerState); List<String> resultList = new ArrayList<>(); @@ -330,6 +330,11 @@ public class SQLTransformer implements S sqlTypeName += sqlType.printSize( platform.getSizeSuffix(sqlTypeName)); } + + if (platform.hasScale(sqlTypeName)) + { + sqlTypeName += sqlType.printScale(); + } resultList.add(sqlTypeName); Modified: db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/typemapping/SqlType.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/typemapping/SqlType.java?rev=1856067&r1=1856066&r2=1856067&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/typemapping/SqlType.java (original) +++ db/torque/torque4/trunk/torque-templates/src/main/java/org/apache/torque/templates/typemapping/SqlType.java Fri Mar 22 15:32:47 2019 @@ -202,9 +202,8 @@ public class SqlType /** * Return the size and scale in brackets for use in an SQL script. - * - * @param sizeSuffix size suffix value - * @return size and scale or an empty String if there are no values + * + * @return size and scale, size or an empty String if there are no values * available. */ public String printSize(final String sizeSuffix) @@ -222,6 +221,24 @@ public class SqlType return ""; } } + + /** + * Return the scale in brackets for use in an SQL script. + * + * @return scale or an empty String if there are no values + * available. + */ + public String printScale() + { + if (StringUtils.isNotBlank(scale)) + { + return '(' + scale + ')'; + } + else + { + return ""; + } + } /** * Returns a new instance with the given sqlTypeName, size, scale @@ -238,4 +255,5 @@ public class SqlType { return new SqlType(this, size, scale, defaultValue); } + } Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/doc/html/templates/html-table.vm URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/doc/html/templates/html-table.vm?rev=1856067&r1=1856066&r2=1856067&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/doc/html/templates/html-table.vm (original) +++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/doc/html/templates/html-table.vm Fri Mar 22 15:32:47 2019 @@ -34,6 +34,8 @@ $!description <tr class="detailrow"> #set ( $columnName = $columnElement.getAttribute("name")) #set ( $columnSize = $columnElement.getAttribute("size")) + ## scale takes precedence of scale in inheritance + #set ( $columnScale = $columnElement.getAttribute("scale")) #set ( $columnDefault = $columnElement.getAttribute("default")) #set ( $columnDescription = $columnElement.getAttribute("description")) #set ( $columnPrimaryKey = $columnElement.getAttribute("primaryKey")) @@ -50,7 +52,7 @@ $!description #end </td> <td class="detailbackground detailborder detailtype">$columnFieldType</td> - <td class="detailbackground detailborder detailsize">#if ($columnSize && $columnSize.length() > 0) $columnSize #else #end</td> + <td class="detailbackground detailborder detailsize#if(($columnScale &&$columnScale.length() > 0)) detailscale#end">#if (($columnScale &&$columnScale.length() > 0)) $columnScale #elseif ($columnSize && $columnSize.length() > 0) $columnSize #else #end</td> <td class="detailbackground detailborder detaildefault">#if ($columnDefault) $columnDefault#else #end</td> <td class="detailbackground detailborder detailjavaname">$columnJavaName</td> <td class="detailbackground detailborder detailpk"><center> #if ($columnPrimaryKey=="true")X#else #end </center></td> Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/doc/xdoc/templates/xdoc-table.vm URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/doc/xdoc/templates/xdoc-table.vm?rev=1856067&r1=1856066&r2=1856067&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/doc/xdoc/templates/xdoc-table.vm (original) +++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/doc/xdoc/templates/xdoc-table.vm Fri Mar 22 15:32:47 2019 @@ -34,7 +34,9 @@ #foreach ($columnElement in $torqueGen.getChildren("column")) <tr class="detailrow"> #set ( $columnName = $columnElement.getAttribute("name")) + ## scale takes precedence of scale in inheritance #set ( $columnSize = $columnElement.getAttribute("size")) + #set ( $columnScale = $columnElement.getAttribute("scale")) #set ( $columnDefault = $columnElement.getAttribute("default")) #set ( $columnDescription = $columnElement.getAttribute("description")) #set ( $columnPrimaryKey = $columnElement.getAttribute("primaryKey")) @@ -51,7 +53,7 @@ #end </td> <td class="detailbackground detailborder detailtype">$columnFieldType</td> - <td class="detailbackground detailborder detailsize">#if ($columnSize && $columnSize.length() > 0) $columnSize #else  #end</td> + <td class="detailbackground detailborder detailsize#if($columnScale &&$columnScale.length() > 0) detailscale#end">#if ($columnScale &&$columnScale.length() > 0) $columnScale #elseif ($columnSize && $columnSize.length() > 0) $columnSize #else  #end</td> <td class="detailbackground detailborder detaildefault">#if ($columnDefault) $columnDefault#else  #end</td> <td class="detailbackground detailborder detailjavaname">$columnJavaName</td> <td class="detailbackground detailborder detailpk"><center> #if ($columnPrimaryKey=="true")X#else  #end </center></td> Modified: db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/GenerateOmClassesFromJavaTest.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/GenerateOmClassesFromJavaTest.java?rev=1856067&r1=1856066&r2=1856067&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/GenerateOmClassesFromJavaTest.java (original) +++ db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/GenerateOmClassesFromJavaTest.java Fri Mar 22 15:32:47 2019 @@ -42,7 +42,7 @@ import org.junit.jupiter.api.Test; * * This does not really test the templates, * however in the reference documentation it is mentioned how to use - * the genrator/tempaltes from java, and this test makes sure it works + * the generator/templates from java, and this test makes sure it works * as documented. * * @version $Id$ Modified: db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java?rev=1856067&r1=1856066&r2=1856067&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java (original) +++ db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java Fri Mar 22 15:32:47 2019 @@ -44,7 +44,10 @@ import org.apache.torque.generator.file. import org.apache.torque.generator.source.SourceProvider; import org.apache.torque.generator.source.stream.FileSourceProvider; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; +import org.junit.jupiter.params.ParameterizedTest; +import org.junit.jupiter.params.provider.ValueSource; public class TestProcessing @@ -214,7 +217,15 @@ public class TestProcessing assertFalse(generationFolder2.exists()); } - @Test + /** + * Ignore until + * + * https://issues.apache.org/jira/projects/TORQUE/issues/TORQUE-358?filter=allopenissues + * is resolved + * + * @throws Exception + */ + @Disabled public void testHtmlDocTemplates() throws Exception { File generationFolder = new File("target/generated-docs"); @@ -264,7 +275,15 @@ public class TestProcessing assertFalse(generationFolder2.exists()); } - @Test + /** + * Ignore until + * + * https://issues.apache.org/jira/projects/TORQUE/issues/TORQUE-358?filter=allopenissues + * is resolved + * + * @throws Exception + */ + @Disabled public void testXdocTemplates() throws Exception { File generationFolder = new File("target/generated-xdocs"); @@ -303,8 +322,9 @@ public class TestProcessing assertFalse(generationFolder2.exists()); } - @Test - public void testSqlDdlTemplates() throws Exception + @ParameterizedTest + @ValueSource(strings = { "mysql", "oracle", "mssql", "postgresql", "hsqldb", "derby" } ) + public void testSqlDdlTemplates(String dbType) throws Exception { File generationFolder = new File("target/generated-sql"); File generationFolder2 = new File("target/generated-sql-2"); @@ -314,7 +334,7 @@ public class TestProcessing final Controller controller = new Controller(); final List<UnitDescriptor> unitDescriptors = new ArrayList<>(); final Map<String, String> overrideOptions = new HashMap<>(); - overrideOptions.put("torque.database", "mysql"); + overrideOptions.put("torque.database", dbType); final CustomProjectPaths projectPaths = new CustomProjectPaths( @@ -337,7 +357,7 @@ public class TestProcessing // generate controller.run(unitDescriptors); - assertOutput("expected-schema.sql", "target/generated-sql/schema.sql"); + assertOutput("expected-schema-"+dbType+".sql", "target/generated-sql/schema.sql"); assertFalse(generationFolder2.exists()); } Modified: db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/jdbc2schema/Jdbc2SchemaTest.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/jdbc2schema/Jdbc2SchemaTest.java?rev=1856067&r1=1856066&r2=1856067&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/jdbc2schema/Jdbc2SchemaTest.java (original) +++ db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/jdbc2schema/Jdbc2SchemaTest.java Fri Mar 22 15:32:47 2019 @@ -29,6 +29,7 @@ import java.io.File; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; @@ -40,9 +41,9 @@ import java.util.Map; import java.util.StringTokenizer; import org.apache.commons.io.FileUtils; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; import org.apache.log4j.BasicConfigurator; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.apache.torque.generator.GeneratorException; import org.apache.torque.generator.configuration.UnitDescriptor; import org.apache.torque.generator.configuration.option.MapOptionsConfiguration; @@ -60,8 +61,8 @@ import org.xmlunit.diff.ElementSelectors public class Jdbc2SchemaTest /* implements TestExecutionExceptionHandler */ { - private static Log log - = LogFactory.getLog(Jdbc2SchemaTest.class); + private static Logger log + = LogManager.getLogger(Jdbc2SchemaTest.class); private static String SQL_FILENAME = "jdbc2schemaTest.sql"; @@ -155,10 +156,10 @@ public class Jdbc2SchemaTest /* implemen File generatedFile = new File("target/generated-schema/schema.xml"); assertTrue(generatedFile.exists()); - String result = FileUtils.readFileToString(generatedFile); + String result = FileUtils.readFileToString(generatedFile, StandardCharsets.UTF_8); File referenceFile = new File( "src/test/resources/org/apache/torque/templates/jdbc2schema/expected-schema.xml"); - String reference = FileUtils.readFileToString(referenceFile); + String reference = FileUtils.readFileToString(referenceFile, StandardCharsets.UTF_8); Diff myDiffSimilar = DiffBuilder.compare(reference).ignoreComments().withTest(result) .withNodeMatcher(new DefaultNodeMatcher(ElementSelectors.byName)) Modified: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-datamodel.xml URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-datamodel.xml?rev=1856067&r1=1856066&r2=1856067&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-datamodel.xml (original) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-datamodel.xml Fri Mar 22 15:32:47 2019 @@ -142,6 +142,19 @@ </tr> <tr class="detailrow"> + <td class="detailbackground detailborder detailname notnull" id="acreated_at">created_at + </td> + <td class="detailbackground detailborder detailtype">java.util.Date</td> + <td class="detailbackground detailborder detailsize detailscale"> 6 </td> + <td class="detailbackground detailborder detaildefault"> a_name</td> + <td class="detailbackground detailborder detailjavaname">CreatedAt</td> + <td class="detailbackground detailborder detailpk"><center>   </center></td> + <td class="detailbackground detailborder detailfk"><center>   </center></td> + <td class="detailbackground detailborder detailnotnull"><center> X </center></td> + <td class="detailbackground detailborder detaildescription">  </td> + </tr> + <tr class="detailrow"> + <td class="detailbackground detailborder detailname" id="aenum">enum </td> <td class="detailbackground detailborder detailtype">EnumEnum</td> Added: 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=1856067&view=auto ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-derby.sql (added) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-derby.sql Fri Mar 22 15:32:47 2019 @@ -0,0 +1,303 @@ +## Licensed to the Apache Software Foundation (ASF) under one +## or more contributor license agreements. See the NOTICE file +## distributed with this work for additional information +## regarding copyright ownership. The ASF licenses this file +## to you under the Apache License, Version 2.0 (the +## "License"); you may not use this file except in compliance +## with the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, +## software distributed under the License is distributed on an +## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +## KIND, either express or implied. See the License for the +## specific language governing permissions and limitations +## under the License. +## +-- ----------------------------------------------------------------------- +-- derby SQL script for schema bookstore +-- ----------------------------------------------------------------------- + + +DROP VIEW a_b; + +ALTER TABLE r_ab + DROP CONSTRAINT r_ab_FK_1; + + +ALTER TABLE r_ab + DROP CONSTRAINT r_ab_FK_2; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_1; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_2; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_3; + + +ALTER TABLE d + DROP CONSTRAINT d_FK_1; + + +ALTER TABLE d + DROP CONSTRAINT d_FK_2; + + +ALTER TABLE MULTIPK_SELF_REFTABLE + DROP CONSTRAINT MULTIPK_SELF_REFTABLE_FK_1; + + +ALTER TABLE ext_schema + DROP CONSTRAINT ext_schema_FK_1; + + +ALTER TABLE extext_schema + DROP CONSTRAINT extext_schema_FK_1; + + +drop table a; +drop table b; +drop table r_ab; +drop table c; +drop table d; +drop table nopk; +drop table MULTIPK_SELF_REFTABLE; +drop table ifc_table; +drop table ifc_table2; +drop table INHERITANCE_TEST; +drop table ext_schema; +drop table extext_schema; +drop table torque.qualified_name; + +-- ----------------------------------------------------------------------- +-- a +-- ----------------------------------------------------------------------- +CREATE TABLE a +( + a_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY, + name VARCHAR(50) default 'a_name' NOT NULL, + contactdata VARCHAR(500) NOT NULL, + created_at TIMESTAMP default CURRENT_TIMESTAMP NOT NULL, + updated_at TIMESTAMP NOT NULL, + enum VARCHAR(50) default 'x', + PRIMARY KEY(a_id) +); + +CREATE INDEX NAME_IDX ON a (name); + +-- ----------------------------------------------------------------------- +-- b +-- ----------------------------------------------------------------------- +CREATE TABLE b +( + b_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY, + name VARCHAR(50) NOT NULL, + PRIMARY KEY(b_id), + CONSTRAINT NAME_UNQ UNIQUE(name) +); + + +-- ----------------------------------------------------------------------- +-- r_ab +-- ----------------------------------------------------------------------- +CREATE TABLE r_ab +( + a_id INTEGER NOT NULL, + b_id INTEGER NOT NULL, + name VARCHAR(50) NOT NULL, + PRIMARY KEY(a_id, b_id) +); + + +-- ----------------------------------------------------------------------- +-- c +-- ----------------------------------------------------------------------- +CREATE TABLE c +( + c_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY, + a_id INTEGER NOT NULL, + b_id INTEGER NOT NULL, + name VARCHAR(50) NOT NULL, + PRIMARY KEY(c_id) +); + + +-- ----------------------------------------------------------------------- +-- d +-- ----------------------------------------------------------------------- +CREATE TABLE d +( + d_id INTEGER NOT NULL, + name VARCHAR(255) NOT NULL, + b_id INTEGER NOT NULL, + a_id INTEGER NOT NULL, + PRIMARY KEY(d_id, b_id, a_id) +); + + +-- ----------------------------------------------------------------------- +-- nopk +-- ----------------------------------------------------------------------- +CREATE TABLE nopk +( + intcol INTEGER, + name VARCHAR(50) +); + + +-- ----------------------------------------------------------------------- +-- MULTIPK_SELF_REFTABLE +-- ----------------------------------------------------------------------- +CREATE TABLE MULTIPK_SELF_REFTABLE +( + COL1 DECIMAL NOT NULL, + COL2 DECIMAL NOT NULL, + PARENT_COL1 DECIMAL NOT NULL, + PARENT_COL2 DECIMAL NOT NULL, + PRIMARY KEY(COL1, COL2) +); + + +-- ----------------------------------------------------------------------- +-- ifc_table +-- ----------------------------------------------------------------------- +CREATE TABLE ifc_table +( + id INTEGER NOT NULL, + name VARCHAR(50), + PRIMARY KEY(id) +); + + +-- ----------------------------------------------------------------------- +-- ifc_table2 +-- ----------------------------------------------------------------------- +CREATE TABLE ifc_table2 +( + id INTEGER NOT NULL, + name VARCHAR(50), + PRIMARY KEY(id) +); + + +-- ----------------------------------------------------------------------- +-- INHERITANCE_TEST +-- ----------------------------------------------------------------------- +CREATE TABLE INHERITANCE_TEST +( + INHERITANCE_TEST INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY, + CLASS_NAME CHAR(1), + PAYLOAD_PARENT VARCHAR(100) NOT NULL, + PAYLOAD_B VARCHAR(100), + PAYLOAD_C VARCHAR(100), + PAYLOAD_D VARCHAR(100), + PRIMARY KEY(INHERITANCE_TEST) +); + + +-- ----------------------------------------------------------------------- +-- ext_schema +-- ----------------------------------------------------------------------- +CREATE TABLE ext_schema +( + ext_schema_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY, + ext_id INTEGER, + test INTEGER NOT NULL, + PRIMARY KEY(ext_schema_id) +); + +CREATE INDEX index_ext_id ON ext_schema (ext_id); + +-- ----------------------------------------------------------------------- +-- extext_schema +-- ----------------------------------------------------------------------- +CREATE TABLE extext_schema +( + extext_schema_id INTEGER NOT NULL GENERATED BY DEFAULT AS IDENTITY, + extext_id INTEGER, + test INTEGER NOT NULL, + PRIMARY KEY(extext_schema_id) +); + + +-- ----------------------------------------------------------------------- +-- torque.qualified_name +-- ----------------------------------------------------------------------- +CREATE TABLE torque.qualified_name +( + id INTEGER, + payload VARCHAR(100) +); + +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_FK_1 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_FK_2 + FOREIGN KEY (b_id) + REFERENCES b (b_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_1 + FOREIGN KEY (a_id, b_id) + REFERENCES r_ab (a_id, b_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_2 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_3 + FOREIGN KEY (b_id) + REFERENCES b (b_id); + +ALTER TABLE d + ADD CONSTRAINT d_FK_1 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE d + ADD CONSTRAINT d_FK_2 + FOREIGN KEY (a_id, b_id) + REFERENCES r_ab (a_id, b_id); + +ALTER TABLE MULTIPK_SELF_REFTABLE + ADD CONSTRAINT MULTIPK_SELF_REFTABLE_FK_1 + FOREIGN KEY (PARENT_COL1, PARENT_COL2) + REFERENCES MULTIPK_SELF_REFTABLE (COL1, COL2); + +ALTER TABLE ext_schema + ADD CONSTRAINT ext_schema_FK_1 + FOREIGN KEY (ext_id) + REFERENCES ext (ext_id); + +ALTER TABLE extext_schema + ADD CONSTRAINT extext_schema_FK_1 + FOREIGN KEY (extext_id) + REFERENCES extext (extext_id); + +ALTER TABLE a + ADD CONSTRAINT enum_CHECK + CHECK + (enum in ('x', 'y', 'z')); + +CREATE VIEW a_b AS + SELECT + a.a_id AS a_id, + a.name AS a_name, + b.b_id AS b_id, + b.name AS b_name, + a.enum AS enum + from a join r_ab on a.a_id=r_ab.a_id join b on r_ab.b_id=b.b_id; + + Propchange: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-derby.sql ------------------------------------------------------------------------------ svn:eol-style = native Added: 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=1856067&view=auto ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-hsqldb.sql (added) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-hsqldb.sql Fri Mar 22 15:32:47 2019 @@ -0,0 +1,307 @@ +## Licensed to the Apache Software Foundation (ASF) under one +## or more contributor license agreements. See the NOTICE file +## distributed with this work for additional information +## regarding copyright ownership. The ASF licenses this file +## to you under the Apache License, Version 2.0 (the +## "License"); you may not use this file except in compliance +## with the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, +## software distributed under the License is distributed on an +## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +## KIND, either express or implied. See the License for the +## specific language governing permissions and limitations +## under the License. +## +-- ----------------------------------------------------------------------- +-- hsqldb SQL script for schema bookstore +-- ----------------------------------------------------------------------- + + +DROP VIEW a_b IF EXISTS; + +ALTER TABLE r_ab + DROP CONSTRAINT r_ab_FK_1; + + +ALTER TABLE r_ab + DROP CONSTRAINT r_ab_FK_2; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_1; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_2; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_3; + + +ALTER TABLE d + DROP CONSTRAINT d_FK_1; + + +ALTER TABLE d + DROP CONSTRAINT d_FK_2; + + +ALTER TABLE MULTIPK_SELF_REFTABLE + DROP CONSTRAINT MULTIPK_SELF_REFTABLE_FK_1; + + +ALTER TABLE ext_schema + DROP CONSTRAINT ext_schema_FK_1; + + +ALTER TABLE extext_schema + DROP CONSTRAINT extext_schema_FK_1; + + +drop table a; +drop table b; +drop table r_ab; +drop table c; +drop table d; +drop table nopk; +drop table MULTIPK_SELF_REFTABLE; +drop table ifc_table; +drop table ifc_table2; +drop table INHERITANCE_TEST; +drop table ext_schema; +drop table extext_schema; +drop table torque.qualified_name; + +DROP SCHEMA torque; + +CREATE SCHEMA torque; + +-- ----------------------------------------------------------------------- +-- a +-- ----------------------------------------------------------------------- +CREATE TABLE a +( + a_id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL, + name VARCHAR(50) default 'a_name' NOT NULL, + contactdata VARCHAR(500) NOT NULL, + created_at TIMESTAMP(6) default CURRENT_TIMESTAMP NOT NULL, + updated_at TIMESTAMP(6) NOT NULL, + enum VARCHAR(50) default 'x', + PRIMARY KEY(a_id) +); + +CREATE INDEX NAME_IDX ON a (name); + +-- ----------------------------------------------------------------------- +-- b +-- ----------------------------------------------------------------------- +CREATE TABLE b +( + b_id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL, + name VARCHAR(50) NOT NULL, + PRIMARY KEY(b_id), + CONSTRAINT NAME_UNQ UNIQUE(name) +); + + +-- ----------------------------------------------------------------------- +-- r_ab +-- ----------------------------------------------------------------------- +CREATE TABLE r_ab +( + a_id INTEGER NOT NULL, + b_id INTEGER NOT NULL, + name VARCHAR(50) NOT NULL, + PRIMARY KEY(a_id, b_id) +); + + +-- ----------------------------------------------------------------------- +-- c +-- ----------------------------------------------------------------------- +CREATE TABLE c +( + c_id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL, + a_id INTEGER NOT NULL, + b_id INTEGER NOT NULL, + name VARCHAR(50) NOT NULL, + PRIMARY KEY(c_id) +); + + +-- ----------------------------------------------------------------------- +-- d +-- ----------------------------------------------------------------------- +CREATE TABLE d +( + d_id INTEGER NOT NULL, + name VARCHAR(255) NOT NULL, + b_id INTEGER NOT NULL, + a_id INTEGER NOT NULL, + PRIMARY KEY(d_id, b_id, a_id) +); + + +-- ----------------------------------------------------------------------- +-- nopk +-- ----------------------------------------------------------------------- +CREATE TABLE nopk +( + intcol INTEGER, + name VARCHAR(50) +); + + +-- ----------------------------------------------------------------------- +-- MULTIPK_SELF_REFTABLE +-- ----------------------------------------------------------------------- +CREATE TABLE MULTIPK_SELF_REFTABLE +( + COL1 DECIMAL NOT NULL, + COL2 DECIMAL NOT NULL, + PARENT_COL1 DECIMAL NOT NULL, + PARENT_COL2 DECIMAL NOT NULL, + PRIMARY KEY(COL1, COL2) +); + + +-- ----------------------------------------------------------------------- +-- ifc_table +-- ----------------------------------------------------------------------- +CREATE TABLE ifc_table +( + id INTEGER NOT NULL, + name VARCHAR(50), + PRIMARY KEY(id) +); + + +-- ----------------------------------------------------------------------- +-- ifc_table2 +-- ----------------------------------------------------------------------- +CREATE TABLE ifc_table2 +( + id INTEGER NOT NULL, + name VARCHAR(50), + PRIMARY KEY(id) +); + + +-- ----------------------------------------------------------------------- +-- INHERITANCE_TEST +-- ----------------------------------------------------------------------- +CREATE TABLE INHERITANCE_TEST +( + INHERITANCE_TEST INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL, + CLASS_NAME VARCHAR(1), + PAYLOAD_PARENT VARCHAR(100) NOT NULL, + PAYLOAD_B VARCHAR(100), + PAYLOAD_C VARCHAR(100), + PAYLOAD_D VARCHAR(100), + PRIMARY KEY(INHERITANCE_TEST) +); + + +-- ----------------------------------------------------------------------- +-- ext_schema +-- ----------------------------------------------------------------------- +CREATE TABLE ext_schema +( + ext_schema_id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL, + ext_id INTEGER, + test INTEGER NOT NULL, + PRIMARY KEY(ext_schema_id) +); + +CREATE INDEX index_ext_id ON ext_schema (ext_id); + +-- ----------------------------------------------------------------------- +-- extext_schema +-- ----------------------------------------------------------------------- +CREATE TABLE extext_schema +( + extext_schema_id INTEGER GENERATED BY DEFAULT AS IDENTITY (START WITH 1) NOT NULL, + extext_id INTEGER, + test INTEGER NOT NULL, + PRIMARY KEY(extext_schema_id) +); + + +-- ----------------------------------------------------------------------- +-- torque.qualified_name +-- ----------------------------------------------------------------------- +CREATE TABLE torque.qualified_name +( + id INTEGER, + payload VARCHAR(100) +); + +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_FK_1 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_FK_2 + FOREIGN KEY (b_id) + REFERENCES b (b_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_1 + FOREIGN KEY (a_id, b_id) + REFERENCES r_ab (a_id, b_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_2 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_3 + FOREIGN KEY (b_id) + REFERENCES b (b_id); + +ALTER TABLE d + ADD CONSTRAINT d_FK_1 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE d + ADD CONSTRAINT d_FK_2 + FOREIGN KEY (a_id, b_id) + REFERENCES r_ab (a_id, b_id); + +ALTER TABLE MULTIPK_SELF_REFTABLE + ADD CONSTRAINT MULTIPK_SELF_REFTABLE_FK_1 + FOREIGN KEY (PARENT_COL1, PARENT_COL2) + REFERENCES MULTIPK_SELF_REFTABLE (COL1, COL2); + +ALTER TABLE ext_schema + ADD CONSTRAINT ext_schema_FK_1 + FOREIGN KEY (ext_id) + REFERENCES ext (ext_id); + +ALTER TABLE extext_schema + ADD CONSTRAINT extext_schema_FK_1 + FOREIGN KEY (extext_id) + REFERENCES extext (extext_id); + +ALTER TABLE a + ADD CONSTRAINT enum_CHECK + CHECK + (enum in ('x', 'y', 'z')); + +CREATE VIEW a_b AS + SELECT + a.a_id AS a_id, + a.name AS a_name, + b.b_id AS b_id, + b.name AS b_name, + a.enum AS enum + from a join r_ab on a.a_id=r_ab.a_id join b on r_ab.b_id=b.b_id; + + Propchange: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-hsqldb.sql ------------------------------------------------------------------------------ svn:eol-style = native Added: 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=1856067&view=auto ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mssql.sql (added) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mssql.sql Fri Mar 22 15:32:47 2019 @@ -0,0 +1,675 @@ +## Licensed to the Apache Software Foundation (ASF) under one +## or more contributor license agreements. See the NOTICE file +## distributed with this work for additional information +## regarding copyright ownership. The ASF licenses this file +## to you under the Apache License, Version 2.0 (the +## "License"); you may not use this file except in compliance +## with the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, +## software distributed under the License is distributed on an +## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +## KIND, either express or implied. See the License for the +## specific language governing permissions and limitations +## under the License. +## +-- ----------------------------------------------------------------------- +-- mssql SQL script for schema bookstore +-- ----------------------------------------------------------------------- + + +DROP VIEW a_b; + +ALTER TABLE r_ab + DROP CONSTRAINT r_ab_FK_1; + + +ALTER TABLE r_ab + DROP CONSTRAINT r_ab_FK_2; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_1; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_2; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_3; + + +ALTER TABLE d + DROP CONSTRAINT d_FK_1; + + +ALTER TABLE d + DROP CONSTRAINT d_FK_2; + + +ALTER TABLE MULTIPK_SELF_REFTABLE + DROP CONSTRAINT MULTIPK_SELF_REFTABLE_FK_1; + + +ALTER TABLE ext_schema + DROP CONSTRAINT ext_schema_FK_1; + + +ALTER TABLE extext_schema + DROP CONSTRAINT extext_schema_FK_1; + + +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'a') +BEGIN + DECLARE @reftable_3 nvarchar(60), @constraintname_3 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 = 'a' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_3, @constraintname_3 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_3+' drop constraint '+@constraintname_3) + FETCH NEXT from refcursor into @reftable_3, @constraintname_3 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE a +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'b') +BEGIN + DECLARE @reftable_4 nvarchar(60), @constraintname_4 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 = 'b' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_4, @constraintname_4 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_4+' drop constraint '+@constraintname_4) + FETCH NEXT from refcursor into @reftable_4, @constraintname_4 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE b +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'r_ab') +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 = 'r_ab' + 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 r_ab +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'c') +BEGIN + DECLARE @reftable_6 nvarchar(60), @constraintname_6 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 = 'c' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_6, @constraintname_6 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_6+' drop constraint '+@constraintname_6) + FETCH NEXT from refcursor into @reftable_6, @constraintname_6 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE c +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'd') +BEGIN + DECLARE @reftable_7 nvarchar(60), @constraintname_7 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 = 'd' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_7, @constraintname_7 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_7+' drop constraint '+@constraintname_7) + FETCH NEXT from refcursor into @reftable_7, @constraintname_7 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE d +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'nopk') +BEGIN + DECLARE @reftable_8 nvarchar(60), @constraintname_8 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 = 'nopk' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_8, @constraintname_8 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_8+' drop constraint '+@constraintname_8) + FETCH NEXT from refcursor into @reftable_8, @constraintname_8 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE nopk +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'MULTIPK_SELF_REFTABLE') +BEGIN + DECLARE @reftable_9 nvarchar(60), @constraintname_9 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 = 'MULTIPK_SELF_REFTABLE' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_9, @constraintname_9 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_9+' drop constraint '+@constraintname_9) + FETCH NEXT from refcursor into @reftable_9, @constraintname_9 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE MULTIPK_SELF_REFTABLE +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'ifc_table') +BEGIN + DECLARE @reftable_10 nvarchar(60), @constraintname_10 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 = 'ifc_table' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_10, @constraintname_10 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_10+' drop constraint '+@constraintname_10) + FETCH NEXT from refcursor into @reftable_10, @constraintname_10 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE ifc_table +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'ifc_table2') +BEGIN + DECLARE @reftable_11 nvarchar(60), @constraintname_11 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 = 'ifc_table2' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_11, @constraintname_11 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_11+' drop constraint '+@constraintname_11) + FETCH NEXT from refcursor into @reftable_11, @constraintname_11 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE ifc_table2 +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'INHERITANCE_TEST') +BEGIN + DECLARE @reftable_12 nvarchar(60), @constraintname_12 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 = 'INHERITANCE_TEST' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_12, @constraintname_12 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_12+' drop constraint '+@constraintname_12) + FETCH NEXT from refcursor into @reftable_12, @constraintname_12 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE INHERITANCE_TEST +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'ext_schema') +BEGIN + DECLARE @reftable_13 nvarchar(60), @constraintname_13 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 = 'ext_schema' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_13, @constraintname_13 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_13+' drop constraint '+@constraintname_13) + FETCH NEXT from refcursor into @reftable_13, @constraintname_13 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE ext_schema +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'extext_schema') +BEGIN + DECLARE @reftable_14 nvarchar(60), @constraintname_14 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 = 'extext_schema' + OPEN refcursor + FETCH NEXT from refcursor into @reftable_14, @constraintname_14 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_14+' drop constraint '+@constraintname_14) + FETCH NEXT from refcursor into @reftable_14, @constraintname_14 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE extext_schema +END +; +IF EXISTS (SELECT 1 FROM sysobjects WHERE type = 'U' AND name = 'qualified_name') +BEGIN + DECLARE @reftable_15 nvarchar(60), @constraintname_15 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_15, @constraintname_15 + while @@FETCH_STATUS = 0 + BEGIN + exec ('alter table '+@reftable_15+' drop constraint '+@constraintname_15) + FETCH NEXT from refcursor into @reftable_15, @constraintname_15 + END + CLOSE refcursor + DEALLOCATE refcursor + DROP TABLE torque.qualified_name +END +; + +DROP SCHEMA torque; + +CREATE SCHEMA torque; + +/* ----------------------------------------------------------------------- */ +/* a */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE a +( + a_id INT NOT NULL IDENTITY, + name VARCHAR(50) default 'a_name' NOT NULL, + contactdata VARCHAR(500) NOT NULL, + created_at DATETIME(6) default CURRENT_TIMESTAMP NOT NULL, + updated_at DATETIME(6) NOT NULL, + enum VARCHAR(50) default 'x' NULL, + CONSTRAINT a_PK PRIMARY KEY(a_id) +) + +; +CREATE INDEX NAME_IDX ON a (name); + + +/* ----------------------------------------------------------------------- */ +/* b */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE b +( + b_id INT NOT NULL IDENTITY, + name VARCHAR(50) NOT NULL, + CONSTRAINT b_PK PRIMARY KEY(b_id), + CONSTRAINT NAME_UNQ UNIQUE (name) +) + +; + + +/* ----------------------------------------------------------------------- */ +/* r_ab */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE r_ab +( + a_id INT NOT NULL, + b_id INT NOT NULL, + name VARCHAR(50) NOT NULL, + CONSTRAINT r_ab_PK PRIMARY KEY(a_id, b_id) +) + +; + + +/* ----------------------------------------------------------------------- */ +/* c */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE c +( + c_id INT NOT NULL IDENTITY, + a_id INT NOT NULL, + b_id INT NOT NULL, + name VARCHAR(50) NOT NULL, + CONSTRAINT c_PK PRIMARY KEY(c_id) +) + +; + + +/* ----------------------------------------------------------------------- */ +/* d */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE d +( + d_id INT NOT NULL, + name VARCHAR(255) NOT NULL, + b_id INT NOT NULL, + a_id INT NOT NULL, + CONSTRAINT d_PK PRIMARY KEY(d_id, b_id, a_id) +) + +; + + +/* ----------------------------------------------------------------------- */ +/* nopk */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE nopk +( + intcol INT NULL, + name VARCHAR(50) NULL +) + +; + + +/* ----------------------------------------------------------------------- */ +/* MULTIPK_SELF_REFTABLE */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE MULTIPK_SELF_REFTABLE +( + COL1 DECIMAL NOT NULL, + COL2 DECIMAL NOT NULL, + PARENT_COL1 DECIMAL NOT NULL, + PARENT_COL2 DECIMAL NOT NULL, + CONSTRAINT MULTIPK_SELF_REFTABLE_PK PRIMARY KEY(COL1, COL2) +) + +; + + +/* ----------------------------------------------------------------------- */ +/* ifc_table */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE ifc_table +( + id INT NOT NULL, + name VARCHAR(50) NULL, + CONSTRAINT ifc_table_PK PRIMARY KEY(id) +) + +; + + +/* ----------------------------------------------------------------------- */ +/* ifc_table2 */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE ifc_table2 +( + id INT NOT NULL, + name VARCHAR(50) NULL, + CONSTRAINT ifc_table2_PK PRIMARY KEY(id) +) + +; + + +/* ----------------------------------------------------------------------- */ +/* INHERITANCE_TEST */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE INHERITANCE_TEST +( + INHERITANCE_TEST INT NOT NULL IDENTITY, + CLASS_NAME CHAR(1) NULL, + PAYLOAD_PARENT VARCHAR(100) NOT NULL, + PAYLOAD_B VARCHAR(100) NULL, + PAYLOAD_C VARCHAR(100) NULL, + PAYLOAD_D VARCHAR(100) NULL, + CONSTRAINT INHERITANCE_TEST_PK PRIMARY KEY(INHERITANCE_TEST) +) + +; + + +/* ----------------------------------------------------------------------- */ +/* ext_schema */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE ext_schema +( + ext_schema_id INT NOT NULL IDENTITY, + ext_id INT NULL, + test INT NOT NULL, + CONSTRAINT ext_schema_PK PRIMARY KEY(ext_schema_id) +) + +; +CREATE INDEX index_ext_id ON ext_schema (ext_id); + + +/* ----------------------------------------------------------------------- */ +/* extext_schema */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE extext_schema +( + extext_schema_id INT NOT NULL IDENTITY, + extext_id INT NULL, + test INT NOT NULL, + CONSTRAINT extext_schema_PK PRIMARY KEY(extext_schema_id) +) + +; + + +/* ----------------------------------------------------------------------- */ +/* torque.qualified_name */ +/* ----------------------------------------------------------------------- */ +CREATE TABLE torque.qualified_name +( + id INT NULL, + payload VARCHAR(100) NULL +) + +; + +BEGIN +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_FK_1 + FOREIGN KEY (a_id) + REFERENCES a (a_id) + +END +; +BEGIN +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_FK_2 + FOREIGN KEY (b_id) + REFERENCES b (b_id) + +END +; +BEGIN +ALTER TABLE c + ADD CONSTRAINT c_FK_1 + FOREIGN KEY (a_id, b_id) + REFERENCES r_ab (a_id, b_id) + +END +; +BEGIN +ALTER TABLE c + ADD CONSTRAINT c_FK_2 + FOREIGN KEY (a_id) + REFERENCES a (a_id) + +END +; +BEGIN +ALTER TABLE c + ADD CONSTRAINT c_FK_3 + FOREIGN KEY (b_id) + REFERENCES b (b_id) + +END +; +BEGIN +ALTER TABLE d + ADD CONSTRAINT d_FK_1 + FOREIGN KEY (a_id) + REFERENCES a (a_id) + +END +; +BEGIN +ALTER TABLE d + ADD CONSTRAINT d_FK_2 + FOREIGN KEY (a_id, b_id) + REFERENCES r_ab (a_id, b_id) + +END +; +BEGIN +ALTER TABLE MULTIPK_SELF_REFTABLE + ADD CONSTRAINT MULTIPK_SELF_REFTABLE_FK_1 + FOREIGN KEY (PARENT_COL1, PARENT_COL2) + REFERENCES MULTIPK_SELF_REFTABLE (COL1, COL2) + +END +; +BEGIN +ALTER TABLE ext_schema + ADD CONSTRAINT ext_schema_FK_1 + FOREIGN KEY (ext_id) + REFERENCES ext (ext_id) + +END +; +BEGIN +ALTER TABLE extext_schema + ADD CONSTRAINT extext_schema_FK_1 + FOREIGN KEY (extext_id) + REFERENCES extext (extext_id) + +END +; +ALTER TABLE a + ADD CONSTRAINT enum_CHECK + CHECK + (enum in ('x', 'y', 'z')); + +CREATE VIEW a_b AS + SELECT + a.a_id AS a_id, + a.name AS a_name, + b.b_id AS b_id, + b.name AS b_name, + a.enum AS enum + from a join r_ab on a.a_id=r_ab.a_id join b on r_ab.b_id=b.b_id; + + Propchange: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mssql.sql ------------------------------------------------------------------------------ svn:eol-style = native Added: 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=1856067&view=auto ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mysql.sql (added) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mysql.sql Fri Mar 22 15:32:47 2019 @@ -0,0 +1,301 @@ +## Licensed to the Apache Software Foundation (ASF) under one +## or more contributor license agreements. See the NOTICE file +## distributed with this work for additional information +## regarding copyright ownership. The ASF licenses this file +## to you under the Apache License, Version 2.0 (the +## "License"); you may not use this file except in compliance +## with the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, +## software distributed under the License is distributed on an +## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +## KIND, either express or implied. See the License for the +## specific language governing permissions and limitations +## under the License. +## +-- ----------------------------------------------------------------------- +-- mysql SQL script for schema bookstore +-- ----------------------------------------------------------------------- + + +ALTER TABLE r_ab + DROP FOREIGN KEY r_ab_FK_1; + + +ALTER TABLE r_ab + DROP FOREIGN KEY r_ab_FK_2; + + +ALTER TABLE c + DROP FOREIGN KEY c_FK_1; + + +ALTER TABLE c + DROP FOREIGN KEY c_FK_2; + + +ALTER TABLE c + DROP FOREIGN KEY c_FK_3; + + +ALTER TABLE d + DROP FOREIGN KEY d_FK_1; + + +ALTER TABLE d + DROP FOREIGN KEY d_FK_2; + + +ALTER TABLE MULTIPK_SELF_REFTABLE + DROP FOREIGN KEY MULTIPK_SELF_REFTABLE_FK_1; + + +ALTER TABLE ext_schema + DROP FOREIGN KEY ext_schema_FK_1; + + +ALTER TABLE extext_schema + DROP FOREIGN KEY extext_schema_FK_1; + + +drop table if exists a; +drop table if exists b; +drop table if exists r_ab; +drop table if exists c; +drop table if exists d; +drop table if exists nopk; +drop table if exists MULTIPK_SELF_REFTABLE; +drop table if exists ifc_table; +drop table if exists ifc_table2; +drop table if exists INHERITANCE_TEST; +drop table if exists ext_schema; +drop table if exists extext_schema; +drop table if exists torque.qualified_name; + +# ----------------------------------------------------------------------- +# a +# ----------------------------------------------------------------------- +CREATE TABLE a +( + a_id INTEGER NOT NULL AUTO_INCREMENT, + name VARCHAR(50) default 'a_name' NOT NULL, + contactdata VARCHAR(500) NOT NULL, + created_at DATETIME(6) default CURRENT_TIMESTAMP NOT NULL, + updated_at DATETIME(6) NOT NULL, + enum VARCHAR(50) default 'x', + PRIMARY KEY(a_id), + INDEX NAME_IDX(name) +); + + +# ----------------------------------------------------------------------- +# b +# ----------------------------------------------------------------------- +CREATE TABLE b +( + b_id INTEGER NOT NULL AUTO_INCREMENT, + name VARCHAR(50) NOT NULL, + PRIMARY KEY(b_id), + UNIQUE NAME_UNQ (name) +); + + +# ----------------------------------------------------------------------- +# r_ab +# ----------------------------------------------------------------------- +CREATE TABLE r_ab +( + a_id INTEGER NOT NULL, + b_id INTEGER NOT NULL, + name VARCHAR(50) NOT NULL, + PRIMARY KEY(a_id, b_id) +); + + +# ----------------------------------------------------------------------- +# c +# ----------------------------------------------------------------------- +CREATE TABLE c +( + c_id INTEGER NOT NULL AUTO_INCREMENT, + a_id INTEGER NOT NULL, + b_id INTEGER NOT NULL, + name VARCHAR(50) NOT NULL, + PRIMARY KEY(c_id) +); + + +# ----------------------------------------------------------------------- +# d +# ----------------------------------------------------------------------- +CREATE TABLE d +( + d_id INTEGER NOT NULL, + name VARCHAR(255) NOT NULL, + b_id INTEGER NOT NULL, + a_id INTEGER NOT NULL, + PRIMARY KEY(d_id, b_id, a_id) +); + + +# ----------------------------------------------------------------------- +# nopk +# ----------------------------------------------------------------------- +CREATE TABLE nopk +( + intcol INTEGER, + name VARCHAR(50) +); + + +# ----------------------------------------------------------------------- +# MULTIPK_SELF_REFTABLE +# ----------------------------------------------------------------------- +CREATE TABLE MULTIPK_SELF_REFTABLE +( + COL1 DECIMAL NOT NULL, + COL2 DECIMAL NOT NULL, + PARENT_COL1 DECIMAL NOT NULL, + PARENT_COL2 DECIMAL NOT NULL, + PRIMARY KEY(COL1, COL2) +); + + +# ----------------------------------------------------------------------- +# ifc_table +# ----------------------------------------------------------------------- +CREATE TABLE ifc_table +( + id INTEGER NOT NULL, + name VARCHAR(50), + PRIMARY KEY(id) +); + + +# ----------------------------------------------------------------------- +# ifc_table2 +# ----------------------------------------------------------------------- +CREATE TABLE ifc_table2 +( + id INTEGER NOT NULL, + name VARCHAR(50), + PRIMARY KEY(id) +); + + +# ----------------------------------------------------------------------- +# INHERITANCE_TEST +# ----------------------------------------------------------------------- +CREATE TABLE INHERITANCE_TEST +( + INHERITANCE_TEST INTEGER NOT NULL AUTO_INCREMENT, + CLASS_NAME CHAR(1), + PAYLOAD_PARENT VARCHAR(100) NOT NULL, + PAYLOAD_B VARCHAR(100), + PAYLOAD_C VARCHAR(100), + PAYLOAD_D VARCHAR(100), + PRIMARY KEY(INHERITANCE_TEST) +); + + +# ----------------------------------------------------------------------- +# ext_schema +# ----------------------------------------------------------------------- +CREATE TABLE ext_schema +( + ext_schema_id INTEGER NOT NULL AUTO_INCREMENT, + ext_id INTEGER, + test INTEGER NOT NULL, + PRIMARY KEY(ext_schema_id), + INDEX index_ext_id(ext_id) +); + + +# ----------------------------------------------------------------------- +# extext_schema +# ----------------------------------------------------------------------- +CREATE TABLE extext_schema +( + extext_schema_id INTEGER NOT NULL AUTO_INCREMENT, + extext_id INTEGER, + test INTEGER NOT NULL, + PRIMARY KEY(extext_schema_id) +); + + +# ----------------------------------------------------------------------- +# torque.qualified_name +# ----------------------------------------------------------------------- +CREATE TABLE torque.qualified_name +( + id INTEGER, + payload VARCHAR(100) +); + +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_FK_1 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_FK_2 + FOREIGN KEY (b_id) + REFERENCES b (b_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_1 + FOREIGN KEY (a_id, b_id) + REFERENCES r_ab (a_id, b_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_2 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_3 + FOREIGN KEY (b_id) + REFERENCES b (b_id); + +ALTER TABLE d + ADD CONSTRAINT d_FK_1 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE d + ADD CONSTRAINT d_FK_2 + FOREIGN KEY (a_id, b_id) + REFERENCES r_ab (a_id, b_id); + +ALTER TABLE MULTIPK_SELF_REFTABLE + ADD CONSTRAINT MULTIPK_SELF_REFTABLE_FK_1 + FOREIGN KEY (PARENT_COL1, PARENT_COL2) + REFERENCES MULTIPK_SELF_REFTABLE (COL1, COL2); + +ALTER TABLE ext_schema + ADD CONSTRAINT ext_schema_FK_1 + FOREIGN KEY (ext_id) + REFERENCES ext (ext_id); + +ALTER TABLE extext_schema + ADD CONSTRAINT extext_schema_FK_1 + FOREIGN KEY (extext_id) + REFERENCES extext (extext_id); + +ALTER TABLE a + ADD CONSTRAINT enum_CHECK + CHECK + (enum in ('x', 'y', 'z')); + +CREATE OR REPLACE VIEW a_b AS + SELECT + a.a_id AS a_id, + a.name AS a_name, + b.b_id AS b_id, + b.name AS b_name, + a.enum AS enum + from a join r_ab on a.a_id=r_ab.a_id join b on r_ab.b_id=b.b_id; + + Propchange: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-mysql.sql ------------------------------------------------------------------------------ svn:eol-style = native Added: 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=1856067&view=auto ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-oracle.sql (added) +++ db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-oracle.sql Fri Mar 22 15:32:47 2019 @@ -0,0 +1,400 @@ +## Licensed to the Apache Software Foundation (ASF) under one +## or more contributor license agreements. See the NOTICE file +## distributed with this work for additional information +## regarding copyright ownership. The ASF licenses this file +## to you under the Apache License, Version 2.0 (the +## "License"); you may not use this file except in compliance +## with the License. You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, +## software distributed under the License is distributed on an +## "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +## KIND, either express or implied. See the License for the +## specific language governing permissions and limitations +## under the License. +## +-- ----------------------------------------------------------------------- +-- oracle SQL script for schema bookstore +-- ----------------------------------------------------------------------- + + +ALTER TABLE r_ab + DROP CONSTRAINT r_ab_FK_1; + + +ALTER TABLE r_ab + DROP CONSTRAINT r_ab_FK_2; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_1; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_2; + + +ALTER TABLE c + DROP CONSTRAINT c_FK_3; + + +ALTER TABLE d + DROP CONSTRAINT d_FK_1; + + +ALTER TABLE d + DROP CONSTRAINT d_FK_2; + + +ALTER TABLE MULTIPK_SELF_REFTABLE + DROP CONSTRAINT MULTIPK_SELF_REFTABLE_FK_1; + + +ALTER TABLE ext_schema + DROP CONSTRAINT ext_schema_FK_1; + + +ALTER TABLE extext_schema + DROP CONSTRAINT extext_schema_FK_1; + + +DROP TABLE a CASCADE CONSTRAINTS; +DROP SEQUENCE a_SEQ; +DROP TABLE b CASCADE CONSTRAINTS; +DROP SEQUENCE b_SEQ; +DROP TABLE r_ab CASCADE CONSTRAINTS; +DROP TABLE c CASCADE CONSTRAINTS; +DROP SEQUENCE c_SEQ; +DROP TABLE d CASCADE CONSTRAINTS; +DROP TABLE nopk CASCADE CONSTRAINTS; +DROP TABLE MULTIPK_SELF_REFTABLE CASCADE CONSTRAINTS; +DROP TABLE ifc_table CASCADE CONSTRAINTS; +DROP TABLE ifc_table2 CASCADE CONSTRAINTS; +DROP TABLE INHERITANCE_TEST CASCADE CONSTRAINTS; +DROP SEQUENCE INHERITANCE_TEST_SEQ; +DROP TABLE ext_schema CASCADE CONSTRAINTS; +DROP SEQUENCE ext_schema_SEQ; +DROP TABLE extext_schema CASCADE CONSTRAINTS; +DROP SEQUENCE extext_schema_SEQ; +DROP TABLE torque.qualified_name CASCADE CONSTRAINTS; +DROP SEQUENCE torque.qualified_name_SEQ; + +-- ----------------------------------------------------------------------- +-- a +-- ----------------------------------------------------------------------- +CREATE TABLE a +( + a_id NUMBER(10,0)(0) NOT NULL, + name VARCHAR2(50 CHAR) default 'a_name' NOT NULL, + contactdata VARCHAR2(500 CHAR) NOT NULL, + created_at TIMESTAMP(6) default CURRENT_TIMESTAMP NOT NULL, + updated_at TIMESTAMP(6) NOT NULL, + enum VARCHAR2(50 CHAR) default 'x' +); + +ALTER TABLE a + ADD CONSTRAINT a_PK + PRIMARY KEY(a_id); + +CREATE INDEX NAME_IDX ON a (name); + +CREATE SEQUENCE a_SEQ INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE ORDER; + + +-- ----------------------------------------------------------------------- +-- b +-- ----------------------------------------------------------------------- +CREATE TABLE b +( + b_id NUMBER(10,0)(0) NOT NULL, + name VARCHAR2(50 CHAR) NOT NULL, + CONSTRAINT NAME_UNQ UNIQUE (name) +); + +ALTER TABLE b + ADD CONSTRAINT b_PK + PRIMARY KEY(b_id); + + +CREATE SEQUENCE b_SEQ INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE ORDER; + + +-- ----------------------------------------------------------------------- +-- r_ab +-- ----------------------------------------------------------------------- +CREATE TABLE r_ab +( + a_id NUMBER(10,0)(0) NOT NULL, + b_id NUMBER(10,0)(0) NOT NULL, + name VARCHAR2(50 CHAR) NOT NULL +); + +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_PK + PRIMARY KEY(a_id, b_id); + + + + +-- ----------------------------------------------------------------------- +-- c +-- ----------------------------------------------------------------------- +CREATE TABLE c +( + c_id NUMBER(10,0)(0) NOT NULL, + a_id NUMBER(10,0)(0) NOT NULL, + b_id NUMBER(10,0)(0) NOT NULL, + name VARCHAR2(50 CHAR) NOT NULL +); + +ALTER TABLE c + ADD CONSTRAINT c_PK + PRIMARY KEY(c_id); + + +CREATE SEQUENCE c_SEQ INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE ORDER; + + +-- ----------------------------------------------------------------------- +-- d +-- ----------------------------------------------------------------------- +CREATE TABLE d +( + d_id NUMBER(10,0)(0) NOT NULL, + name VARCHAR2(255 CHAR) NOT NULL, + b_id NUMBER(10,0)(0) NOT NULL, + a_id NUMBER(10,0)(0) NOT NULL +); + +ALTER TABLE d + ADD CONSTRAINT d_PK + PRIMARY KEY(d_id, b_id, a_id); + + + + +-- ----------------------------------------------------------------------- +-- nopk +-- ----------------------------------------------------------------------- +CREATE TABLE nopk +( + intcol NUMBER(10,0)(0), + name VARCHAR2(50 CHAR) +); + + + + + +-- ----------------------------------------------------------------------- +-- MULTIPK_SELF_REFTABLE +-- ----------------------------------------------------------------------- +CREATE TABLE MULTIPK_SELF_REFTABLE +( + COL1 NUMBER NOT NULL, + COL2 NUMBER NOT NULL, + PARENT_COL1 NUMBER NOT NULL, + PARENT_COL2 NUMBER NOT NULL +); + +ALTER TABLE MULTIPK_SELF_REFTABLE + ADD CONSTRAINT MULTIPK_SELF_REFTABLE_PK + PRIMARY KEY(COL1, COL2); + + + + +-- ----------------------------------------------------------------------- +-- ifc_table +-- ----------------------------------------------------------------------- +CREATE TABLE ifc_table +( + id NUMBER(10,0)(0) NOT NULL, + name VARCHAR2(50 CHAR) +); + +ALTER TABLE ifc_table + ADD CONSTRAINT ifc_table_PK + PRIMARY KEY(id); + + + + +-- ----------------------------------------------------------------------- +-- ifc_table2 +-- ----------------------------------------------------------------------- +CREATE TABLE ifc_table2 +( + id NUMBER(10,0)(0) NOT NULL, + name VARCHAR2(50 CHAR) +); + +ALTER TABLE ifc_table2 + ADD CONSTRAINT ifc_table2_PK + PRIMARY KEY(id); + + + + +-- ----------------------------------------------------------------------- +-- INHERITANCE_TEST +-- ----------------------------------------------------------------------- +CREATE TABLE INHERITANCE_TEST +( + INHERITANCE_TEST NUMBER(10,0)(0) NOT NULL, + CLASS_NAME CHAR(1), + PAYLOAD_PARENT VARCHAR2(100 CHAR) NOT NULL, + PAYLOAD_B VARCHAR2(100 CHAR), + PAYLOAD_C VARCHAR2(100 CHAR), + PAYLOAD_D VARCHAR2(100 CHAR) +); + +ALTER TABLE INHERITANCE_TEST + ADD CONSTRAINT INHERITANCE_TEST_PK + PRIMARY KEY(INHERITANCE_TEST); + + +CREATE SEQUENCE INHERITANCE_TEST_SEQ INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE ORDER; + + +-- ----------------------------------------------------------------------- +-- ext_schema +-- ----------------------------------------------------------------------- +CREATE TABLE ext_schema +( + ext_schema_id NUMBER(10,0)(0) NOT NULL, + ext_id NUMBER(10,0)(0), + test NUMBER(10,0)(0) NOT NULL +); + +ALTER TABLE ext_schema + ADD CONSTRAINT ext_schema_PK + PRIMARY KEY(ext_schema_id); + +CREATE INDEX index_ext_id ON ext_schema (ext_id); + +CREATE SEQUENCE ext_schema_SEQ INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE ORDER; + + +-- ----------------------------------------------------------------------- +-- extext_schema +-- ----------------------------------------------------------------------- +CREATE TABLE extext_schema +( + extext_schema_id NUMBER(10,0)(0) NOT NULL, + extext_id NUMBER(10,0)(0), + test NUMBER(10,0)(0) NOT NULL +); + +ALTER TABLE extext_schema + ADD CONSTRAINT extext_schema_PK + PRIMARY KEY(extext_schema_id); + + +CREATE SEQUENCE extext_schema_SEQ INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE ORDER; + + +-- ----------------------------------------------------------------------- +-- torque.qualified_name +-- ----------------------------------------------------------------------- +CREATE TABLE torque.qualified_name +( + id NUMBER(10,0)(0), + payload VARCHAR2(100 CHAR) +); + + + +CREATE SEQUENCE torque.qualified_name_SEQ INCREMENT BY 1 START WITH 1 NOMAXVALUE NOCYCLE NOCACHE ORDER; + +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_FK_1 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE r_ab + ADD CONSTRAINT r_ab_FK_2 + FOREIGN KEY (b_id) + REFERENCES b (b_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_1 + FOREIGN KEY (a_id, b_id) + REFERENCES r_ab (a_id, b_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_2 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE c + ADD CONSTRAINT c_FK_3 + FOREIGN KEY (b_id) + REFERENCES b (b_id); + +ALTER TABLE d + ADD CONSTRAINT d_FK_1 + FOREIGN KEY (a_id) + REFERENCES a (a_id); + +ALTER TABLE d + ADD CONSTRAINT d_FK_2 + FOREIGN KEY (a_id, b_id) + REFERENCES r_ab (a_id, b_id); + +ALTER TABLE MULTIPK_SELF_REFTABLE + ADD CONSTRAINT MULTIPK_SELF_REFTABLE_FK_1 + FOREIGN KEY (PARENT_COL1, PARENT_COL2) + REFERENCES MULTIPK_SELF_REFTABLE (COL1, COL2); + +ALTER TABLE ext_schema + ADD CONSTRAINT ext_schema_FK_1 + FOREIGN KEY (ext_id) + REFERENCES ext (ext_id); + +ALTER TABLE extext_schema + ADD CONSTRAINT extext_schema_FK_1 + FOREIGN KEY (extext_id) + REFERENCES extext (extext_id); + +ALTER TABLE a + ADD CONSTRAINT enum_CHECK + CHECK + (enum in ('x', 'y', 'z')); + +CREATE OR REPLACE VIEW a_b AS + SELECT + a.a_id AS a_id, + a.name AS a_name, + b.b_id AS b_id, + b.name AS b_name, + a.enum AS enum + from a join r_ab on a.a_id=r_ab.a_id join b on r_ab.b_id=b.b_id; + +COMMENT ON TABLE a IS 'A table'; + + +COMMENT ON TABLE b IS 'B table'; + + +COMMENT ON TABLE r_ab IS 'r_ab table'; + + +COMMENT ON TABLE c IS 'c table contains fk to ar_ab, a and b'; + + +COMMENT ON TABLE nopk IS 'this table has no pk'; + + +COMMENT ON TABLE ifc_table IS 'this table implements an interface'; + + +COMMENT ON TABLE ifc_table2 IS 'this table implements a local interface'; + + +COMMENT ON TABLE INHERITANCE_TEST IS 'Table to test inheritance'; + + + Propchange: db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-oracle.sql ------------------------------------------------------------------------------ svn:eol-style = native --------------------------------------------------------------------- To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org For additional commands, e-mail: torque-dev-h...@db.apache.org