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

Commitd9d59ca

Browse files
author
Dave Cramer
committed
patch for getTables to fix problems with backends before 7.3 by Kris Jurka
1 parent58eeb82 commitd9d59ca

File tree

1 file changed

+25
-11
lines changed

1 file changed

+25
-11
lines changed

‎src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1730,12 +1730,14 @@ public java.sql.ResultSet getProcedures(String catalog, String schemaPattern, St
17301730
}elseif (connection.haveMinimumServerVersion("7.1")) {
17311731
sql ="SELECT NULL AS PROCEDURE_CAT, NULL AS PROCEDURE_SCHEM, p.proname AS PROCEDURE_NAME, NULL, NULL, NULL, d.description AS REMARKS, "+java.sql.DatabaseMetaData.procedureReturnsResult+" AS PROCEDURE_TYPE "+
17321732
" FROM pg_proc p "+
1733-
" LEFT JOIN pg_description d ON (p.oid=d.objoid) "+
1734-
" LEFT JOIN pg_class c ON (d.classoid=c.oid AND c.relname='pg_proc') ";
1735-
if (procedureNamePattern !=null) {
1736-
sql +=" WHERE p.proname LIKE '"+escapeQuotes(procedureNamePattern)+"' ";
1737-
}
1738-
sql +=" ORDER BY PROCEDURE_NAME ";
1733+
" LEFT JOIN pg_description d ON (p.oid=d.objoid) ";
1734+
if (connection.haveMinimumServerVersion("7.2")) {
1735+
sql +=" LEFT JOIN pg_class c ON (d.classoid=c.oid AND c.relname='pg_proc') ";
1736+
}
1737+
if (procedureNamePattern !=null) {
1738+
sql +=" WHERE p.proname LIKE '"+escapeQuotes(procedureNamePattern)+"' ";
1739+
}
1740+
sql +=" ORDER BY PROCEDURE_NAME ";
17391741
}else {
17401742
sql ="SELECT NULL AS PROCEDURE_CAT, NULL AS PROCEDURE_SCHEM, p.proname AS PROCEDURE_NAME, NULL, NULL, NULL, NULL AS REMARKS, "+java.sql.DatabaseMetaData.procedureReturnsResult+" AS PROCEDURE_TYPE "+
17411743
" FROM pg_proc p ";
@@ -1995,9 +1997,6 @@ public java.sql.ResultSet getTables(String catalog, String schemaPattern, String
19951997
if (schemaPattern !=null && !"".equals(schemaPattern)) {
19961998
select +=" AND n.nspname LIKE '"+escapeQuotes(schemaPattern)+"' ";
19971999
}
1998-
if (tableNamePattern !=null) {
1999-
select +=" AND c.relname LIKE '"+escapeQuotes(tableNamePattern)+"' ";
2000-
}
20012000
orderby =" ORDER BY TABLE_TYPE,TABLE_SCHEM,TABLE_NAME ";
20022001
}else {
20032002
useSchemas ="NOSCHEMAS";
@@ -2035,12 +2034,17 @@ public java.sql.ResultSet getTables(String catalog, String schemaPattern, String
20352034
" ELSE NULL "+
20362035
" END ";
20372036
orderby =" ORDER BY TABLE_TYPE,TABLE_NAME ";
2038-
if (connection.haveMinimumServerVersion("7.1")) {
2037+
if (connection.haveMinimumServerVersion("7.2")) {
20392038
select ="SELECT NULL AS TABLE_CAT, NULL AS TABLE_SCHEM, c.relname AS TABLE_NAME, "+tableType+" AS TABLE_TYPE, d.description AS REMARKS "+
20402039
" FROM pg_class c "+
20412040
" LEFT JOIN pg_description d ON (c.oid=d.objoid AND d.objsubid = 0) "+
20422041
" LEFT JOIN pg_class dc ON (d.classoid = dc.oid AND dc.relname='pg_class') "+
20432042
" WHERE true ";
2043+
}elseif (connection.haveMinimumServerVersion("7.1")) {
2044+
select ="SELECT NULL AS TABLE_CAT, NULL AS TABLE_SCHEM, c.relname AS TABLE_NAME, "+tableType+" AS TABLE_TYPE, d.description AS REMARKS "+
2045+
" FROM pg_class c "+
2046+
" LEFT JOIN pg_description d ON (c.oid=d.objoid) "+
2047+
" WHERE true ";
20442048
}else {
20452049
select ="SELECT NULL AS TABLE_CAT, NULL AS TABLE_SCHEM, c.relname AS TABLE_NAME, "+tableType+" AS TABLE_TYPE, NULL AS REMARKS "+
20462050
" FROM pg_class c "+
@@ -2051,6 +2055,9 @@ public java.sql.ResultSet getTables(String catalog, String schemaPattern, String
20512055
if (types ==null) {
20522056
types =defaultTableTypes;
20532057
}
2058+
if (tableNamePattern !=null) {
2059+
select +=" AND c.relname LIKE '"+escapeQuotes(tableNamePattern)+"' ";
2060+
}
20542061
Stringsql =select;
20552062
sql +=" AND (false ";
20562063
for (inti=0;i<types.length;i++) {
@@ -2288,14 +2295,21 @@ public java.sql.ResultSet getColumns(String catalog, String schemaPattern, Strin
22882295
if (schemaPattern !=null && !"".equals(schemaPattern)) {
22892296
sql +=" AND n.nspname LIKE '"+escapeQuotes(schemaPattern)+"' ";
22902297
}
2291-
}elseif (connection.haveMinimumServerVersion("7.1")) {
2298+
}elseif (connection.haveMinimumServerVersion("7.2")) {
22922299
sql ="SELECT NULL::text AS nspname,c.relname,a.attname,a.atttypid,a.attnotnull,a.atttypmod,a.attlen,a.attnum,def.adsrc,dsc.description "+
22932300
" FROM pg_class c "+
22942301
" JOIN pg_attribute a ON (a.attrelid=c.oid) "+
22952302
" LEFT JOIN pg_attrdef def ON (a.attrelid=def.adrelid AND a.attnum = def.adnum) "+
22962303
" LEFT JOIN pg_description dsc ON (c.oid=dsc.objoid AND a.attnum = dsc.objsubid) "+
22972304
" LEFT JOIN pg_class dc ON (dc.oid=dsc.classoid AND dc.relname='pg_class') "+
22982305
" WHERE a.attnum > 0 ";
2306+
}elseif (connection.haveMinimumServerVersion("7.1")) {
2307+
sql ="SELECT NULL::text AS nspname,c.relname,a.attname,a.atttypid,a.attnotnull,a.atttypmod,a.attlen,a.attnum,def.adsrc,dsc.description "+
2308+
" FROM pg_class c "+
2309+
" JOIN pg_attribute a ON (a.attrelid=c.oid) "+
2310+
" LEFT JOIN pg_attrdef def ON (a.attrelid=def.adrelid AND a.attnum = def.adnum) "+
2311+
" LEFT JOIN pg_description dsc ON (a.oid=dsc.objoid) "+
2312+
" WHERE a.attnum > 0 ";
22992313
}else {
23002314
// if < 7.1 then don't get defaults or descriptions.
23012315
sql ="SELECT NULL::text AS nspname,c.relname,a.attname,a.atttypid,a.attnotnull,a.atttypmod,a.attlen,a.attnum,NULL AS adsrc,NULL AS description "+

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp