Author: oltka
Date: Wed Feb 15 10:58:59 2012
New Revision: 1244438

URL: http://svn.apache.org/viewvc?rev=1244438&view=rev
Log:
CAY-1666 Fix problem with tests on ingres db

Added:
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresBooleanType.java
      - copied, changed from r1242443, 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/IngresUnitDbAdapter.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/ReturnTypesMapLobs1.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ReturnTypesMapLobs1.java
Modified:
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/org/apache/cayenne/dba/ingres/types.xml
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextBlobTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextCharTypeTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextClobTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MiscTypesTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ReturnTypesMappingTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/SelectActionTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ReturnTypesMap1.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/IngresUnitDbAdapter.java
    
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/testmap.map.xml
    cayenne/main/trunk/pom.xml

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresAdapter.java
 Wed Feb 15 10:58:59 2012
@@ -19,10 +19,14 @@
 
 package org.apache.cayenne.dba.ingres;
 
+import java.sql.PreparedStatement;
+import java.sql.SQLException;
+import java.sql.Types;
 import java.util.Iterator;
 import java.util.List;
 
 import org.apache.cayenne.CayenneRuntimeException;
+import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.trans.QualifierTranslator;
 import org.apache.cayenne.access.trans.QueryAssembler;
 import org.apache.cayenne.access.trans.TrimmingQualifierTranslator;
@@ -37,6 +41,8 @@ import org.apache.cayenne.dba.TypesMappi
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.map.DbEntity;
+import org.apache.cayenne.query.Query;
+import org.apache.cayenne.query.SQLAction;
 
 /**
  * DbAdapter implementation for <a 
href="http://opensource.ca.com/projects/ingres/";>Ingres</a>.
@@ -58,14 +64,17 @@ public class IngresAdapter extends JdbcA
             @Inject(USER_EXTENDED_TYPE_LIST) List<ExtendedType> 
userExtendedTypes,
             @Inject(EXTENDED_TYPE_FACTORY_LIST) List<ExtendedTypeFactory> 
extendedTypeFactories) {
         super(runtimeProperties, defaultExtendedTypes, userExtendedTypes, 
extendedTypeFactories);
+        this.setSupportsUniqueConstraints(false);
     }
     
+    
     @Override
     public QualifierTranslator getQualifierTranslator(QueryAssembler 
queryAssembler) {
         return new TrimmingQualifierTranslator(
                 queryAssembler,
                 IngresAdapter.TRIM_FUNCTION);
     }
+    
     /**
      * Returns a SQL string that can be used to create database table 
corresponding to
      * <code>ent</code> parameter.
@@ -167,6 +176,9 @@ public class IngresAdapter extends JdbcA
     protected void configureExtendedTypes(ExtendedTypeMap map) {
         super.configureExtendedTypes(map);
         map.registerType(new IngresCharType());
+        
+        // configure boolean type to work with numeric columns
+        map.registerType(new IngresBooleanType());
     }
 
     /**
@@ -177,4 +189,18 @@ public class IngresAdapter extends JdbcA
         return new IngresPkGenerator(this);
     }
 
+    @Override
+    public void bindParameter(
+            PreparedStatement statement,
+            Object object,
+            int pos,
+            int sqlType,
+            int scale) throws SQLException, Exception {
+
+        if (object == null && (sqlType == Types.BOOLEAN || sqlType == 
Types.BIT)) {
+            statement.setNull(pos, Types.VARCHAR);
+        } else {
+            super.bindParameter(statement, object, pos, sqlType, scale);
+        }
+    }
 }

Copied: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresBooleanType.java
 (from r1242443, 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/IngresUnitDbAdapter.java)
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresBooleanType.java?p2=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresBooleanType.java&p1=cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/IngresUnitDbAdapter.java&r1=1242443&r2=1244438&rev=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/IngresUnitDbAdapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/dba/ingres/IngresBooleanType.java
 Wed Feb 15 10:58:59 2012
@@ -16,40 +16,27 @@
  *  specific language governing permissions and limitations
  *  under the License.
  ****************************************************************/
+package org.apache.cayenne.dba.ingres;
 
-package org.apache.cayenne.unit;
+import java.sql.PreparedStatement;
 
-import java.sql.Connection;
-import java.sql.Types;
+import org.apache.cayenne.access.types.BooleanType;
 
-import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
 
