You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by ka...@apache.org on 2009/12/14 16:04:18 UTC

svn commit: r890357 - /db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java

Author: kahatlen
Date: Mon Dec 14 15:04:18 2009
New Revision: 890357

URL: http://svn.apache.org/viewvc?rev=890357&view=rev
Log:
DERBY-4044: Use helper methods from IdUtil to quote SQL identifiers in EmbedResultSet

Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java?rev=890357&r1=890356&r2=890357&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/jdbc/EmbedResultSet.java Mon Dec 14 15:04:18 2009
@@ -79,6 +79,7 @@
 import org.apache.derby.iapi.jdbc.CharacterStreamDescriptor;
 import org.apache.derby.iapi.sql.dictionary.DataDictionary;
 import org.apache.derby.iapi.types.StringDataValue;
+import org.apache.derby.iapi.util.IdUtil;
 
 /**
  * A EmbedResultSet for results from the EmbedStatement family. 
@@ -3604,7 +3605,7 @@
                     }
                     // using quotes around the column name 
                     // to preserve case sensitivity
-                    insertSQL.append(quoteSqlIdentifier(
+                    insertSQL.append(IdUtil.normalToDelimited(
                             resultDescription.getColumnDescriptor(i).getName()));
                     if (columnGotUpdated[i-1]) { 
                         valuesSQL.append("?");
@@ -3696,14 +3697,14 @@
                     if (foundOneColumnAlready)
                         updateWhereCurrentOfSQL.append(",");
                     //using quotes around the column name to preserve case sensitivity
-                    updateWhereCurrentOfSQL.append(quoteSqlIdentifier(
+                    updateWhereCurrentOfSQL.append(IdUtil.normalToDelimited(
                             resultDescription.getColumnDescriptor(i).getName()) + "=?");
                     foundOneColumnAlready = true;
                 }
             }
             //using quotes around the cursor name to preserve case sensitivity
             updateWhereCurrentOfSQL.append(" WHERE CURRENT OF " + 
-                    quoteSqlIdentifier(getCursorName()));
+                    IdUtil.normalToDelimited(getCursorName()));
 
             // Context used for preparing, don't set any timeout (use 0)
             statementContext = lcc.pushStatementContext(isAtomic, false, updateWhereCurrentOfSQL.toString(), null, false, 0L);
@@ -3772,7 +3773,7 @@
                 deleteWhereCurrentOfSQL.append(getFullBaseTableName(activation.getPreparedStatement().getTargetTable()));//get the underlying (schema.)table name
                 //using quotes around the cursor name to preserve case sensitivity
                 deleteWhereCurrentOfSQL.append(" WHERE CURRENT OF " + 
-                        quoteSqlIdentifier(getCursorName()));
+                        IdUtil.normalToDelimited(getCursorName()));
                 
                 // Context used for preparing, don't set any timeout (use 0)
                 statementContext = lcc.pushStatementContext(isAtomic, false, deleteWhereCurrentOfSQL.toString(), null, false, 0L);
@@ -3808,24 +3809,10 @@
 
 	private String getFullBaseTableName(ExecCursorTableReference targetTable) {
 		//using quotes to preserve case sensitivity
-		if (targetTable.getSchemaName() != null)
-			return quoteSqlIdentifier(targetTable.getSchemaName()) + "." + 
-					quoteSqlIdentifier(targetTable.getBaseName());
-		else
-			return quoteSqlIdentifier(targetTable.getBaseName());
+        return IdUtil.mkQualifiedName(targetTable.getSchemaName(),
+                                      targetTable.getBaseName());
 	}
 
-    private String quoteSqlIdentifier(String orgValue) {
-        int i = 0, start = 0;
-        String retValue = "";
-        while ((i = orgValue.indexOf("\"", start) + 1) > 0) {
-            retValue += orgValue.substring(start, i) + "\"";
-            start = i;
-        }
-        retValue += orgValue.substring(start, orgValue.length());
-        return "\"" + retValue + "\"";
-    }
-    
 	/**
 	 * JDBC 2.0
 	 *