You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by gk...@apache.org on 2019/10/24 13:21:57 UTC

svn commit: r1868876 - in /db/torque/torque4/trunk: torque-templates/src/main/java/org/apache/torque/templates/platform/ torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/ torque-templates/src/test/java/org/apache...

Author: gk
Date: Thu Oct 24 13:21:57 2019
New Revision: 1868876

URL: http://svn.apache.org/viewvc?rev=1868876&view=rev
Log:
- hsqldb profile:
- fix required useDatabaseDefaultValue in schema to avoid java om default handling  + test check
- fix hsqldb varbinary, binary size, 
- add sql /if exists/ to dropTable template

- improve test output

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/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/dropTable.groovy
    db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/dropTable.vm
    db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java
    db/torque/torque4/trunk/torque-templates/src/test/resources/org/apache/torque/templates/expected-schema-hsqldb.sql
    db/torque/torque4/trunk/torque-test/pom.xml
    db/torque/torque4/trunk/torque-test/src/main/schema/default-value-schema.xml
    db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/datatypes/ByteTypeTest.java
    db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/DefaultValuesFromJavaTest.java

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=1868876&r1=1868875&r2=1868876&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 Thu Oct 24 13:21:57 2019
@@ -128,9 +128,15 @@ public class PlatformHsqldbImpl extends
         return true;
     }
     
+    /**
+     * Caveat, read HSQLDB e.g. 
+     * Do not use BINARY(L) unless you are storing keys such as UUID. 
+     * This type pads short binary strings with zero bytes. 
+     * BINARY without the length L means a single byte.
+     */
     @Override
     public boolean hasSize(String sqlType) {
-        return "VARCHAR".equals(sqlType);
+        return "VARCHAR".equals(sqlType) || "VARBINARY".equals(sqlType) || "BINARY".equals(sqlType);
     }
     
     @Override

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/dropTable.groovy
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/dropTable.groovy?rev=1868876&r1=1868875&r2=1868876&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/dropTable.groovy (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/dropTable.groovy Thu Oct 24 13:21:57 2019
@@ -21,5 +21,5 @@ TorqueGenGroovy torqueGenGroovy = (Torqu
 Table table = torqueGenGroovy.model
 
 return """\
-drop table $table.name;
+drop table $table.name if exists;
 """
\ No newline at end of file

Modified: db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/dropTable.vm
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/dropTable.vm?rev=1868876&r1=1868875&r2=1868876&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/dropTable.vm (original)
+++ db/torque/torque4/trunk/torque-templates/src/main/resources/org/apache/torque/templates/sql/templates/ddl/hsqldb/dropTable.vm Thu Oct 24 13:21:57 2019
@@ -14,4 +14,4 @@
 ## KIND, either express or implied.  See the License for the
 ## specific language governing permissions and limitations
 ## under the License.
-drop table $name;
+drop table $name if exists;

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=1868876&r1=1868875&r2=1868876&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 Thu Oct 24 13:21:57 2019
@@ -1,5 +1,7 @@
 package org.apache.torque.templates;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -390,10 +392,21 @@ public class TestProcessing
 //                new File(actualFilename),
 //                charset);
         // auto close file input stream
+        boolean isEqual = false; // delay assert
         try (Reader actualReader  =new InputStreamReader(new FileInputStream(actualFilename), charset) ) {
-            assertTrue(
+            isEqual = 
                 IOUtils.contentEqualsIgnoreEOL(new InputStreamReader(IOUtils.toInputStream(expected, charset)),
-                        actualReader) );
+                        actualReader) ;
+        }
+        if (!isEqual) {
+        	//check lines
+        	List<String> genSchema = IOUtils.readLines(
+        			new InputStreamReader(new FileInputStream(actualFilename), charset) );
+        	int index= 0;
+        	for (String line : genSchema) {
+        		assertTrue(expected.contains(line), line + " is not in expected file: "+ expectedFilename);
+				index++;
+			}
         }
     }
 }

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=1868876&r1=1868875&r2=1868876&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 Thu Oct 24 13:21:57 2019
@@ -62,19 +62,19 @@ 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 table a if exists;
+drop table b if exists;
+drop table r_ab if exists;
+drop table c if exists;
+drop table d if exists;
+drop table nopk if exists;
+drop table MULTIPK_SELF_REFTABLE if exists;
+drop table ifc_table if exists;
+drop table ifc_table2 if exists;
+drop table INHERITANCE_TEST if exists;
+drop table ext_schema if exists;
+drop table extext_schema if exists;
+drop table torque.qualified_name if exists;
 
 DROP SCHEMA torque;
 

