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 2010/08/26 22:49:34 UTC
svn commit: r989918 - in
/db/derby/code/trunk/java/engine/org/apache/derby/iapi/types:
DateTimeParser.java SQLTime.java SQLTimestamp.java
Author: kahatlen
Date: Thu Aug 26 20:49:33 2010
New Revision: 989918
URL: http://svn.apache.org/viewvc?rev=989918&view=rev
Log:
DERBY-3173: Removed cached String objects from SQLTime and SQLTimestamp
Patch contributed by Eranda Sooriyabandara <070468D at gmail dot com>.
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DateTimeParser.java
db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTime.java
db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTimestamp.java
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DateTimeParser.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DateTimeParser.java?rev=989918&r1=989917&r2=989918&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DateTimeParser.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/DateTimeParser.java Thu Aug 26 20:49:33 2010
@@ -31,7 +31,6 @@ class DateTimeParser
{
private String str;
- private String trimmedString;
private int len;
private int fieldStart;
private char currentSeparator;
@@ -189,33 +188,17 @@ class DateTimeParser
* @return the original string with trailing blanks trimmed off.
* @exception StandardException if there are more non-blank characters.
*/
- String checkEnd() throws StandardException
+ void checkEnd() throws StandardException
{
- int end = fieldStart;
for( ; fieldStart < len; fieldStart++)
{
if( str.charAt( fieldStart) != ' ')
throw StandardException.newException( SQLState.LANG_DATE_SYNTAX_EXCEPTION);
}
currentSeparator = 0;
- while( end > 0 && str.charAt( end - 1) == ' ')
- end--;
- trimmedString = (end == len) ? str : str.substring( 0, end);
- return trimmedString;
} // end of checkEnd
/**
- * Get the parsed string with trailing blanks removed. <b>This method is only valid after checkEnd
- * has been called.</b>
- *
- * @return The string with trailing blanks removed.
- */
- String getTrimmedString()
- {
- return trimmedString;
- }
-
- /**
* @return the next separator, 0 if there are none
*/
char nextSeparator()
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTime.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTime.java?rev=989918&r1=989917&r2=989918&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTime.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTime.java Thu Aug 26 20:49:33 2010
@@ -93,9 +93,6 @@ public final class SQLTime extends DataT
private int encodedTimeFraction; //currently always 0 since we don't
//support time precision
- // The cached value.toString()
- private String valueString;
-
/*
** DataValueDescriptor interface
** (mostly implemented in DataType)
@@ -105,30 +102,17 @@ public final class SQLTime extends DataT
public int estimateMemoryUsage()
{
- return BASE_MEMORY_USAGE + ClassSize.estimateMemoryUsage( valueString);
+ return BASE_MEMORY_USAGE;
} // end of estimateMemoryUsage
public String getString()
{
if (!isNull())
{
- if (valueString == null)
- {
- valueString = encodedTimeToString(encodedTime);
- }
- return valueString;
+ return encodedTimeToString(encodedTime);
}
else
{
- if (SanityManager.DEBUG)
- {
- if (valueString != null)
- {
- SanityManager.THROWASSERT(
- "valueString expected to be null, not " +
- valueString);
- }
- }
return null;
}
}
@@ -231,15 +215,11 @@ public final class SQLTime extends DataT
{
encodedTime = in.readInt();
encodedTimeFraction = in.readInt();
- // reset cached values
- valueString = null;
}
public void readExternalFromArray(ArrayInputStream in) throws IOException
{
encodedTime = in.readInt();
encodedTimeFraction = in.readInt();
- // reset cached values
- valueString = null;
}
/*
@@ -269,9 +249,6 @@ public final class SQLTime extends DataT
{
encodedTime = -1;
encodedTimeFraction = 0;
-
- // clear cached valueString
- valueString = null;
}
/*
@@ -470,7 +447,6 @@ public final class SQLTime extends DataT
if( parser.nextSeparator() == SQLTimestamp.DATE_SEPARATOR)
{
encodedTime = SQLTimestamp.parseDateOrTimestamp( parser, true)[1];
- valueString = parser.getTrimmedString();
return;
}
hour = parser.parseInt( 2, true, ANY_SEPARATOR, false);
@@ -551,7 +527,7 @@ public final class SQLTime extends DataT
else if( hour > 12)
throw StandardException.newException( SQLState.LANG_DATE_RANGE_EXCEPTION);
}
- valueString = parser.checkEnd();
+ parser.checkEnd();
encodedTime = computeEncodedTime( hour, minute, second);
}
else
@@ -585,7 +561,6 @@ public final class SQLTime extends DataT
throw StandardException.newException( SQLState.LANG_DATE_SYNTAX_EXCEPTION);
}
}
- valueString = timeStr;
}
} // end of parseTime
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTimestamp.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTimestamp.java?rev=989918&r1=989917&r2=989918&view=diff
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTimestamp.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/types/SQLTimestamp.java Thu Aug 26 20:49:33 2010
@@ -93,10 +93,6 @@ public final class SQLTimestamp extends
private int encodedDate;
private int encodedTime;
private int nanos;
-
- // The cached value.toString()
- private String valueString;
-
/*
** DataValueDescriptor interface
** (mostly implemented in DataType)
@@ -106,7 +102,7 @@ public final class SQLTimestamp extends
public int estimateMemoryUsage()
{
- int sz = BASE_MEMORY_USAGE + ClassSize.estimateMemoryUsage( valueString);
+ int sz = BASE_MEMORY_USAGE;
return sz;
} // end of estimateMemoryUsage
@@ -114,37 +110,25 @@ public final class SQLTimestamp extends
{
if (!isNull())
{
- if (valueString == null)
- {
- valueString = getTimestamp((Calendar) null).toString();
- /* The java.sql.Timestamp.toString() method is supposed to return a string in
- * the JDBC escape format. However the JDK 1.3 libraries truncate leading zeros from
- * the year. This is not acceptable to DB2. So add leading zeros if necessary.
- */
- int separatorIdx = valueString.indexOf( '-');
- if( separatorIdx >= 0 && separatorIdx < 4)
- {
- StringBuffer sb = new StringBuffer();
- for( ; separatorIdx < 4; separatorIdx++)
- sb.append('0');
- sb.append( valueString);
- valueString = sb.toString();
- }
- }
+ String valueString = getTimestamp((Calendar) null).toString();
+ /* The java.sql.Timestamp.toString() method is supposed to return a string in
+ * the JDBC escape format. However the JDK 1.3 libraries truncate leading zeros from
+ * the year. This is not acceptable to DB2. So add leading zeros if necessary.
+ */
+ int separatorIdx = valueString.indexOf('-');
+ if (separatorIdx >= 0 && separatorIdx < 4)
+ {
+ StringBuffer sb = new StringBuffer();
+ for( ; separatorIdx < 4; separatorIdx++)
+ sb.append('0');
+ sb.append(valueString);
+ valueString = sb.toString();
+ }
return valueString;
}
else
{
- if (SanityManager.DEBUG)
- {
- if (valueString != null)
- {
- SanityManager.THROWASSERT(
- "valueString expected to be null, not " +
- valueString);
- }
- }
return null;
}
}
@@ -253,16 +237,12 @@ public final class SQLTimestamp extends
encodedDate = in.readInt();
encodedTime = in.readInt();
nanos = in.readInt();
- // reset cached values
- valueString = null;
}
public void readExternalFromArray(ArrayInputStream in) throws IOException
{
encodedDate = in.readInt();
encodedTime = in.readInt();
nanos = in.readInt();
- // reset cached values
- valueString = null;
}
/*
@@ -294,8 +274,6 @@ public final class SQLTimestamp extends
encodedTime = 0;
nanos = 0;
- // clear cached valueString
- valueString = null;
}
/*