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 dj...@apache.org on 2005/12/31 20:06:46 UTC

svn commit: r360412 - in /db/derby/code/trunk/java/engine/org/apache/derby: iapi/util/StringUtil.java impl/sql/compile/StringSlicer.java impl/sql/compile/sqlgrammar.jj

Author: djd
Date: Sat Dec 31 11:06:43 2005
New Revision: 360412

URL: http://svn.apache.org/viewcvs?rev=360412&view=rev
Log:
DERBY-731 Replace the inefficient StringSlicer class with a simple utility slice method in StringUtil.

Removed:
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/StringSlicer.java
Modified:
    db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/StringUtil.java
    db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj

Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/StringUtil.java
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/StringUtil.java?rev=360412&r1=360411&r2=360412&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/StringUtil.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/util/StringUtil.java Sat Dec 31 11:06:43 2005
@@ -129,6 +129,28 @@
 			value = value.substring(0, length);
 		return value;
 	}
+	
+	/**
+	 * Return a slice (substring) of the passed in value, optionally trimmed.
+	 * WARNING - endOffset is inclusive for historical reasons, unlike
+	 * String.substring() which has an exclusive ending offset.
+	 * @param value Value to slice, must be non-null.
+	 * @param beginOffset Inclusive start character
+	 * @param endOffset Inclusive end character
+	 * @param trim To trim or not to trim
+	 * @return Sliceed value.
+	 */
+	public static String slice(String value,
+			int beginOffset, int endOffset,
+			boolean trim)
+	{
+		String retval = value.substring(beginOffset, endOffset + 1);
+		
+		if (trim)
+			retval = retval.trim();
+		
+		return retval;
+	}
 
 
 	private static char[] hex_table = {

Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj
URL: http://svn.apache.org/viewcvs/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj?rev=360412&r1=360411&r2=360412&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/compile/sqlgrammar.jj Sat Dec 31 11:06:43 2005
@@ -100,7 +100,6 @@
 import org.apache.derby.impl.sql.compile.DDLStatementNode;
 import org.apache.derby.impl.sql.compile.AlterTableNode;
 
-import org.apache.derby.impl.sql.compile.StringSlicer;
 import org.apache.derby.impl.sql.compile.ParseException;
 import org.apache.derby.impl.sql.compile.Token;
 import org.apache.derby.impl.sql.compile.TokenMgrError;
@@ -202,7 +201,6 @@
     private static final int INTERSECT_OP = 5;
     private static final int INTERSECT_ALL_OP = 6;
 
-	private StringSlicer				stringSlicer;
 	private Object[]					paramDefaults;
 	private String						statementSQLText;
 	private NodeFactory					nodeFactory;
@@ -476,15 +474,6 @@
 		return cm;
 	}
 
-	private StringSlicer	getStringSlicer()
-	{
-		if ( stringSlicer == null )
-		{
-			stringSlicer = new StringSlicer( statementSQLText);
-		}
-		return	stringSlicer;
-	}
-
 	/*
 	** Compress 2 adjacent (single or double) quotes into a single (s or d) quote when
 	** found in the middle of a String.
@@ -1651,8 +1640,7 @@
     {
         /* Do per-statement initialization here */
         parameterNumber = 0;
-        stringSlicer = null;
-        this.statementSQLText = statementSQLText;
+       this.statementSQLText = statementSQLText;
         this.paramDefaults = paramDefaults;
         nodeFactory = getNodeFactory();
         initUnnamedParameterList();
@@ -9551,7 +9539,7 @@
 								resultColumns, 
 								queryExpression,
 								ReuseFactory.getInteger(checkOptionType),
-								getStringSlicer().slice(
+								StringUtil.slice(statementSQLText,
 												beginToken.beginOffset,
 												endToken.endOffset,false),
 								getContextManager());
@@ -9639,7 +9627,7 @@
 								ReuseFactory.getInteger(0),
 											// when clause begin offset
 								actionNode,
-								getStringSlicer().slice(
+								StringUtil.slice(statementSQLText,
 									actionBegin,
 									actionEnd,false),
 								ReuseFactory.getInteger(actionBegin),
@@ -9889,7 +9877,7 @@
 		value = (ValueNode) nodeFactory.getNode(
 								C_NodeTypes.DEFAULT_NODE,
 								value,
-								getStringSlicer().slice(
+								StringUtil.slice(statementSQLText,
 									beginToken.beginOffset + 7,
 									endToken.endOffset,true),
 								getContextManager()
@@ -10346,7 +10334,7 @@
 					rclList,
 					null,
 					value,
-					getStringSlicer().slice(
+					StringUtil.slice(statementSQLText,
 						beginToken.beginOffset,
 						endToken.endOffset,true),
 					getContextManager()