1
0
mirror of https://github.com/postgres/postgres.git synced 2025-12-06 00:02:13 +03:00
This patch fixes the following:

* Fixes minor bug found in DatabaseMetaData.getTables() where it doesn't
  handle default table types.
* It now reports an error if the client opens a database using
  properties, and either the user or password properties are missing. This
  should make the recent problem with Servlets easier to find.
* Commented out obsolete property in Driver.getPropertyInfo()
This commit is contained in:
Marc G. Fournier
1998-02-09 03:22:41 +00:00
parent 83e637a99a
commit 2535fcde2a
4 changed files with 31 additions and 11 deletions

View File

@@ -139,6 +139,14 @@ public class Connection implements java.sql.Connection
{
//int len = STARTUP_LEN; // Length of a startup packet
// Throw an exception if the user or password properties are missing
// This occasionally occurs when the client uses the properties version
// of getConnection(), and is a common question on the email lists
if(info.getProperty("user")==null)
throw new SQLException("The user property is missing. It is mandatory.");
if(info.getProperty("password")==null)
throw new SQLException("The password property is missing. It is mandatory.")
this_driver = d;
this_url = new String(url);
PG_DATABASE = new String(database);

View File

@@ -1615,6 +1615,10 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
*/
public java.sql.ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String types[]) throws SQLException
{
// Handle default value for types
if(types==null)
types = defaultTableTypes;
// the field descriptors for the new ResultSet
Field f[] = new Field[5];
ResultSet r; // ResultSet for the SQL query that we need to do
@@ -1687,6 +1691,12 @@ public class DatabaseMetaData implements java.sql.DatabaseMetaData
{"SYSTEM INDEX", "(relkind='i' and relname ~ '^pg_')"}
};
// These are the default tables, used when NULL is passed to getTables
// The choice of these provide the same behaviour as psql's \d
private static final String defaultTableTypes[] = {
"TABLE","INDEX","SEQUENCE"
};
/**
* Get the schema names available in this database. The results
* are ordered by schema name.

View File

@@ -130,16 +130,16 @@ public class Driver implements java.sql.Driver
// naughty, but its best for speed. If anyone adds a property here, then
// this _MUST_ be increased to accomodate them.
DriverPropertyInfo d,dpi[] = new DriverPropertyInfo[1];
int i=0;
DriverPropertyInfo d,dpi[] = new DriverPropertyInfo[0];
//int i=0;
dpi[i++] = d = new DriverPropertyInfo("auth",p.getProperty("auth","default"));
d.description = "determines if password authentication is used";
d.choices = new String[4];
d.choices[0]="default"; // Get value from postgresql.auth property, defaults to trust
d.choices[1]="trust"; // No password authentication
d.choices[2]="password"; // Password authentication
d.choices[3]="ident"; // Ident (RFC 1413) protocol
//dpi[i++] = d = new DriverPropertyInfo("auth",p.getProperty("auth","default"));
//d.description = "determines if password authentication is used";
//d.choices = new String[4];
//d.choices[0]="default"; // Get value from postgresql.auth property, defaults to trust
//d.choices[1]="trust"; // No password authentication
//d.choices[2]="password"; // Password authentication
//d.choices[3]="ident"; // Ident (RFC 1413) protocol
return dpi;
}