mirror of
https://github.com/postgres/postgres.git
synced 2025-05-12 16:21:30 +03:00
From: Peter T Mount <patches@maidast.demon.co.uk>
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:
parent
83e637a99a
commit
2535fcde2a
@ -4,7 +4,7 @@
|
||||
# Makefile for Java JDBC interface
|
||||
#
|
||||
# IDENTIFICATION
|
||||
# $Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/Makefile,v 1.5 1998/02/02 13:16:38 scrappy Exp $
|
||||
# $Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/Makefile,v 1.6 1998/02/09 03:22:30 scrappy Exp $
|
||||
#
|
||||
#-------------------------------------------------------------------------
|
||||
|
||||
@ -75,7 +75,8 @@ OBJS= postgresql/CallableStatement.class \
|
||||
postgresql/largeobject/LargeObject.class \
|
||||
postgresql/largeobject/LargeObjectManager.class \
|
||||
postgresql/util/PGobject.class \
|
||||
postgresql/util/PGtokenizer.class
|
||||
postgresql/util/PGtokenizer.class \
|
||||
postgresql/util/UnixCrypt.class
|
||||
|
||||
# If you have problems with the first line, try the second one.
|
||||
# This is needed when compiling under Solaris, as the solaris sh doesn't
|
||||
@ -120,6 +121,7 @@ postgresql/largeobject/LargeObject.class: postgresql/largeobject/LargeObject.jav
|
||||
postgresql/largeobject/LargeObjectManager.class: postgresql/largeobject/LargeObjectManager.java
|
||||
postgresql/util/PGobject.class: postgresql/util/PGobject.java
|
||||
postgresql/util/PGtokenizer.class: postgresql/util/PGtokenizer.java
|
||||
postgresql/util/UnixCrypt.class: postgresql/util/UnixCrypt.java
|
||||
|
||||
#######################################################################
|
||||
# These classes are in the example directory, and form the examples
|
||||
|
@ -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);
|
||||
|
@ -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.
|
||||
|
@ -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;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user