Author: aadamchik
Date: Wed Jul  4 19:00:32 2012
New Revision: 1357366

URL: http://svn.apache.org/viewvc?rev=1357366&view=rev
Log:
CAY-1689 [PATCH] LOB*QueryBuilders do not check isQuotingSQLIdentifiers

patch by Joerg Schoenfisch

(cherry picked from commit 6c5d85245a0f96516c106724200307f8cbe79dba)

Modified:
    
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
    
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
    
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java

Modified: 
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java?rev=1357366&r1=1357365&r2=1357366&view=diff
==============================================================================
--- 
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
 (original)
+++ 
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
 Wed Jul  4 19:00:32 2012
@@ -28,6 +28,7 @@ import java.util.List;
 
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.dba.TypesMapping;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.query.BatchQuery;
@@ -52,12 +53,22 @@ public abstract class LOBBatchQueryBuild
             List selectedLOBAttributes,
             List qualifierAttributes) {
 
-        StringBuffer buf = new StringBuffer();
-        buf.append("SELECT ");
+        boolean status;
+        if (updateQuery.getDbEntity().getDataMap() != null
+                && 
updateQuery.getDbEntity().getDataMap().isQuotingSQLIdentifiers()) {
+            status = true;
+        }
+        else {
+            status = false;
+        }
+        QuotingStrategy strategy = getAdapter().getQuotingStrategy(status);
+
+               StringBuffer buf = new StringBuffer();
+               buf.append("SELECT ");
 
         Iterator it = selectedLOBAttributes.iterator();
         while (it.hasNext()) {
-            buf.append(((DbAttribute) it.next()).getName());
+            buf.append(strategy.quoteString(((DbAttribute) 
it.next()).getName()));
 
             if (it.hasNext()) {
                 buf.append(", ");
@@ -66,7 +77,7 @@ public abstract class LOBBatchQueryBuild
 
         buf
                 .append(" FROM ")
-                .append(updateQuery.getDbEntity().getFullyQualifiedName())
+                
.append(strategy.quoteFullyQualifiedName(updateQuery.getDbEntity()))
                 .append(" WHERE ");
 
         it = qualifierAttributes.iterator();

Modified: 
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java?rev=1357366&r1=1357365&r2=1357366&view=diff
==============================================================================
--- 
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
 (original)
+++ 
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
 Wed Jul  4 19:00:32 2012
@@ -25,6 +25,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.query.BatchQuery;
 
@@ -53,31 +54,41 @@ public class LOBInsertBatchQueryBuilder 
         return values;
     }
 
-    @Override
-    public String createSqlString(BatchQuery batch) {
-        String table = batch.getDbEntity().getFullyQualifiedName();
-        List<DbAttribute> dbAttributes = batch.getDbAttributes();
-        StringBuffer query = new StringBuffer("INSERT INTO ");
-        query.append(table).append(" (");
-        for (Iterator<DbAttribute> i = dbAttributes.iterator(); i.hasNext();) {
-            DbAttribute attribute = i.next();
-            query.append(attribute.getName());
-            if (i.hasNext()) {
-                query.append(", ");
-            }
-        }
-        query.append(") VALUES (");
-        for (int i = 0; i < dbAttributes.size(); i++) {
-            if (i > 0) {
-                query.append(", ");
-            }
-
-            appendUpdatedParameter(
-                query,
-                dbAttributes.get(i),
-                batch.getValue(i));
-        }
-        query.append(')');
-        return query.toString();
-    }
+       @Override
+       public String createSqlString(BatchQuery batch) {
+               String table = batch.getDbEntity().getFullyQualifiedName();
+               List<DbAttribute> dbAttributes = batch.getDbAttributes();
+               boolean status;
+               if (batch.getDbEntity().getDataMap() != null && 
batch.getDbEntity().getDataMap().isQuotingSQLIdentifiers()) {
+                       status = true;
+               } else {
+                       status = false;
+               }
+               QuotingStrategy strategy = 
getAdapter().getQuotingStrategy(status);
+
+               StringBuffer query = new StringBuffer("INSERT INTO ");
+               
query.append(strategy.quoteFullyQualifiedName(batch.getDbEntity()));
+               query.append(" (");
+
+               for (Iterator<DbAttribute> i = dbAttributes.iterator(); 
i.hasNext();) {
+                       DbAttribute attribute = i.next();
+                       query.append(strategy.quoteString(attribute.getName()));
+                       if (i.hasNext()) {
+                               query.append(", ");
+                       }
+               }
+               query.append(") VALUES (");
+               for (int i = 0; i < dbAttributes.size(); i++) {
+                       if (i > 0) {
+                               query.append(", ");
+                       }
+
+                       appendUpdatedParameter(
+                                       query,
+                                       dbAttributes.get(i),
+                                       batch.getValue(i));
+               }
+               query.append(')');
+               return query.toString();
+       }
 }

Modified: 
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
URL: 
http://svn.apache.org/viewvc/cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java?rev=1357366&r1=1357365&r2=1357366&view=diff
==============================================================================
--- 
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
 (original)
+++ 
cayenne/main/branches/STABLE-3.1/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
 Wed Jul  4 19:00:32 2012
@@ -25,6 +25,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.cayenne.dba.DbAdapter;
+import org.apache.cayenne.dba.QuotingStrategy;
 import org.apache.cayenne.map.DbAttribute;
 import org.apache.cayenne.query.BatchQuery;
 import org.apache.cayenne.query.UpdateBatchQuery;
@@ -64,11 +65,22 @@ public class LOBUpdateBatchQueryBuilder 
     @Override
     public String createSqlString(BatchQuery batch) {
         UpdateBatchQuery updateBatch = (UpdateBatchQuery) batch;
-        String table = batch.getDbEntity().getFullyQualifiedName();
         List<DbAttribute> idDbAttributes = 
updateBatch.getQualifierAttributes();
         List<DbAttribute> updatedDbAttributes = 
updateBatch.getUpdatedAttributes();
+               
+               boolean status;
+        if (batch.getDbEntity().getDataMap() != null
+                && batch.getDbEntity().getDataMap().isQuotingSQLIdentifiers()) 
{
+            status = true;
+        }
+        else {
+            status = false;
+        }
+        QuotingStrategy strategy = getAdapter().getQuotingStrategy(status);
+               
         StringBuffer query = new StringBuffer("UPDATE ");
-        query.append(table).append(" SET ");
+               
query.append(strategy.quoteFullyQualifiedName(batch.getDbEntity()));
+               query.append(" SET ");
 
         int len = updatedDbAttributes.size();
         for (int i = 0; i < len; i++) {
@@ -77,7 +89,8 @@ public class LOBUpdateBatchQueryBuilder 
             }
 
             DbAttribute attribute = updatedDbAttributes.get(i);
-            query.append(attribute.getName()).append(" = ");
+            query.append(strategy.quoteString(attribute.getName()));
+                       query.append(" = ");
             appendUpdatedParameter(query, attribute, batch.getValue(i));
         }
 


Reply via email to