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 tv...@apache.org on 2007/05/01 12:46:06 UTC

svn commit: r534001 - in /db/torque: runtime/trunk/src/java/org/apache/torque/util/BasePeer.java runtime/trunk/src/java/org/apache/torque/util/LargeSelect.java test/trunk/test-project/src/java/org/apache/torque/DataTest.java

Author: tv
Date: Tue May  1 03:46:05 2007
New Revision: 534001

URL: http://svn.apache.org/viewvc?view=rev&rev=534001
Log:
Added the call to BasePeer.correctBooleans() to LargeSelect.
Fixed the handling of unqualified column names in BasePeer.correctBooleans(),
Gracefully handle the case of a defaultTableMap==null,
Added testCases to verify the behaviour,
Fixes TORQUE-92

Modified:
    db/torque/runtime/trunk/src/java/org/apache/torque/util/BasePeer.java
    db/torque/runtime/trunk/src/java/org/apache/torque/util/LargeSelect.java
    db/torque/test/trunk/test-project/src/java/org/apache/torque/DataTest.java

Modified: db/torque/runtime/trunk/src/java/org/apache/torque/util/BasePeer.java
URL: http://svn.apache.org/viewvc/db/torque/runtime/trunk/src/java/org/apache/torque/util/BasePeer.java?view=diff&rev=534001&r1=534000&r2=534001
==============================================================================
--- db/torque/runtime/trunk/src/java/org/apache/torque/util/BasePeer.java (original)
+++ db/torque/runtime/trunk/src/java/org/apache/torque/util/BasePeer.java Tue May  1 03:46:05 2007
@@ -1530,11 +1530,11 @@
                         tableMap = databaseMap.getTable(tableName);
                     }
                 }
-                if (tableMap == null)
-                {
-                    // no description of table available, do not modify anything
-                    break;
-                }
+            }
+            if (tableMap == null)
+            {
+                // no description of table available, do not modify anything
+                continue;
             }
 
             ColumnMap columnMap = tableMap.getColumn(columnName);

Modified: db/torque/runtime/trunk/src/java/org/apache/torque/util/LargeSelect.java
URL: http://svn.apache.org/viewvc/db/torque/runtime/trunk/src/java/org/apache/torque/util/LargeSelect.java?view=diff&rev=534001&r1=534000&r2=534001
==============================================================================
--- db/torque/runtime/trunk/src/java/org/apache/torque/util/LargeSelect.java (original)
+++ db/torque/runtime/trunk/src/java/org/apache/torque/util/LargeSelect.java Tue May  1 03:46:05 2007
@@ -740,6 +740,15 @@
                     criteria.setLimit(blockBegin + memoryLimit + 1);
                 }
             }
+
+            /* 
+             * Fix criterions relating to booleanint or booleanchar columns
+             * The defaultTableMap parameter in this call is null because we have
+             * no default peer class inside LargeSelect. This means that all
+             * columns not fully qualified will not be modified.
+             */
+            BasePeer.correctBooleans(criteria, null);
+            
             query = BasePeer.createQueryString(criteria);
 
             // Get a connection to the db.

Modified: db/torque/test/trunk/test-project/src/java/org/apache/torque/DataTest.java
URL: http://svn.apache.org/viewvc/db/torque/test/trunk/test-project/src/java/org/apache/torque/DataTest.java?view=diff&rev=534001&r1=534000&r2=534001
==============================================================================
--- db/torque/test/trunk/test-project/src/java/org/apache/torque/DataTest.java (original)
+++ db/torque/test/trunk/test-project/src/java/org/apache/torque/DataTest.java Tue May  1 03:46:05 2007
@@ -569,7 +569,45 @@
         assertTrue("Primary key of data set should be f1 but is "
                 + booleanCheck.getTestKey().trim(),
                 "f1".equals(booleanCheck.getTestKey().trim()));
+        
+        // check whether booleans are replaced with unqualified columns
+        criteria.clear();
+        criteria.add("bint_value", true);
+        criteria.add("bchar_value", true);
+        
+        BooleanCheckPeer.correctBooleans(criteria);
 
+        Criteria.Criterion criterionInt = criteria.getCriterion("bint_value");
+        Object intValue = criterionInt.getValue();
+
+        assertTrue("The boolean value should be an instance of Integer",
+                intValue instanceof Integer);
+        
+        Criteria.Criterion criterionChar = criteria.getCriterion("bchar_value");
+        Object charValue = criterionChar.getValue();
+
+        assertTrue("The boolean value should be an instance of String",
+                charValue instanceof String);
+        
+        // check whether booleans are left alone with unqualified columns and 
+        // no table map
+        criteria.clear();
+        criteria.add("bint_value", true);
+        criteria.add("bchar_value", true);
+        
+        BasePeer.correctBooleans(criteria, null);
+
+        Criteria.Criterion criterionBool1 = criteria.getCriterion("bint_value");
+        Object boolValue1 = criterionBool1.getValue();
+
+        assertTrue("The boolean value should be an instance of Boolean",
+               boolValue1 instanceof Boolean);
+        
+        Criteria.Criterion criterionBool2 = criteria.getCriterion("bchar_value");
+        Object boolValue2 = criterionBool2.getValue();
+
+        assertTrue("The boolean value should be an instance of Boolean",
+               boolValue2 instanceof Boolean);
     }
 
     /**



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