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 2007/01/18 08:48:27 UTC
svn commit: r497334 - in /db/derby/code/trunk/java/engine/org/apache/derby:
iapi/sql/conn/ impl/sql/conn/ impl/sql/execute/
Author: kahatlen
Date: Wed Jan 17 23:48:26 2007
New Revision: 497334
URL: http://svn.apache.org/viewvc?view=rev&rev=497334
Log:
DERBY-2150: Reduce use of synchronized collections in GenericLanguageConnectionContext
Use HashMap instead of Hashtable.
Modified:
db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java
db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InternalTriggerExecutionContext.java
Modified: db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java?view=diff&rev=497334&r1=497333&r2=497334
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/iapi/sql/conn/LanguageConnectionContext.java Wed Jan 17 23:48:26 2007
@@ -22,7 +22,6 @@
package org.apache.derby.iapi.sql.conn;
import org.apache.derby.iapi.services.context.Context;
-import org.apache.derby.iapi.services.context.ContextManager;
import org.apache.derby.iapi.db.Database;
import org.apache.derby.iapi.error.StandardException;
import org.apache.derby.iapi.sql.compile.CompilerContext;
@@ -35,25 +34,19 @@
import org.apache.derby.iapi.sql.depend.Provider;
import org.apache.derby.iapi.sql.execute.ConstantAction;
import org.apache.derby.iapi.sql.execute.CursorActivation;
-import org.apache.derby.iapi.sql.execute.ExecPreparedStatement;
import org.apache.derby.iapi.sql.execute.ExecutionContext;
import org.apache.derby.iapi.sql.execute.ExecutionStmtValidator;
import org.apache.derby.iapi.sql.Activation;
import org.apache.derby.iapi.sql.LanguageFactory;
import org.apache.derby.iapi.sql.PreparedStatement;
-import org.apache.derby.iapi.sql.ResultSet;
import org.apache.derby.iapi.sql.ParameterValueSet;
import org.apache.derby.iapi.store.access.TransactionController;
-import org.apache.derby.iapi.store.access.AccessFactory;
import org.apache.derby.iapi.db.TriggerExecutionContext;
-import org.apache.derby.iapi.services.i18n.LocaleFinder;
import org.apache.derby.iapi.sql.execute.RunTimeStatistics;
import org.apache.derby.catalog.UUID;
-import java.util.Locale;
-import java.util.Hashtable;
-import java.util.Vector;
+import java.util.Map;
/**
* LanguageConnectionContext keeps the result sets,
@@ -978,10 +971,10 @@
public boolean getAutoincrementUpdate();
/**
- * copy a hashtable of autoincrement key value pairs into the cache of
+ * Copy a map of autoincrement key value pairs into the cache of
* ai values stored in the language connection context.
*/
- public void copyHashtableToAIHT(Hashtable from);
+ public void copyHashtableToAIHT(Map from);
/**
* returns the <b>next</b> value to be inserted into an autoincrement col.
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java?view=diff&rev=497334&r1=497333&r2=497334
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/conn/GenericLanguageConnectionContext.java Wed Jan 17 23:48:26 2007
@@ -30,10 +30,8 @@
import org.apache.derby.impl.sql.GenericPreparedStatement;
import org.apache.derby.impl.sql.GenericStatement;
import org.apache.derby.iapi.sql.Statement;
-import org.apache.derby.impl.sql.conn.CachedStatement;
import org.apache.derby.iapi.services.property.PropertyUtil;
-import org.apache.derby.iapi.services.context.Context;
import org.apache.derby.iapi.services.context.ContextManager;
import org.apache.derby.iapi.services.monitor.Monitor;
import org.apache.derby.iapi.services.sanity.SanityManager;
@@ -72,7 +70,6 @@
import org.apache.derby.iapi.sql.ParameterValueSet;
import org.apache.derby.iapi.store.access.TransactionController;
-import org.apache.derby.iapi.store.access.AccessFactory;
import org.apache.derby.iapi.store.access.XATransactionController;
import org.apache.derby.iapi.util.IdUtil;
import org.apache.derby.iapi.util.StringUtil;
@@ -84,12 +81,9 @@
import java.util.List;
import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.Hashtable;
+import java.util.HashMap;
import java.util.Iterator;
-import java.util.Properties;
-import java.util.Stack;
-import java.io.Serializable;
+import java.util.Map;
/**
* LanguageConnectionContext keeps the pool of prepared statements,
@@ -249,7 +243,7 @@
* To support lastAutoincrementValue: This is a hashtable which maps
* schemaName,tableName,columnName to a Long value.
*/
- private Hashtable autoincrementHT;
+ private HashMap autoincrementHT;
/**
* whether to allow updates or not.
*/
@@ -258,7 +252,7 @@
private boolean identityNotNull; //frugal programmer
// cache of ai being handled in memory (bulk insert + alter table).
- private Hashtable autoincrementCacheHashtable;
+ private HashMap autoincrementCacheHashtable;
// temp public
public CacheManager statementCache;
@@ -2925,7 +2919,7 @@
if (autoincrementCacheHashtable == null)
{
- autoincrementCacheHashtable = new Hashtable();
+ autoincrementCacheHashtable = new HashMap();
}
AutoincrementCounter aic =
@@ -2997,13 +2991,13 @@
return;
if (autoincrementHT == null)
- autoincrementHT = new Hashtable();
+ autoincrementHT = new HashMap();
DataDictionary dd = getDataDictionary();
- for (Enumeration e = autoincrementCacheHashtable.keys();
- e.hasMoreElements(); )
+ for (Iterator it = autoincrementCacheHashtable.keySet().iterator();
+ it.hasNext(); )
{
- Object key = e.nextElement();
+ Object key = it.next();
AutoincrementCounter aic =
(AutoincrementCounter)autoincrementCacheHashtable.get(key);
Long value = aic.getCurrentValue();
@@ -3017,23 +3011,18 @@
}
/**
- * Copies an existing hashtable of autoincrement mappings
+ * Copies an existing autoincrement mapping
* into autoincrementHT, the cache of autoincrement values
* kept in the languageconnectioncontext.
*/
- public void copyHashtableToAIHT(Hashtable from)
+ public void copyHashtableToAIHT(Map from)
{
if (from.isEmpty())
return;
if (autoincrementHT == null)
- autoincrementHT = new Hashtable();
+ autoincrementHT = new HashMap();
- for (Enumeration e = from.keys(); e.hasMoreElements(); )
- {
- Object key = e.nextElement();
- Object value = from.get(key);
- autoincrementHT.put(key, value);
- }
+ autoincrementHT.putAll(from);
}
/**
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java?view=diff&rev=497334&r1=497333&r2=497334
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InsertResultSet.java Wed Jan 17 23:48:26 2007
@@ -22,6 +22,7 @@
package org.apache.derby.impl.sql.execute;
import java.util.Enumeration;
+import java.util.HashMap;
import java.util.Hashtable;
import java.util.Properties;
import java.util.Vector;
@@ -512,7 +513,7 @@
if (aiCache != null)
{
- Hashtable aiHashtable = new Hashtable();
+ HashMap aiHashtable = new HashMap();
int numColumns = aiCache.length;
// this insert updated ai values, store them in some persistent
// place so that I can see these values.
Modified: db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InternalTriggerExecutionContext.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InternalTriggerExecutionContext.java?view=diff&rev=497334&r1=497333&r2=497334
==============================================================================
--- db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InternalTriggerExecutionContext.java (original)
+++ db/derby/code/trunk/java/engine/org/apache/derby/impl/sql/execute/InternalTriggerExecutionContext.java Wed Jan 17 23:48:26 2007
@@ -40,6 +40,7 @@
import java.util.Enumeration;
import java.util.Vector;
import java.util.Hashtable;
+import java.util.Map;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Statement;
@@ -619,22 +620,17 @@
return null;
}
/**
- * Copy a hashtable of autoincrement values into the trigger
+ * Copy a map of autoincrement values into the trigger
* execution context hashtable of autoincrement values.
*/
- public void copyHashtableToAIHT(Hashtable from)
+ public void copyHashtableToAIHT(Map from)
{
if (from == null)
return;
if (aiHT == null)
aiHT = new Hashtable();
- for (Enumeration e = from.keys(); e.hasMoreElements(); )
- {
- Object key = e.nextElement();
- Object value = from.get(key);
- aiHT.put(key, value);
- // System.out.println(" in itec:chte-- " + key + " " + value);
- }
+
+ aiHT.putAll(from);
}
/**