Modified: db/torque/torque4/trunk/torque-test/pom.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/pom.xml?rev=1868876&r1=1868875&r2=1868876&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-test/pom.xml (original)
+++ db/torque/torque4/trunk/torque-test/pom.xml Thu Oct 24 13:21:57 2019
@@ -48,7 +48,7 @@
   <properties>
     <onSqlError>abort</onSqlError>
     <torque.test.derby.version>10.14.2.0</torque.test.derby.version>
-    <torque.test.hsqldb.version>2.3.1</torque.test.hsqldb.version>
+    <torque.test.hsqldb.version>2.3.1</torque.test.hsqldb.version><!-- 2.5.0 as of june 2019 -->
     <torque.test.mssql.version>1.2.7</torque.test.mssql.version>
     <torque.test.mysql.version>8.0.13</torque.test.mysql.version>
     <torque.test.oracle.version>10.2.0.3.0</torque.test.oracle.version>

Modified: db/torque/torque4/trunk/torque-test/src/main/schema/default-value-schema.xml
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/main/schema/default-value-schema.xml?rev=1868876&r1=1868875&r2=1868876&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/main/schema/default-value-schema.xml (original)
+++ db/torque/torque4/trunk/torque-test/src/main/schema/default-value-schema.xml Thu Oct 24 13:21:57 2019
@@ -131,11 +131,13 @@
       name="CURRENT_DATE_VALUE"
       type="DATE"
       @CURRENT_DATE_DEFAULT@
+      useDatabaseDefaultValue="true"
     />
     <column
       name="CURRENT_TIME_VALUE"
       type="TIME"
       @CURRENT_TIME_DEFAULT@
+      useDatabaseDefaultValue="true"
     />
     <column
       name="CURRENT_TIMESTAMP_VALUE"

Modified: db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/datatypes/ByteTypeTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/datatypes/ByteTypeTest.java?rev=1868876&r1=1868875&r2=1868876&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/datatypes/ByteTypeTest.java (original)
+++ db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/datatypes/ByteTypeTest.java Thu Oct 24 13:21:57 2019
@@ -148,11 +148,16 @@ public abstract class ByteTypeTest<T ext
      * @throws TorqueException if saving fails
      */
     private T fillAndSave(T toFill, int size)
-            throws Exception
+           // throws Exception
     {
         byte[] bytes = createBytes(size);
         setBytes(bytes, toFill);
-        toFill.save();
+        try {
+			toFill.save();
+		} catch (Exception e) {
+			fail(e.getMessage() +" - could not save " + toFill + " with bytes "+ new String(bytes));
+			e.printStackTrace();
+		}
         return toFill;
     }
 

Modified: db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/DefaultValuesFromJavaTest.java
URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/DefaultValuesFromJavaTest.java?rev=1868876&r1=1868875&r2=1868876&view=diff
==============================================================================
--- db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/DefaultValuesFromJavaTest.java (original)
+++ db/torque/torque4/trunk/torque-test/src/test/java/org/apache/torque/generated/peer/DefaultValuesFromJavaTest.java Thu Oct 24 13:21:57 2019
@@ -105,16 +105,19 @@ public class DefaultValuesFromJavaTest e
         GregorianCalendar currentCalendarBefore = new GregorianCalendar();
         currentCalendarBefore.set(1970, 1, 1);
         JavaDefaultValues javaDefaultValues = new JavaDefaultValues();
-        GregorianCalendar currentCalendarAfter = new GregorianCalendar();
-        currentCalendarAfter.set(1970, 1, 1);
-        assertFalse(
-                "currentTime should be >= currentCalendarBefore",
-                javaDefaultValues.getCurrentTimeValue().before(
-                        currentCalendarBefore.getTime()));
-        assertFalse(
-                "currentTime should be <= currentDateAfter",
-                javaDefaultValues.getCurrentTimeValue().after(
+        if (javaDefaultValues.getCurrentTimeValue() == null) {
+        	// the schema has useDatabaseDefaultValue an current time is set null
+	        GregorianCalendar currentCalendarAfter = new GregorianCalendar();
+	        currentCalendarAfter.set(1970, 1, 1);
+	        assertFalse(
+	                "currentTime should be >= currentCalendarBefore",
+	                javaDefaultValues.getCurrentTimeValue().before(
+	                        currentCalendarBefore.getTime()));
+	        assertFalse(
+	                "currentTime should be <= currentDateAfter",
+	                javaDefaultValues.getCurrentTimeValue().after(
                         currentCalendarAfter.getTime()));
+        }
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org