Author: aadamchik
Date: Wed Jul 4 18:56:55 2012
New Revision: 1357364
URL: http://svn.apache.org/viewvc?rev=1357364&view=rev
Log:
CAY-1689 [PATCH] LOB*QueryBuilders do not check isQuotingSQLIdentifiers
patch by Joerg Schoenfisch
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
Modified:
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java?rev=1357364&r1=1357363&r2=1357364&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBBatchQueryBuilder.java
Wed Jul 4 18:56:55 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/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java?rev=1357364&r1=1357363&r2=1357364&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBInsertBatchQueryBuilder.java
Wed Jul 4 18:56:55 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/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
URL:
http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java?rev=1357364&r1=1357363&r2=1357364&view=diff
==============================================================================
---
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
(original)
+++
cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/access/trans/LOBUpdateBatchQueryBuilder.java
Wed Jul 4 18:56:55 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));
}