You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by mi...@apache.org on 2010/10/14 03:08:42 UTC

svn commit: r1022338 - in /openjpa/branches/2.0.x: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/strats/AbstractLobTest.java

Author: mikedd
Date: Thu Oct 14 01:08:41 2010
New Revision: 1022338

URL: http://svn.apache.org/viewvc?rev=1022338&view=rev
Log:
OPENJPA-1699: Streaming LOB support for DB2
> Submitted by Heath Thomann, based on Fay's patch for trunk

Modified:
    openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
    openjpa/branches/2.0.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/strats/AbstractLobTest.java

Modified: openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java?rev=1022338&r1=1022337&r2=1022338&view=diff
==============================================================================
--- openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java (original)
+++ openjpa/branches/2.0.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/sql/DB2Dictionary.java Thu Oct 14 01:08:41 2010
@@ -19,6 +19,8 @@
 package org.apache.openjpa.jdbc.sql;
 
 import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+import java.io.Reader;
 import java.lang.reflect.Method;
 import java.sql.Blob;
 import java.sql.Connection;
@@ -29,12 +31,11 @@ import java.sql.SQLException;
 import java.sql.Statement;
 import java.sql.Types;
 import java.util.Arrays;
-import java.util.Set;
 import java.util.StringTokenizer;
 
 import org.apache.openjpa.jdbc.identifier.DBIdentifier;
-import org.apache.openjpa.jdbc.identifier.QualifiedDBIdentifier;
 import org.apache.openjpa.jdbc.kernel.JDBCFetchConfiguration;
+import org.apache.openjpa.jdbc.kernel.JDBCStore;
 import org.apache.openjpa.jdbc.kernel.exps.FilterValue;
 import org.apache.openjpa.jdbc.kernel.exps.Lit;
 import org.apache.openjpa.jdbc.kernel.exps.Param;
@@ -939,6 +940,34 @@ public class DB2Dictionary
     String nullSafe(String s) {
         return s == null ? "" : s;
     }
+    
+    public void insertBlobForStreamingLoad(Row row, Column col, 
+            JDBCStore store, Object ob, Select sel) throws SQLException {
+        if (ob != null) {
+            row.setBinaryStream(col, (InputStream)ob, -1);
+        } else {
+            row.setNull(col);
+        }
+    }
+
+    public void insertClobForStreamingLoad(Row row, Column col, Object ob)
+    throws SQLException {
+        if (ob != null) {
+            row.setCharacterStream(col, (Reader)ob, -1);
+        } else {
+            row.setNull(col);
+        }
+    }
+
+    public void updateBlob(Select sel, JDBCStore store, InputStream is)
+        throws SQLException {
+        //NO-OP
+    }
+
+    public void updateClob(Select sel, JDBCStore store, Reader reader)
+        throws SQLException {
+        //NO-OP
+    }    
 
     @Override
     public boolean isFatalException(int subtype, SQLException ex) {

Modified: openjpa/branches/2.0.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/strats/AbstractLobTest.java
URL: http://svn.apache.org/viewvc/openjpa/branches/2.0.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/strats/AbstractLobTest.java?rev=1022338&r1=1022337&r2=1022338&view=diff
==============================================================================
--- openjpa/branches/2.0.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/strats/AbstractLobTest.java (original)
+++ openjpa/branches/2.0.x/openjpa-persistence-jdbc/src/test/java/org/apache/openjpa/jdbc/meta/strats/AbstractLobTest.java Thu Oct 14 01:08:41 2010
@@ -30,6 +30,7 @@ import javax.persistence.Query;
 import org.apache.commons.lang.StringUtils;
 import org.apache.openjpa.conf.OpenJPAConfiguration;
 import org.apache.openjpa.datacache.DataCachePCData;
+import org.apache.openjpa.jdbc.sql.DB2Dictionary;
 import org.apache.openjpa.jdbc.sql.DBDictionary;
 import org.apache.openjpa.jdbc.sql.MySQLDictionary;
 import org.apache.openjpa.jdbc.sql.OracleDictionary;
@@ -50,7 +51,8 @@ public abstract class AbstractLobTest ex
 
     protected List<Class<? extends DBDictionary>> supportedDatabases =
         new ArrayList<Class<? extends DBDictionary>>
-            (Arrays.asList(MySQLDictionary.class, OracleDictionary.class, SQLServerDictionary.class));
+            (Arrays.asList(MySQLDictionary.class, OracleDictionary.class, SQLServerDictionary.class, 
+            		DB2Dictionary.class));
         
     public void setUp() throws Exception {
         setSupportedDatabases(supportedDatabases.toArray(new Class<?>[] {}));