-public class IngresUnitDbAdapter extends UnitDbAdapter {
-
-    public IngresUnitDbAdapter(DbAdapter adapter) {
-        super(adapter);
-    }
+public class IngresBooleanType extends BooleanType {
 
     @Override
-    public boolean supportsBinaryPK() {
-        return false;
-    }
-    
-    /**
-     * Ingres doesn't support LONGVARCHAR comparisions ('like', '=', etc.)
-     */
-    @Override
-    public void willCreateTables(Connection con, DataMap map) {
-        DbEntity paintingInfo = map.getDbEntity("PAINTING_INFO");
-
-        if (paintingInfo != null) {
-            DbAttribute textReview = (DbAttribute) paintingInfo
-                    .getAttribute("TEXT_REVIEW");
-            textReview.setType(Types.VARCHAR);
-            textReview.setMaxLength(255);
+    public void setJdbcObject(
+            PreparedStatement st,
+            Object val,
+            int pos,
+            int type,
+            int precision) throws Exception {
+
+        if (val != null) {
+            st.setInt(pos, ((Boolean) val).booleanValue() ? 1 : 0);
+        } else {
+            st.setNull(pos, type);
         }
     }
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/org/apache/cayenne/dba/ingres/types.xml
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/org/apache/cayenne/dba/ingres/types.xml?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/org/apache/cayenne/dba/ingres/types.xml
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/resources/org/apache/cayenne/dba/ingres/types.xml
 Wed Feb 15 10:58:59 2012
@@ -54,7 +54,7 @@
        <db-type name="DECIMAL"/>
    </jdbc-type>
    <jdbc-type name="DOUBLE">
-       <db-type name="DOUBLE"/>
+       <db-type name="FLOAT"/>
    </jdbc-type>
    <jdbc-type name="FLOAT">
        <db-type name="FLOAT"/>
@@ -88,10 +88,10 @@
    </jdbc-type>
    <jdbc-type name="STRUCT"/>
    <jdbc-type name="TIME">
-       <db-type name="DATE"/>
+       <db-type name="TIMESTAMP"/>
    </jdbc-type>
    <jdbc-type name="TIMESTAMP">
-       <db-type name="DATE"/>
+       <db-type name="TIMESTAMP"/>
    </jdbc-type>
    <jdbc-type name="TINYINT">
        <db-type name="TINYINT"/>

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextBlobTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextBlobTest.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextBlobTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextBlobTest.java
 Wed Feb 15 10:58:59 2012
@@ -22,9 +22,9 @@ package org.apache.cayenne.access;
 import java.util.List;
 
 import org.apache.cayenne.access.types.ByteArrayTypeTest;
-import org.apache.cayenne.configuration.server.ServerRuntime;
 import org.apache.cayenne.di.Inject;
 import org.apache.cayenne.query.SelectQuery;
+import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.BlobTestEntity;
 import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.server.ServerCase;
@@ -43,20 +43,30 @@ public class DataContextBlobTest extends
     private DataContext context3;
 
     @Inject
-    protected ServerRuntime runtime;
-
-    @Inject
     private UnitDbAdapter accessStackAdapter;
+    
+    @Inject
+    private DBHelper dbHelper;
+
+    @Override
+    protected void setUpAfterInjection() throws Exception {
+        if (accessStackAdapter.supportsLobs()) {
+            dbHelper.deleteAll("BLOB_TEST");
+        }
+    }
 
     protected boolean skipTests() {
-        return accessStackAdapter.supportsLobs();
+        return !accessStackAdapter.supportsLobs();
     }
 
     protected boolean skipEmptyLOBTests() {
-        return accessStackAdapter.handlesNullVsEmptyLOBs();
+        return !accessStackAdapter.handlesNullVsEmptyLOBs();
     }
 
     public void testEmptyBlob() throws Exception {
+        if (skipTests()) {
+            return;
+        }
         if (skipEmptyLOBTests()) {
             return;
         }
@@ -116,6 +126,7 @@ public class DataContextBlobTest extends
         BlobTestEntity blobObj3 = (BlobTestEntity) objects3.get(0);
         ByteArrayTypeTest.assertByteArraysEqual(blobObj2.getBlobCol(), blobObj3
                 .getBlobCol());
+      
     }
 
     protected void runWithBlobSize(int sizeBytes) throws Exception {

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextCharTypeTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextCharTypeTest.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextCharTypeTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextCharTypeTest.java
 Wed Feb 15 10:58:59 2012
@@ -27,6 +27,7 @@ import org.apache.cayenne.exp.Expression
 import org.apache.cayenne.query.SelectQuery;
 import org.apache.cayenne.test.jdbc.DBHelper;
 import org.apache.cayenne.testdo.testmap.ReturnTypesMap1;
+import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
@@ -39,32 +40,37 @@ public class DataContextCharTypeTest ext
     @Inject
     protected DBHelper dbHelper;
     
+    @Inject
+    private UnitDbAdapter unitDbAdapter;
+    
     @Override
     protected void setUpAfterInjection() throws Exception {
         dbHelper.deleteAll("TYPES_MAPPING_TEST1");
     }
     
     public void testCharTrimming() {
-        ReturnTypesMap1 map1 = context.newObject(ReturnTypesMap1.class);
-        map1.setCharColumn("  text   ");
-        ReturnTypesMap1 map2 = context.newObject(ReturnTypesMap1.class);
-        map2.setCharColumn("  text");
-        ReturnTypesMap1 map3 = context.newObject(ReturnTypesMap1.class);
-        map3.setCharColumn("text     ");
-        
-        context.commitChanges();
-        
-        Expression qual = 
ExpressionFactory.matchExp(ReturnTypesMap1.CHAR_COLUMN_PROPERTY, "  text");
-        SelectQuery query = new SelectQuery(ReturnTypesMap1.class, qual);
-        List<ReturnTypesMap1> result =  context.performQuery(query);
-        
-        assertTrue("CHAR type trimming is not valid.", 
result.get(0).getCharColumn().startsWith("  text"));
-        assertTrue("CHAR type trimming is not valid.", 
result.get(1).getCharColumn().startsWith("  text"));
-        
-        qual = 
ExpressionFactory.matchExp(ReturnTypesMap1.CHAR_COLUMN_PROPERTY, "text");
-        query = new SelectQuery(ReturnTypesMap1.class, qual);
-        result =  context.performQuery(query);
-        
-        assertTrue("CHAR type trimming is not valid.", 
result.get(0).getCharColumn().startsWith("text"));
+        if (unitDbAdapter.supportsLobs()) {
+            ReturnTypesMap1 map1 = context.newObject(ReturnTypesMap1.class);
+            map1.setCharColumn("  text   ");
+            ReturnTypesMap1 map2 = context.newObject(ReturnTypesMap1.class);
+            map2.setCharColumn("  text");
+            ReturnTypesMap1 map3 = context.newObject(ReturnTypesMap1.class);
+            map3.setCharColumn("text     ");
+            
+            context.commitChanges();
+            
+            Expression qual = 
ExpressionFactory.matchExp(ReturnTypesMap1.CHAR_COLUMN_PROPERTY, "  text");
+            SelectQuery query = new SelectQuery(ReturnTypesMap1.class, qual);
+            List<ReturnTypesMap1> result =  context.performQuery(query);
+            
+            assertTrue("CHAR type trimming is not valid.", 
result.get(0).getCharColumn().startsWith("  text"));
+            assertTrue("CHAR type trimming is not valid.", 
result.get(1).getCharColumn().startsWith("  text"));
+            
+            qual = 
ExpressionFactory.matchExp(ReturnTypesMap1.CHAR_COLUMN_PROPERTY, "text");
+            query = new SelectQuery(ReturnTypesMap1.class, qual);
+            result =  context.performQuery(query);
+            
+            assertTrue("CHAR type trimming is not valid.", 
result.get(0).getCharColumn().startsWith("text"));
+        }
     }
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextClobTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextClobTest.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextClobTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DataContextClobTest.java
 Wed Feb 15 10:58:59 2012
@@ -49,7 +49,9 @@ public class DataContextClobTest extends
 
     @Override
     protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("CLOB_TEST");
+        if (accessStackAdapter.supportsLobs()) {
+            dbHelper.deleteAll("CLOB_TEST");
+        }
     }
 
     private boolean skipTests() {

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MiscTypesTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MiscTypesTest.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MiscTypesTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/MiscTypesTest.java
 Wed Feb 15 10:58:59 2012
@@ -46,7 +46,10 @@ public class MiscTypesTest extends Serve
     
     @Override
     protected void setUpAfterInjection() throws Exception {
-        dbHelper.deleteAll("SERIALIZABLE_ENTITY");
+        if(accessStackAdapter.supportsLobs()) {
+            dbHelper.deleteAll("SERIALIZABLE_ENTITY");
+        }
+        
         dbHelper.deleteAll("ARRAYS_ENTITY");
         dbHelper.deleteAll("CHARACTER_ENTITY");
     }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ReturnTypesMappingTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ReturnTypesMappingTest.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ReturnTypesMappingTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ReturnTypesMappingTest.java
 Wed Feb 15 10:58:59 2012
@@ -32,6 +32,8 @@ import org.apache.cayenne.test.jdbc.DBHe
 import org.apache.cayenne.testdo.testmap.DateTestEntity;
 import org.apache.cayenne.testdo.testmap.ReturnTypesMap1;
 import org.apache.cayenne.testdo.testmap.ReturnTypesMap2;
+import org.apache.cayenne.testdo.testmap.ReturnTypesMapLobs1;
+import org.apache.cayenne.unit.UnitDbAdapter;
 import org.apache.cayenne.unit.di.server.ServerCase;
 import org.apache.cayenne.unit.di.server.UseServerRuntime;
 
@@ -46,14 +48,24 @@ public class ReturnTypesMappingTest exte
     
     @Inject
     private DBHelper dbHelper;
-
+    
+    @Inject
+    private UnitDbAdapter unitDbAdapter;
+    
     @Override
     protected void setUpAfterInjection() throws Exception {
+        if (unitDbAdapter.supportsLobs()) {
+            dbHelper.deleteAll("TYPES_MAPPING_LOBS_TEST1");
+            dbHelper.deleteAll("TYPES_MAPPING_TEST2");
+        }
         dbHelper.deleteAll("TYPES_MAPPING_TEST1");
-        dbHelper.deleteAll("TYPES_MAPPING_TEST2");
         dbHelper.deleteAll("DATE_TEST");
     }
 
+    /*
+     * TODO: olga: We need divided TYPES_MAPPING_TES2 to 2 schemas with lobs 
columns and not lobs columns 
+     */
+    
     public void testBIGINT() throws Exception {
         String columnName = "BIGINT_COLUMN";
         ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
@@ -71,8 +83,8 @@ public class ReturnTypesMappingTest exte
     }
 
     public void testBIGINT2() throws Exception {
-        ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
-
+       ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
+    
         Long bigintValue = 5326457654783454355l;
         test.setBigintColumn(bigintValue);
         context.commitChanges();
@@ -86,38 +98,42 @@ public class ReturnTypesMappingTest exte
     }
 
     public void testBINARY() throws Exception {
-        String columnName = "BINARY_COLUMN";
-        ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
-
-        byte[] binaryValue = {
-                3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
-        };
-        test.setBinaryColumn(binaryValue);
-        context.commitChanges();
-
-        NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
-        DataRow testRead = (DataRow) context.performQuery(q).get(0);
-        Object columnValue = testRead.get(columnName);
-        assertNotNull(columnValue);
-        assertEquals(byte[].class, columnValue.getClass());
-        assertTrue(Arrays.equals(binaryValue, (byte[]) columnValue));
+        if (unitDbAdapter.supportsLobs()) {
+            String columnName = "BINARY_COLUMN";
+            ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+    
+            byte[] binaryValue = {
+                    3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+            };
+            test.setBinaryColumn(binaryValue);
+            context.commitChanges();
+    
+            NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
+            DataRow testRead = (DataRow) context.performQuery(q).get(0);
+            Object columnValue = testRead.get(columnName);
+            assertNotNull(columnValue);
+            assertEquals(byte[].class, columnValue.getClass());
+            assertTrue(Arrays.equals(binaryValue, (byte[]) columnValue));
+        }
     }
 
     public void testBINARY2() throws Exception {
-        ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
-
-        byte[] binaryValue = {
-                3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
-        };
-        test.setBinaryColumn(binaryValue);
-        context.commitChanges();
-
-        SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
-        ReturnTypesMap2 testRead = (ReturnTypesMap2) 
context.performQuery(q).get(0);
-        byte[] columnValue = testRead.getBinaryColumn();
-        assertNotNull(columnValue);
-        assertEquals(byte[].class, columnValue.getClass());
-        assertTrue(Arrays.equals(binaryValue, columnValue));
+        if (unitDbAdapter.supportsLobs()) {
+            ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+    
+            byte[] binaryValue = {
+                    3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+            };
+            test.setBinaryColumn(binaryValue);
+            context.commitChanges();
+    
+            SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
+            ReturnTypesMap2 testRead = (ReturnTypesMap2) 
context.performQuery(q).get(0);
+            byte[] columnValue = testRead.getBinaryColumn();
+            assertNotNull(columnValue);
+            assertEquals(byte[].class, columnValue.getClass());
+            assertTrue(Arrays.equals(binaryValue, columnValue));
+        }
     }
 
     public void testBIT() throws Exception {
@@ -153,38 +169,42 @@ public class ReturnTypesMappingTest exte
     }
 
     public void testBLOB() throws Exception {
-        String columnName = "BLOB_COLUMN";
-        ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
-
-        byte[] blobValue = {
-                3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
-        };
-        test.setBlobColumn(blobValue);
-        context.commitChanges();
-
-        NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
-        DataRow testRead = (DataRow) context.performQuery(q).get(0);
-        Object columnValue = testRead.get(columnName);
-        assertNotNull(columnValue);
-        assertEquals(byte[].class, columnValue.getClass());
-        assertTrue(Arrays.equals(blobValue, (byte[]) columnValue));
+        if (unitDbAdapter.supportsLobs()) {
+            String columnName = "BLOB_COLUMN";
+            ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+    
+            byte[] blobValue = {
+                    3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+            };
+            test.setBlobColumn(blobValue);
+            context.commitChanges();
+    
+            NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
+            DataRow testRead = (DataRow) context.performQuery(q).get(0);
+            Object columnValue = testRead.get(columnName);
+            assertNotNull(columnValue);
+            assertEquals(byte[].class, columnValue.getClass());
+            assertTrue(Arrays.equals(blobValue, (byte[]) columnValue));
+        }
     }
 
     public void testBLOB2() throws Exception {
-        ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
-
-        byte[] blobValue = {
-                3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
-        };
-        test.setBlobColumn(blobValue);
-        context.commitChanges();
-
-        SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
-        ReturnTypesMap2 testRead = (ReturnTypesMap2) 
context.performQuery(q).get(0);
-        byte[] columnValue = testRead.getBlobColumn();
-        assertNotNull(columnValue);
-        assertEquals(byte[].class, columnValue.getClass());
-        assertTrue(Arrays.equals(blobValue, columnValue));
+        if (unitDbAdapter.supportsLobs()) {
+            ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+    
+            byte[] blobValue = {
+                    3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+            };
+            test.setBlobColumn(blobValue);
+            context.commitChanges();
+    
+            SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
+            ReturnTypesMap2 testRead = (ReturnTypesMap2) 
context.performQuery(q).get(0);
+            byte[] columnValue = testRead.getBlobColumn();
+            assertNotNull(columnValue);
+            assertEquals(byte[].class, columnValue.getClass());
+            assertTrue(Arrays.equals(blobValue, columnValue));
+        }
     }
 
     public void testBOOLEAN() throws Exception {
@@ -252,42 +272,46 @@ public class ReturnTypesMappingTest exte
     }
 
     public void testCLOB() throws Exception {
-        String columnName = "CLOB_COLUMN";
-        ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
-
-        StringBuffer buffer = new StringBuffer();
-        for (int i = 0; i < 10000; i++) {
-            buffer.append("CLOB very large string for tests!!!!\n");
+        if (unitDbAdapter.supportsLobs()) {
+            String columnName = "CLOB_COLUMN";
+            ReturnTypesMapLobs1 test = 
context.newObject(ReturnTypesMapLobs1.class);
+    
+            StringBuffer buffer = new StringBuffer();
+            for (int i = 0; i < 10000; i++) {
+                buffer.append("CLOB very large string for tests!!!!\n");
+            }
+            String clobValue = buffer.toString();
+            test.setClobColumn(clobValue);
+            context.commitChanges();
+    
+            NamedQuery q = new NamedQuery("SelectReturnTypesLobsMap1");
+            DataRow testRead = (DataRow) context.performQuery(q).get(0);
+            Object columnValue = testRead.get(columnName);
+            assertNotNull(columnValue);
+            assertEquals(String.class, columnValue.getClass());
+            assertEquals(clobValue, columnValue);
         }
-        String clobValue = buffer.toString();
-        test.setClobColumn(clobValue);
-        context.commitChanges();
-
-        NamedQuery q = new NamedQuery("SelectReturnTypesMap1");
-        DataRow testRead = (DataRow) context.performQuery(q).get(0);
-        Object columnValue = testRead.get(columnName);
-        assertNotNull(columnValue);
-        assertEquals(String.class, columnValue.getClass());
-        assertEquals(clobValue, columnValue);
     }
 
     public void testCLOB2() throws Exception {
-        ReturnTypesMap1 test = context.newObject(ReturnTypesMap1.class);
-
-        StringBuffer buffer = new StringBuffer();
-        for (int i = 0; i < 10000; i++) {
-            buffer.append("CLOB very large string for tests!!!!\n");
+        if (unitDbAdapter.supportsLobs()) {
+            ReturnTypesMapLobs1 test = 
context.newObject(ReturnTypesMapLobs1.class);
+    
+            StringBuffer buffer = new StringBuffer();
+            for (int i = 0; i < 10000; i++) {
+                buffer.append("CLOB very large string for tests!!!!\n");
+            }
+            String clobValue = buffer.toString();
+            test.setClobColumn(clobValue);
+            context.commitChanges();
+    
+            SelectQuery q = new SelectQuery(ReturnTypesMapLobs1.class);
+            ReturnTypesMapLobs1 testRead = (ReturnTypesMapLobs1) 
context.performQuery(q).get(0);
+            String columnValue = testRead.getClobColumn();
+            assertNotNull(columnValue);
+            assertEquals(String.class, columnValue.getClass());
+            assertEquals(clobValue, columnValue);
         }
-        String clobValue = buffer.toString();
-        test.setClobColumn(clobValue);
-        context.commitChanges();
-
-        SelectQuery q = new SelectQuery(ReturnTypesMap1.class);
-        ReturnTypesMap1 testRead = (ReturnTypesMap1) 
context.performQuery(q).get(0);
-        String columnValue = testRead.getClobColumn();
-        assertNotNull(columnValue);
-        assertEquals(String.class, columnValue.getClass());
-        assertEquals(clobValue, columnValue);
     }
 
     public void testDATE() throws Exception {
@@ -453,38 +477,42 @@ public class ReturnTypesMappingTest exte
     }
 
     public void testLONGVARBINARY() throws Exception {
-        String columnName = "LONGVARBINARY_COLUMN";
-        ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
-
-        byte[] longvarbinaryValue = {
-                3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
-        };
-        test.setLongvarbinaryColumn(longvarbinaryValue);
-        context.commitChanges();
-
-        NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
-        DataRow testRead = (DataRow) context.performQuery(q).get(0);
-        Object columnValue = testRead.get(columnName);
-        assertNotNull(columnValue);
-        assertEquals(byte[].class, columnValue.getClass());
-        assertTrue(Arrays.equals(longvarbinaryValue, (byte[]) columnValue));
+        if (unitDbAdapter.supportsLobs()) {
+            String columnName = "LONGVARBINARY_COLUMN";
+            ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+    
+            byte[] longvarbinaryValue = {
+                    3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+            };
+            test.setLongvarbinaryColumn(longvarbinaryValue);
+            context.commitChanges();
+    
+            NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
+            DataRow testRead = (DataRow) context.performQuery(q).get(0);
+            Object columnValue = testRead.get(columnName);
+            assertNotNull(columnValue);
+            assertEquals(byte[].class, columnValue.getClass());
+            assertTrue(Arrays.equals(longvarbinaryValue, (byte[]) 
columnValue));
+        }
     }
 
     public void testLONGVARBINARY2() throws Exception {
-        ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
-
-        byte[] longvarbinaryValue = {
-                3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
-        };
-        test.setLongvarbinaryColumn(longvarbinaryValue);
-        context.commitChanges();
-
-        SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
-        ReturnTypesMap2 testRead = (ReturnTypesMap2) 
context.performQuery(q).get(0);
-        byte[] columnValue = testRead.getLongvarbinaryColumn();
-        assertNotNull(columnValue);
-        assertEquals(byte[].class, columnValue.getClass());
-        assertTrue(Arrays.equals(longvarbinaryValue, columnValue));
+        if (unitDbAdapter.supportsLobs()) {
+            ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+    
+            byte[] longvarbinaryValue = {
+                    3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+            };
+            test.setLongvarbinaryColumn(longvarbinaryValue);
+            context.commitChanges();
+    
+            SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
+            ReturnTypesMap2 testRead = (ReturnTypesMap2) 
context.performQuery(q).get(0);
+            byte[] columnValue = testRead.getLongvarbinaryColumn();
+            assertNotNull(columnValue);
+            assertEquals(byte[].class, columnValue.getClass());
+            assertTrue(Arrays.equals(longvarbinaryValue, columnValue));
+        }
     }
 
     public void testLONGVARCHAR() throws Exception {
@@ -741,38 +769,42 @@ public class ReturnTypesMappingTest exte
     }
 
     public void testVARBINARY() throws Exception {
-        String columnName = "VARBINARY_COLUMN";
-        ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
-
-        byte[] varbinaryValue = {
-                3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
-        };
-        test.setVarbinaryColumn(varbinaryValue);
-        context.commitChanges();
-
-        NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
-        DataRow testRead = (DataRow) context.performQuery(q).get(0);
-        Object columnValue = testRead.get(columnName);
-        assertNotNull(columnValue);
-        assertEquals(byte[].class, columnValue.getClass());
-        assertTrue(Arrays.equals(varbinaryValue, (byte[]) columnValue));
+        if (unitDbAdapter.supportsLobs()) {
+            String columnName = "VARBINARY_COLUMN";
+            ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+    
+            byte[] varbinaryValue = {
+                    3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+            };
+            test.setVarbinaryColumn(varbinaryValue);
+            context.commitChanges();
+    
+            NamedQuery q = new NamedQuery("SelectReturnTypesMap2");
+            DataRow testRead = (DataRow) context.performQuery(q).get(0);
+            Object columnValue = testRead.get(columnName);
+            assertNotNull(columnValue);
+            assertEquals(byte[].class, columnValue.getClass());
+            assertTrue(Arrays.equals(varbinaryValue, (byte[]) columnValue));
+        }
     }
 
     public void testVARBINARY2() throws Exception {
-        ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
-
-        byte[] varbinaryValue = {
-                3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
-        };
-        test.setVarbinaryColumn(varbinaryValue);
-        context.commitChanges();
-
-        SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
-        ReturnTypesMap2 testRead = (ReturnTypesMap2) 
context.performQuery(q).get(0);
-        byte[] columnValue = testRead.getVarbinaryColumn();
-        assertNotNull(columnValue);
-        assertEquals(byte[].class, columnValue.getClass());
-        assertTrue(Arrays.equals(varbinaryValue, columnValue));
+        if (unitDbAdapter.supportsLobs()) {
+            ReturnTypesMap2 test = context.newObject(ReturnTypesMap2.class);
+    
+            byte[] varbinaryValue = {
+                    3, 4, 5, -6, 7, 0, 2, 9, 45, 64, 3, 127, -128, -60
+            };
+            test.setVarbinaryColumn(varbinaryValue);
+            context.commitChanges();
+    
+            SelectQuery q = new SelectQuery(ReturnTypesMap2.class);
+            ReturnTypesMap2 testRead = (ReturnTypesMap2) 
context.performQuery(q).get(0);
+            byte[] columnValue = testRead.getVarbinaryColumn();
+            assertNotNull(columnValue);
+            assertEquals(byte[].class, columnValue.getClass());
+            assertTrue(Arrays.equals(varbinaryValue, columnValue));
+        }
     }
 
     public void testVARCHAR() throws Exception {

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/SelectActionTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/SelectActionTest.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/SelectActionTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/jdbc/SelectActionTest.java
 Wed Feb 15 10:58:59 2012
@@ -47,7 +47,10 @@ public class SelectActionTest extends Se
     @Override
     protected void setUpAfterInjection() throws Exception {
         dbHelper.deleteAll("CLOB_TEST_RELATION");
-        dbHelper.deleteAll("CLOB_TEST");
+        
+        if (accessStackAdapter.supportsLobs()) {
+            dbHelper.deleteAll("CLOB_TEST");
+        }
     }
 
     public void testFetchLimit_DistinctResultIterator() throws Exception {

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/trans/BatchQueryBuilderTest.java
 Wed Feb 15 10:58:59 2012
@@ -22,8 +22,6 @@ package org.apache.cayenne.access.trans;
 
 import java.sql.Types;
 
-import junit.framework.TestCase;
-
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.dba.JdbcAdapter;
 import org.apache.cayenne.di.AdhocObjectFactory;

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/query/SelectQueryTest.java
 Wed Feb 15 10:58:59 2012
@@ -66,7 +66,10 @@ public class SelectQueryTest extends Ser
         dbHelper.deleteAll("ARTIST_GROUP");
         dbHelper.deleteAll("ARTIST");
         dbHelper.deleteAll("CLOB_TEST_RELATION");
-        dbHelper.deleteAll("CLOB_TEST");
+        
+        if (accessStackAdapter.supportsLobs()) {
+              dbHelper.deleteAll("CLOB_TEST");
+        }
     }
 
     protected void createClobDataSet() throws Exception {

Added: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/ReturnTypesMapLobs1.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/ReturnTypesMapLobs1.java?rev=1244438&view=auto
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/ReturnTypesMapLobs1.java
 (added)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/ReturnTypesMapLobs1.java
 Wed Feb 15 10:58:59 2012
@@ -0,0 +1,7 @@
+package org.apache.cayenne.testdo.testmap;
+
+import org.apache.cayenne.testdo.testmap.auto._ReturnTypesMapLobs1;
+
+public class ReturnTypesMapLobs1 extends _ReturnTypesMapLobs1 {
+
+}

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ReturnTypesMap1.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ReturnTypesMap1.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ReturnTypesMap1.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ReturnTypesMap1.java
 Wed Feb 15 10:58:59 2012
@@ -6,7 +6,7 @@ import java.util.Date;
 import org.apache.cayenne.CayenneDataObject;
 
 /**
- * Class _ReturnTypesMap was generated by Cayenne.
+ * Class _ReturnTypesMap1 was generated by Cayenne.
  * It is probably a good idea to avoid changing this class manually,
  * since it may be overwritten next time code is regenerated.
  * If you need to make any customizations, please use subclass.
@@ -17,7 +17,6 @@ public abstract class _ReturnTypesMap1 e
     public static final String BIT_COLUMN_PROPERTY = "bitColumn";
     public static final String BOOLEAN_COLUMN_PROPERTY = "booleanColumn";
     public static final String CHAR_COLUMN_PROPERTY = "charColumn";
-    public static final String CLOB_COLUMN_PROPERTY = "clobColumn";
     public static final String DATE_COLUMN_PROPERTY = "dateColumn";
     public static final String DECIMAL_COLUMN_PROPERTY = "decimalColumn";
     public static final String DOUBLE_COLUMN_PROPERTY = "doubleColumn";
@@ -35,129 +34,122 @@ public abstract class _ReturnTypesMap1 e
     public static final String AAAID_PK_COLUMN = "AAAID";
 
     public void setBigintColumn(Long bigintColumn) {
-        writeProperty("bigintColumn", bigintColumn);
+        writeProperty(BIGINT_COLUMN_PROPERTY, bigintColumn);
     }
     public Long getBigintColumn() {
-        return (Long)readProperty("bigintColumn");
+        return (Long)readProperty(BIGINT_COLUMN_PROPERTY);
     }
 
     public void setBitColumn(Boolean bitColumn) {
-        writeProperty("bitColumn", bitColumn);
+        writeProperty(BIT_COLUMN_PROPERTY, bitColumn);
     }
     public Boolean getBitColumn() {
-        return (Boolean)readProperty("bitColumn");
+        return (Boolean)readProperty(BIT_COLUMN_PROPERTY);
     }
 
     public void setBooleanColumn(Boolean booleanColumn) {
-        writeProperty("booleanColumn", booleanColumn);
+        writeProperty(BOOLEAN_COLUMN_PROPERTY, booleanColumn);
     }
     public Boolean getBooleanColumn() {
-        return (Boolean)readProperty("booleanColumn");
+        return (Boolean)readProperty(BOOLEAN_COLUMN_PROPERTY);
     }
 
     public void setCharColumn(String charColumn) {
-        writeProperty("charColumn", charColumn);
+        writeProperty(CHAR_COLUMN_PROPERTY, charColumn);
     }
     public String getCharColumn() {
-        return (String)readProperty("charColumn");
-    }
-
-    public void setClobColumn(String clobColumn) {
-        writeProperty("clobColumn", clobColumn);
-    }
-    public String getClobColumn() {
-        return (String)readProperty("clobColumn");
+        return (String)readProperty(CHAR_COLUMN_PROPERTY);
     }
 
     public void setDateColumn(Date dateColumn) {
-        writeProperty("dateColumn", dateColumn);
+        writeProperty(DATE_COLUMN_PROPERTY, dateColumn);
     }
     public Date getDateColumn() {
-        return (Date)readProperty("dateColumn");
+        return (Date)readProperty(DATE_COLUMN_PROPERTY);
     }
 
     public void setDecimalColumn(BigDecimal decimalColumn) {
-        writeProperty("decimalColumn", decimalColumn);
+        writeProperty(DECIMAL_COLUMN_PROPERTY, decimalColumn);
     }
     public BigDecimal getDecimalColumn() {
-        return (BigDecimal)readProperty("decimalColumn");
+        return (BigDecimal)readProperty(DECIMAL_COLUMN_PROPERTY);
     }
 
     public void setDoubleColumn(Double doubleColumn) {
-        writeProperty("doubleColumn", doubleColumn);
+        writeProperty(DOUBLE_COLUMN_PROPERTY, doubleColumn);
     }
     public Double getDoubleColumn() {
-        return (Double)readProperty("doubleColumn");
+        return (Double)readProperty(DOUBLE_COLUMN_PROPERTY);
     }
 
     public void setFloatColumn(Float floatColumn) {
-        writeProperty("floatColumn", floatColumn);
+        writeProperty(FLOAT_COLUMN_PROPERTY, floatColumn);
     }
     public Float getFloatColumn() {
-        return (Float)readProperty("floatColumn");
+        return (Float)readProperty(FLOAT_COLUMN_PROPERTY);
     }
 
     public void setIntegerColumn(Integer integerColumn) {
-        writeProperty("integerColumn", integerColumn);
+        writeProperty(INTEGER_COLUMN_PROPERTY, integerColumn);
     }
     public Integer getIntegerColumn() {
-        return (Integer)readProperty("integerColumn");
+        return (Integer)readProperty(INTEGER_COLUMN_PROPERTY);
     }
 
     public void setLongvarcharColumn(String longvarcharColumn) {
-        writeProperty("longvarcharColumn", longvarcharColumn);
+        writeProperty(LONGVARCHAR_COLUMN_PROPERTY, longvarcharColumn);
     }
     public String getLongvarcharColumn() {
-        return (String)readProperty("longvarcharColumn");
+        return (String)readProperty(LONGVARCHAR_COLUMN_PROPERTY);
     }
 
     public void setNumericColumn(BigDecimal numericColumn) {
-        writeProperty("numericColumn", numericColumn);
+        writeProperty(NUMERIC_COLUMN_PROPERTY, numericColumn);
     }
     public BigDecimal getNumericColumn() {
-        return (BigDecimal)readProperty("numericColumn");
+        return (BigDecimal)readProperty(NUMERIC_COLUMN_PROPERTY);
     }
 
     public void setRealColumn(Float realColumn) {
-        writeProperty("realColumn", realColumn);
+        writeProperty(REAL_COLUMN_PROPERTY, realColumn);
     }
     public Float getRealColumn() {
-        return (Float)readProperty("realColumn");
+        return (Float)readProperty(REAL_COLUMN_PROPERTY);
     }
 
     public void setSmallintColumn(Short smallintColumn) {
-        writeProperty("smallintColumn", smallintColumn);
+        writeProperty(SMALLINT_COLUMN_PROPERTY, smallintColumn);
     }
     public Short getSmallintColumn() {
-        return (Short)readProperty("smallintColumn");
+        return (Short)readProperty(SMALLINT_COLUMN_PROPERTY);
     }
 
     public void setTimeColumn(Date timeColumn) {
-        writeProperty("timeColumn", timeColumn);
+        writeProperty(TIME_COLUMN_PROPERTY, timeColumn);
     }
     public Date getTimeColumn() {
-        return (Date)readProperty("timeColumn");
+        return (Date)readProperty(TIME_COLUMN_PROPERTY);
     }
 
     public void setTimestampColumn(Date timestampColumn) {
-        writeProperty("timestampColumn", timestampColumn);
+        writeProperty(TIMESTAMP_COLUMN_PROPERTY, timestampColumn);
     }
     public Date getTimestampColumn() {
-        return (Date)readProperty("timestampColumn");
+        return (Date)readProperty(TIMESTAMP_COLUMN_PROPERTY);
     }
 
     public void setTinyintColumn(Byte tinyintColumn) {
-        writeProperty("tinyintColumn", tinyintColumn);
+        writeProperty(TINYINT_COLUMN_PROPERTY, tinyintColumn);
     }
     public Byte getTinyintColumn() {
-        return (Byte)readProperty("tinyintColumn");
+        return (Byte)readProperty(TINYINT_COLUMN_PROPERTY);
     }
 
     public void setVarcharColumn(String varcharColumn) {
-        writeProperty("varcharColumn", varcharColumn);
+        writeProperty(VARCHAR_COLUMN_PROPERTY, varcharColumn);
     }
     public String getVarcharColumn() {
-        return (String)readProperty("varcharColumn");
+        return (String)readProperty(VARCHAR_COLUMN_PROPERTY);
     }
 
 }

Added: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ReturnTypesMapLobs1.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ReturnTypesMapLobs1.java?rev=1244438&view=auto
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ReturnTypesMapLobs1.java
 (added)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/testdo/testmap/auto/_ReturnTypesMapLobs1.java
 Wed Feb 15 10:58:59 2012
@@ -0,0 +1,24 @@
+package org.apache.cayenne.testdo.testmap.auto;
+
+import org.apache.cayenne.CayenneDataObject;
+
+/**
+ * Class _ReturnTypesMapLobs1 was generated by Cayenne.
+ * It is probably a good idea to avoid changing this class manually,
+ * since it may be overwritten next time code is regenerated.
+ * If you need to make any customizations, please use subclass.
+ */
+public abstract class _ReturnTypesMapLobs1 extends CayenneDataObject {
+
+    public static final String CLOB_COLUMN_PROPERTY = "clobColumn";
+
+    public static final String AAAID_PK_COLUMN = "AAAID";
+
+    public void setClobColumn(String clobColumn) {
+        writeProperty(CLOB_COLUMN_PROPERTY, clobColumn);
+    }
+    public String getClobColumn() {
+        return (String)readProperty(CLOB_COLUMN_PROPERTY);
+    }
+
+}

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/IngresUnitDbAdapter.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/IngresUnitDbAdapter.java?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/IngresUnitDbAdapter.java
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/unit/IngresUnitDbAdapter.java
 Wed Feb 15 10:58:59 2012
@@ -19,37 +19,21 @@
 
 package org.apache.cayenne.unit;
 
-import java.sql.Connection;
-import java.sql.Types;
-
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.map.DbAttribute;
-import org.apache.cayenne.map.DbEntity;
 
 public class IngresUnitDbAdapter extends UnitDbAdapter {
 
     public IngresUnitDbAdapter(DbAdapter adapter) {
         super(adapter);
     }
-
+    
     @Override
-    public boolean supportsBinaryPK() {
+    public boolean supportsFKConstraints() {
         return false;
     }
     
-    /**
-     * Ingres doesn't support LONGVARCHAR comparisions ('like', '=', etc.)
-     */
     @Override
-    public void willCreateTables(Connection con, DataMap map) {
-        DbEntity paintingInfo = map.getDbEntity("PAINTING_INFO");
-
-        if (paintingInfo != null) {
-            DbAttribute textReview = (DbAttribute) paintingInfo
-                    .getAttribute("TEXT_REVIEW");
-            textReview.setType(Types.VARCHAR);
-            textReview.setMaxLength(255);
-        }
+    public boolean supportsLobs() {
+        return true;
     }
 }

Modified: 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/testmap.map.xml
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/testmap.map.xml?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/testmap.map.xml
 (original)
+++ 
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/resources/testmap.map.xml
 Wed Feb 15 10:58:59 2012
@@ -249,13 +249,16 @@
                <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
                <db-attribute name="TINYINT_COL" type="TINYINT"/>
        </db-entity>
+       <db-entity name="TYPES_MAPPING_LOBS_TEST1">
+               <db-attribute name="AAAID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
+               <db-attribute name="CLOB_COLUMN" type="CLOB"/>
+       </db-entity>
        <db-entity name="TYPES_MAPPING_TEST1">
                <db-attribute name="AAAID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true"/>
                <db-attribute name="BIGINT_COLUMN" type="BIGINT"/>
                <db-attribute name="BIT_COLUMN" type="BIT"/>
                <db-attribute name="BOOLEAN_COLUMN" type="BOOLEAN"/>
                <db-attribute name="CHAR_COLUMN" type="CHAR" length="254"/>
-               <db-attribute name="CLOB_COLUMN" type="CLOB"/>
                <db-attribute name="DATE_COLUMN" type="DATE"/>
                <db-attribute name="DECIMAL_COLUMN" type="DECIMAL" length="12" 
scale="5"/>
                <db-attribute name="DOUBLE_COLUMN" type="DOUBLE" scale="7"/>
@@ -490,7 +493,6 @@
                <obj-attribute name="bitColumn" type="java.lang.Boolean" 
db-attribute-path="BIT_COLUMN"/>
                <obj-attribute name="booleanColumn" type="java.lang.Boolean" 
db-attribute-path="BOOLEAN_COLUMN"/>
                <obj-attribute name="charColumn" type="java.lang.String" 
db-attribute-path="CHAR_COLUMN"/>
-               <obj-attribute name="clobColumn" type="java.lang.String" 
db-attribute-path="CLOB_COLUMN"/>
                <obj-attribute name="dateColumn" type="java.util.Date" 
db-attribute-path="DATE_COLUMN"/>
                <obj-attribute name="decimalColumn" type="java.math.BigDecimal" 
db-attribute-path="DECIMAL_COLUMN"/>
                <obj-attribute name="doubleColumn" type="java.lang.Double" 
db-attribute-path="DOUBLE_COLUMN"/>
@@ -511,6 +513,9 @@
                <obj-attribute name="longvarbinaryColumn" type="byte[]" 
db-attribute-path="LONGVARBINARY_COLUMN"/>
                <obj-attribute name="varbinaryColumn" type="byte[]" 
db-attribute-path="VARBINARY_COLUMN"/>
        </obj-entity>
+       <obj-entity name="ReturnTypesMapLobs1" 
className="org.apache.cayenne.testdo.testmap.ReturnTypesMapLobs1" 
clientClassName="test.client.ReturnTypesMapLobs1" 
dbEntityName="TYPES_MAPPING_LOBS_TEST1" 
superClassName="org.apache.cayenne.CayenneDataObject" 
clientSuperClassName="org.apache.cayenne.PersistentObject">
+               <obj-attribute name="clobColumn" type="java.lang.String" 
db-attribute-path="CLOB_COLUMN"/>
+       </obj-entity>
        <obj-entity name="SerializableEntity" 
className="org.apache.cayenne.testdo.testmap.SerializableEntity" 
dbEntityName="SERIALIZABLE_ENTITY">
                <obj-attribute name="serializableField" 
type="org.apache.cayenne.MockSerializable" 
db-attribute-path="SERIALIZABLE_FIELD"/>
        </obj-entity>
@@ -740,6 +745,10 @@ VALUES (#bind($id), #bind($title), #bind
                <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="UPPER"/>
                <sql><![CDATA[SELECT * FROM DATE_TEST]]></sql>
        </query>
+       <query name="SelectReturnTypesLobsMap1" 
factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" 
root-name="testmap">
+               <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
+               <sql><![CDATA[SELECT * FROM TYPES_MAPPING_LOBS_TEST1]]></sql>
+       </query>
        <query name="SelectReturnTypesMap1" 
factory="org.apache.cayenne.map.SQLTemplateBuilder" root="data-map" 
root-name="testmap">
                <property name="cayenne.GenericSelectQuery.fetchingDataRows" 
value="true"/>
                <property name="cayenne.SQLTemplate.columnNameCapitalization" 
value="UPPER"/>

Modified: cayenne/main/trunk/pom.xml
URL: 
http://svn.apache.org/viewvc/cayenne/main/trunk/pom.xml?rev=1244438&r1=1244437&r2=1244438&view=diff
==============================================================================
--- cayenne/main/trunk/pom.xml (original)
+++ cayenne/main/trunk/pom.xml Wed Feb 15 10:58:59 2012
@@ -826,6 +826,23 @@
                                </dependency>
                        </dependencies>
                </profile>
+        <profile>
+                       <id>ingres</id>
+                       <activation>
+                               <property>
+                                       <name>cayenneTestConnection</name>
+                                       <value>ingres</value>
+                               </property>
+                       </activation>
+                       <dependencies>
+                               <dependency>
+                                       <groupId>com.ingres</groupId>
+                                       <artifactId>ingres-driver</artifactId>
+                                       <version>4.0.7</version>
+                                       <scope>test</scope>
+                               </dependency>
+                       </dependencies>
+               </profile>
                <profile>
                        <id>sybase</id>
                        <activation>


Reply via email to