Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2535fcd

Browse files
committed
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()
1 parent83e637a commit2535fcd

File tree

4 files changed

+31
-11
lines changed

4 files changed

+31
-11
lines changed

‎src/interfaces/jdbc/Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Makefile for Java JDBC interface
55
#
66
# IDENTIFICATION
7-
# $Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/Makefile,v 1.5 1998/02/02 13:16:38 scrappy Exp $
7+
# $Header: /cvsroot/pgsql/src/interfaces/jdbc/Attic/Makefile,v 1.6 1998/02/09 03:22:30 scrappy Exp $
88
#
99
#-------------------------------------------------------------------------
1010

@@ -75,7 +75,8 @@ OBJS=postgresql/CallableStatement.class \
7575
postgresql/largeobject/LargeObject.class\
7676
postgresql/largeobject/LargeObjectManager.class\
7777
postgresql/util/PGobject.class\
78-
postgresql/util/PGtokenizer.class
78+
postgresql/util/PGtokenizer.class\
79+
postgresql/util/UnixCrypt.class
7980

8081
# If you have problems with the first line, try the second one.
8182
# 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
120121
postgresql/largeobject/LargeObjectManager.class: postgresql/largeobject/LargeObjectManager.java
121122
postgresql/util/PGobject.class:postgresql/util/PGobject.java
122123
postgresql/util/PGtokenizer.class:postgresql/util/PGtokenizer.java
124+
postgresql/util/UnixCrypt.class:postgresql/util/UnixCrypt.java
123125

124126
#######################################################################
125127
# These classes are in the example directory, and form the examples

‎src/interfaces/jdbc/postgresql/Connection.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -139,6 +139,14 @@ public Connection(String host, int port, Properties info, String database, Strin
139139
{
140140
//int len = STARTUP_LEN;// Length of a startup packet
141141

142+
// Throw an exception if the user or password properties are missing
143+
// This occasionally occurs when the client uses the properties version
144+
// of getConnection(), and is a common question on the email lists
145+
if(info.getProperty("user")==null)
146+
thrownewSQLException("The user property is missing. It is mandatory.");
147+
if(info.getProperty("password")==null)
148+
thrownewSQLException("The password property is missing. It is mandatory.")
149+
142150
this_driver =d;
143151
this_url =newString(url);
144152
PG_DATABASE =newString(database);

‎src/interfaces/jdbc/postgresql/DatabaseMetaData.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1615,6 +1615,10 @@ public java.sql.ResultSet getProcedureColumns(String catalog, String schemaPatte
16151615
*/
16161616
publicjava.sql.ResultSetgetTables(Stringcatalog,StringschemaPattern,StringtableNamePattern,Stringtypes[])throwsSQLException
16171617
{
1618+
// Handle default value for types
1619+
if(types==null)
1620+
types =defaultTableTypes;
1621+
16181622
// the field descriptors for the new ResultSet
16191623
Fieldf[] =newField[5];
16201624
ResultSetr;// ResultSet for the SQL query that we need to do
@@ -1687,6 +1691,12 @@ public java.sql.ResultSet getTables(String catalog, String schemaPattern, String
16871691
{"SYSTEM INDEX","(relkind='i' and relname ~ '^pg_')"}
16881692
};
16891693

1694+
// These are the default tables, used when NULL is passed to getTables
1695+
// The choice of these provide the same behaviour as psql's \d
1696+
privatestaticfinalStringdefaultTableTypes[] = {
1697+
"TABLE","INDEX","SEQUENCE"
1698+
};
1699+
16901700
/**
16911701
* Get the schema names available in this database. The results
16921702
* are ordered by schema name.

‎src/interfaces/jdbc/postgresql/Driver.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -130,16 +130,16 @@ public DriverPropertyInfo[] getPropertyInfo(String url, Properties info) throws
130130

131131
// naughty, but its best for speed. If anyone adds a property here, then
132132
// this _MUST_ be increased to accomodate them.
133-
DriverPropertyInfod,dpi[] =newDriverPropertyInfo[1];
134-
inti=0;
133+
DriverPropertyInfod,dpi[] =newDriverPropertyInfo[0];
134+
//int i=0;
135135

136-
dpi[i++] =d =newDriverPropertyInfo("auth",p.getProperty("auth","default"));
137-
d.description ="determines if password authentication is used";
138-
d.choices =newString[4];
139-
d.choices[0]="default";// Get value from postgresql.auth property, defaults to trust
140-
d.choices[1]="trust";// No password authentication
141-
d.choices[2]="password";// Password authentication
142-
d.choices[3]="ident";// Ident (RFC 1413) protocol
136+
//dpi[i++] = d = new DriverPropertyInfo("auth",p.getProperty("auth","default"));
137+
//d.description = "determines if password authentication is used";
138+
//d.choices = new String[4];
139+
//d.choices[0]="default";// Get value from postgresql.auth property, defaults to trust
140+
//d.choices[1]="trust";// No password authentication
141+
//d.choices[2]="password";// Password authentication
142+
//d.choices[3]="ident";// Ident (RFC 1413) protocol
143143

144144
returndpi;
145145
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp