1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-18 17:42:25 +03:00

backpatch for driver threadsafe problems

This commit is contained in:
Dave Cramer
2003-12-05 21:22:03 +00:00
parent dfaf736bc7
commit 1276e1ed8f

View File

@ -6,7 +6,7 @@
* Copyright (c) 2003, PostgreSQL Global Development Group * Copyright (c) 2003, PostgreSQL Global Development Group
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/Attic/Driver.java.in,v 1.36 2003/09/13 04:02:12 barry Exp $ * $Header: /cvsroot/pgsql/src/interfaces/jdbc/org/postgresql/Attic/Driver.java.in,v 1.36.2.1 2003/12/05 21:22:03 davec Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -123,6 +123,7 @@ public class Driver implements java.sql.Driver
*/ */
public java.sql.Connection connect(String url, Properties info) throws SQLException public java.sql.Connection connect(String url, Properties info) throws SQLException
{ {
Properties props;
if ((props = parseURL(url, info)) == null) if ((props = parseURL(url, info)) == null)
{ {
if (Driver.logDebug) if (Driver.logDebug)
@ -135,7 +136,7 @@ public class Driver implements java.sql.Driver
Driver.debug("connect " + url); Driver.debug("connect " + url);
@JDBCCONNECTCLASS@ con = (@JDBCCONNECTCLASS@)(Class.forName("@JDBCCONNECTCLASS@").newInstance()); @JDBCCONNECTCLASS@ con = (@JDBCCONNECTCLASS@)(Class.forName("@JDBCCONNECTCLASS@").newInstance());
con.openConnection (host(), port(), props, database(), url, this); con.openConnection (host(props), port(props), props, database(props), url, this);
return (java.sql.Connection)con; return (java.sql.Connection)con;
} }
catch (ClassNotFoundException ex) catch (ClassNotFoundException ex)
@ -247,8 +248,6 @@ public class Driver implements java.sql.Driver
return false; return false;
} }
private Properties props;
static private String[] protocols = { "jdbc", "postgresql" }; static private String[] protocols = { "jdbc", "postgresql" };
/* /*
@ -382,7 +381,7 @@ public class Driver implements java.sql.Driver
/* /*
* @return the hostname portion of the URL * @return the hostname portion of the URL
*/ */
public String host() public String host(Properties props)
{ {
return props.getProperty("PGHOST", "localhost"); return props.getProperty("PGHOST", "localhost");
} }
@ -390,7 +389,7 @@ public class Driver implements java.sql.Driver
/* /*
* @return the port number portion of the URL or the default if no port was specified * @return the port number portion of the URL or the default if no port was specified
*/ */
public int port() public int port(Properties props)
{ {
return Integer.parseInt(props.getProperty("PGPORT", "@DEF_PGPORT@")); return Integer.parseInt(props.getProperty("PGPORT", "@DEF_PGPORT@"));
} }
@ -398,20 +397,11 @@ public class Driver implements java.sql.Driver
/* /*
* @return the database name of the URL * @return the database name of the URL
*/ */
public String database() public String database(Properties props)
{ {
return props.getProperty("PGDBNAME", ""); return props.getProperty("PGDBNAME", "");
} }
/*
* @return the value of any property specified in the URL or properties
* passed to connect(), or null if not found.
*/
public String property(String name)
{
return props.getProperty(name);
}
/* /*
* This method was added in v6.5, and simply throws an SQLException * This method was added in v6.5, and simply throws an SQLException
* for an unimplemented method. I decided to do it this way while * for an unimplemented method. I decided to do it this way while
@ -426,7 +416,7 @@ public class Driver implements java.sql.Driver
/** /**
* used to turn logging on to a certain level, can be called * used to turn logging on to a certain level, can be called
* by specifying fully qualified class ie org.postgresql.Driver.setLogLevel() * by specifying fully qualified class ie org.postgresql.Driver.setLogLevel()
* @param int logLevel sets the level which logging will respond to * @param logLevel sets the level which logging will respond to
* INFO being almost no messages * INFO being almost no messages
* DEBUG most verbose * DEBUG most verbose
*/ */