postgresql-jdbc.git / summary / log / commit / refs
commit baa02e8232f302e8b1a2ce90d47f9b28b3f40e28
Author: Dave Cramer <davecramer@gmail.com>
Date: Tue May 15 10:24:34 2012 +0000
change Hashtable with Map from Mikko Tiihonen
org/postgresql/fastpath/Fastpath.java | 8 +-
org/postgresql/jdbc2/AbstractJdbc2Connection.java | 4 +-
.../jdbc2/AbstractJdbc2DatabaseMetaData.java | 86 +++++++++++-----------
org/postgresql/jdbc2/AbstractJdbc2ResultSet.java | 4 +-
.../jdbc2/AbstractJdbc2ResultSetMetaData.java | 1 -
org/postgresql/util/ServerErrorMessage.java | 5 +-
6 files changed, 55 insertions(+), 53 deletions(-)
diff --git a/org/postgresql/fastpath/Fastpath.java b/org/postgresql/fastpath/Fastpath.java
index 30163d00..653f60b4 100644
--- a/org/postgresql/fastpath/Fastpath.java
+++ b/org/postgresql/fastpath/Fastpath.java
@@ -9,7 +9,9 @@ package org.postgresql.fastpath;
import java.sql.SQLException;
import java.sql.ResultSet;
-import java.util.Hashtable;
+import java.util.HashMap;
+import java.util.Map;
+
import org.postgresql.core.BaseConnection;
import org.postgresql.core.QueryExecutor;
import org.postgresql.core.ParameterList;
@@ -35,7 +37,7 @@ public class Fastpath
// This maps the functions names to their id's (possible unique just
// to a connection).
- private final Hashtable func = new Hashtable();
+ private final Map func = new HashMap();
private final QueryExecutor executor;
private final BaseConnection connection;
@@ -183,7 +185,7 @@ public class Fastpath
*
* <p>PostgreSQL stores the function id's and their corresponding names in
* the pg_proc table. To speed things up locally, instead of querying each
- * function from that table when required, a Hashtable is used. Also, only
+ * function from that table when required, a HashMap is used. Also, only
* the function's required are entered into this table, keeping connection
* times as fast as possible.
*
diff --git a/org/postgresql/jdbc2/AbstractJdbc2Connection.java b/org/postgresql/jdbc2/AbstractJdbc2Connection.java
index 882a70f4..79015f0f 100644
--- a/org/postgresql/jdbc2/AbstractJdbc2Connection.java
+++ b/org/postgresql/jdbc2/AbstractJdbc2Connection.java
@@ -500,7 +500,7 @@ public abstract class AbstractJdbc2Connection implements BaseConnection
* This method is used internally to return an object based around
* org.postgresql's more unique data types.
*
- * <p>It uses an internal Hashtable to get the handling class. If the
+ * <p>It uses an internal HashMap to get the handling class. If the
* type is not supported, then an instance of org.postgresql.util.PGobject
* is returned.
*
@@ -598,7 +598,7 @@ public abstract class AbstractJdbc2Connection implements BaseConnection
_typeCache.addDataType(type, klass);
}
- // This initialises the objectTypes hashtable
+ // This initialises the objectTypes hash map
private void initObjectTypes(Properties info) throws SQLException
{
// Add in the types that come packaged with the driver.
diff --git a/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java b/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java
index 3000cca0..456cfd35 100644
--- a/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java
+++ b/org/postgresql/jdbc2/AbstractJdbc2DatabaseMetaData.java
@@ -2114,7 +2114,7 @@ public abstract class AbstractJdbc2DatabaseMetaData
select += " AND (false ";
for (int i = 0; i < types.length; i++)
{
- Hashtable clauses = (Hashtable)tableTypeClauses.get(types[i]);
+ Map clauses = (Map)tableTypeClauses.get(types[i]);
if (clauses != null)
{
String clause = (String)clauses.get(useSchemas);
@@ -2128,66 +2128,66 @@ public abstract class AbstractJdbc2DatabaseMetaData
return createMetaDataStatement().executeQuery(sql);
}
- private static final Hashtable tableTypeClauses;
+ private static final Map tableTypeClauses;
static {
- tableTypeClauses = new Hashtable();
- Hashtable ht = new Hashtable();
+ tableTypeClauses = new HashMap();
+ Map ht = new HashMap();
tableTypeClauses.put("TABLE", ht);
ht.put("SCHEMAS", "c.relkind = 'r' AND n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'");
ht.put("NOSCHEMAS", "c.relkind = 'r' AND c.relname !~ '^pg_'");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("VIEW", ht);
ht.put("SCHEMAS", "c.relkind = 'v' AND n.nspname <> 'pg_catalog' AND n.nspname <> 'information_schema'");
ht.put("NOSCHEMAS", "c.relkind = 'v' AND c.relname !~ '^pg_'");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("INDEX", ht);
ht.put("SCHEMAS", "c.relkind = 'i' AND n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'");
ht.put("NOSCHEMAS", "c.relkind = 'i' AND c.relname !~ '^pg_'");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("SEQUENCE", ht);
ht.put("SCHEMAS", "c.relkind = 'S'");
ht.put("NOSCHEMAS", "c.relkind = 'S'");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("TYPE", ht);
ht.put("SCHEMAS", "c.relkind = 'c' AND n.nspname !~ '^pg_' AND n.nspname <> 'information_schema'");
ht.put("NOSCHEMAS", "c.relkind = 'c' AND c.relname !~ '^pg_'");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("SYSTEM TABLE", ht);
ht.put("SCHEMAS", "c.relkind = 'r' AND (n.nspname = 'pg_catalog' OR n.nspname = 'information_schema')");
ht.put("NOSCHEMAS", "c.relkind = 'r' AND c.relname ~ '^pg_' AND c.relname !~ '^pg_toast_' AND c.relname !~ '^pg_temp_'");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("SYSTEM TOAST TABLE", ht);
ht.put("SCHEMAS", "c.relkind = 'r' AND n.nspname = 'pg_toast'");
ht.put("NOSCHEMAS", "c.relkind = 'r' AND c.relname ~ '^pg_toast_'");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("SYSTEM TOAST INDEX", ht);
ht.put("SCHEMAS", "c.relkind = 'i' AND n.nspname = 'pg_toast'");
ht.put("NOSCHEMAS", "c.relkind = 'i' AND c.relname ~ '^pg_toast_'");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("SYSTEM VIEW", ht);
ht.put("SCHEMAS", "c.relkind = 'v' AND (n.nspname = 'pg_catalog' OR n.nspname = 'information_schema') ");
ht.put("NOSCHEMAS", "c.relkind = 'v' AND c.relname ~ '^pg_'");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("SYSTEM INDEX", ht);
ht.put("SCHEMAS", "c.relkind = 'i' AND (n.nspname = 'pg_catalog' OR n.nspname = 'information_schema') ");
ht.put("NOSCHEMAS", "c.relkind = 'v' AND c.relname ~ '^pg_' AND c.relname !~ '^pg_toast_' AND c.relname !~ '^pg_temp_'");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("TEMPORARY TABLE", ht);
ht.put("SCHEMAS", "c.relkind = 'r' AND n.nspname ~ '^pg_temp_' ");
ht.put("NOSCHEMAS", "c.relkind = 'r' AND c.relname ~ '^pg_temp_' ");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("TEMPORARY INDEX", ht);
ht.put("SCHEMAS", "c.relkind = 'i' AND n.nspname ~ '^pg_temp_' ");
ht.put("NOSCHEMAS", "c.relkind = 'i' AND c.relname ~ '^pg_temp_' ");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("TEMPORARY VIEW", ht);
ht.put("SCHEMAS", "c.relkind = 'v' AND n.nspname ~ '^pg_temp_' ");
ht.put("NOSCHEMAS", "c.relkind = 'v' AND c.relname ~ '^pg_temp_' ");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("TEMPORARY SEQUENCE", ht);
ht.put("SCHEMAS", "c.relkind = 'S' AND n.nspname ~ '^pg_temp_' ");
ht.put("NOSCHEMAS", "c.relkind = 'S' AND c.relname ~ '^pg_temp_' ");
- ht = new Hashtable();
+ ht = new HashMap();
tableTypeClauses.put("FOREIGN TABLE", ht);
ht.put("SCHEMAS", "c.relkind = 'f'");
ht.put("NOSCHEMAS", "c.relkind = 'f'");
@@ -2292,11 +2292,11 @@ public abstract class AbstractJdbc2DatabaseMetaData
public java.sql.ResultSet getTableTypes() throws SQLException
{
String types[] = new String[tableTypeClauses.size()];
- Enumeration e = tableTypeClauses.keys();
+ Iterator e = tableTypeClauses.keySet().iterator();
int i = 0;
- while (e.hasMoreElements())
+ while (e.hasNext())
{
- types[i++] = (String)e.nextElement();
+ types[i++] = (String)e.next();
}
sortStringArray(types);
@@ -2676,24 +2676,24 @@ public abstract class AbstractJdbc2DatabaseMetaData
byte column[] = rs.getBytes("attname");
String owner = rs.getString("rolname");
String acl = rs.getString("attacl");
- Hashtable permissions = parseACL(acl, owner);
+ Map permissions = parseACL(acl, owner);
String permNames[] = new String[permissions.size()];
- Enumeration e = permissions.keys();
+ Iterator e = permissions.keySet().iterator();
int i = 0;
- while (e.hasMoreElements())
+ while (e.hasNext())
{
- permNames[i++] = (String)e.nextElement();
+ permNames[i++] = (String)e.next();
}
sortStringArray(permNames);
for (i = 0; i < permNames.length; i++)
{
byte[] privilege = connection.encodeString(permNames[i]);
- Hashtable grantees = (Hashtable)permissions.get(permNames[i]);
+ Map grantees = (Map)permissions.get(permNames[i]);
String granteeUsers[] = new String[grantees.size()];
- Enumeration g = grantees.keys();
+ Iterator g = grantees.keySet().iterator();
int k = 0;
- while (g.hasMoreElements()){
- granteeUsers[k++] = (String)g.nextElement();
+ while (g.hasNext()){
+ granteeUsers[k++] = (String)g.next();
}
for (int j = 0; j < grantees.size(); j++)
{
@@ -2798,24 +2798,24 @@ public abstract class AbstractJdbc2DatabaseMetaData
byte table[] = rs.getBytes("relname");
String owner = rs.getString("rolname");
String acl = rs.getString("relacl");
- Hashtable permissions = parseACL(acl, owner);
+ Map permissions = parseACL(acl, owner);
String permNames[] = new String[permissions.size()];
- Enumeration e = permissions.keys();
+ Iterator e = permissions.keySet().iterator();
int i = 0;
- while (e.hasMoreElements())
+ while (e.hasNext())
{
- permNames[i++] = (String)e.nextElement();
+ permNames[i++] = (String)e.next();
}
sortStringArray(permNames);
for (i = 0; i < permNames.length; i++)
{
byte[] privilege = connection.encodeString(permNames[i]);
- Hashtable grantees = (Hashtable)permissions.get(permNames[i]);
+ Map grantees = (Map)permissions.get(permNames[i]);
String granteeUsers[] = new String[grantees.size()];
- Enumeration g = grantees.keys();
+ Iterator g = grantees.keySet().iterator();
int k = 0;
- while (g.hasMoreElements()){
- granteeUsers[k++] = (String)g.nextElement();
+ while (g.hasNext()){
+ granteeUsers[k++] = (String)g.next();
}
for (int j = 0; j < granteeUsers.length; j++)
{
@@ -2909,7 +2909,7 @@ public abstract class AbstractJdbc2DatabaseMetaData
* Add the user described by the given acl to the Lists of users
* with the privileges described by the acl.
*/
- private void addACLPrivileges(String acl, Hashtable privileges) {
+ private void addACLPrivileges(String acl, Map privileges) {
int equalIndex = acl.lastIndexOf("=");
int slashIndex = acl.lastIndexOf("/");
if (equalIndex == -1)
@@ -2984,11 +2984,11 @@ public abstract class AbstractJdbc2DatabaseMetaData
sqlpriv = "UNKNOWN";
}
- Hashtable usersWithPermission = (Hashtable)privileges.get(sqlpriv);
+ Map usersWithPermission = (Map)privileges.get(sqlpriv);
String[] grant = {grantor, grantable};
if (usersWithPermission == null) {
- usersWithPermission = new Hashtable();
+ usersWithPermission = new HashMap();
List permissionByGrantor = new ArrayList();
permissionByGrantor.add(grant);
usersWithPermission.put(user, permissionByGrantor);
@@ -3009,10 +3009,10 @@ public abstract class AbstractJdbc2DatabaseMetaData
/**
* Take the a String representing an array of ACLs and return
- * a Hashtable mapping the SQL permission name to a List of
+ * a Map mapping the SQL permission name to a List of
* usernames who have that permission.
*/
- public Hashtable parseACL(String aclArray, String owner) {
+ public Map parseACL(String aclArray, String owner) {
if (aclArray == null)
{
//null acl is a shortcut for owner having full privs
@@ -3028,7 +3028,7 @@ public abstract class AbstractJdbc2DatabaseMetaData
}
List acls = parseACLArray(aclArray);
- Hashtable privileges = new Hashtable();
+ Map privileges = new HashMap();
for (int i = 0; i < acls.size(); i++)
{
String acl = (String)acls.get(i);
diff --git a/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java b/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java
index 913f6743..5d840d8d 100644
--- a/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java
+++ b/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java
@@ -1004,7 +1004,7 @@ public abstract class AbstractJdbc2ResultSet implements BaseResultSet, org.postg
System.arraycopy(this_row, 0, rowBuffer, 0, this_row.length);
}
- // clear the updateValues hashTable for the next set of updates
+ // clear the updateValues hash map for the next set of updates
updateValues.clear();
}
@@ -1615,7 +1615,7 @@ public abstract class AbstractJdbc2ResultSet implements BaseResultSet, org.postg
}
else
{
- // otherwise go and get the primary keys and create a hashtable of keys
+ // otherwise go and get the primary keys and create a list of keys
String[] s = quotelessTableName(tableName);
String quotelessTableName = s[0];
String quotelessSchemaName = s[1];
diff --git a/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java b/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java
index bd31544b..160f2d12 100644
--- a/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java
+++ b/org/postgresql/jdbc2/AbstractJdbc2ResultSetMetaData.java
@@ -12,7 +12,6 @@ import org.postgresql.core.*;
import org.postgresql.util.PSQLException;
import org.postgresql.util.PSQLState;
import java.sql.*;
-import java.util.Hashtable;
import org.postgresql.util.GT;
public abstract class AbstractJdbc2ResultSetMetaData implements PGResultSetMetaData
diff --git a/org/postgresql/util/ServerErrorMessage.java b/org/postgresql/util/ServerErrorMessage.java
index 48aa42f5..ded31270 100644
--- a/org/postgresql/util/ServerErrorMessage.java
+++ b/org/postgresql/util/ServerErrorMessage.java
@@ -7,7 +7,8 @@
*/
package org.postgresql.util;
-import java.util.Hashtable;
+import java.util.HashMap;
+import java.util.Map;
import java.io.Serializable;
public class ServerErrorMessage implements Serializable
@@ -26,7 +27,7 @@ public class ServerErrorMessage implements Serializable
private static final Character INTERNAL_POSITION = new Character('p');
private static final Character INTERNAL_QUERY = new Character('q');
- private final Hashtable m_mesgParts = new Hashtable();
+ private final Map m_mesgParts = new HashMap();
private final int verbosity;
public ServerErrorMessage(String p_serverError, int verbosity)
[parent: 1d512c68ce78]