Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 8727029

Browse files
author
Dave Cramer
committed
patch to fix returning he information schema as a system object by Kris Jurka
1 parent 777acbb commit 8727029

File tree

1 file changed

+10
-10
lines changed

1 file changed

+10
-10
lines changed

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

+10-10
Original file line numberDiff line numberDiff line change
@@ -1971,15 +1971,15 @@ public java.sql.ResultSet getTables(String catalog, String schemaPattern, String
19711971
if (connection.haveMinimumServerVersion("7.3")) {
19721972
useSchemas = "SCHEMAS";
19731973
select = "SELECT NULL AS TABLE_CAT, n.nspname AS TABLE_SCHEM, c.relname AS TABLE_NAME, "+
1974-
" CASE n.nspname LIKE 'pg\\\\_%' "+
1975-
" WHEN true THEN CASE n.nspname "+
1976-
" WHEN 'pg_catalog' THEN CASE c.relkind "+
1974+
" CASE n.nspname LIKE 'pg\\\\_%' OR n.nspname = 'information_schema' "+
1975+
" WHEN true THEN CASE "+
1976+
" WHEN n.nspname = 'pg_catalog' OR n.nspname = 'information_schema' THEN CASE c.relkind "+
19771977
" WHEN 'r' THEN 'SYSTEM TABLE' "+
19781978
" WHEN 'v' THEN 'SYSTEM VIEW' "+
19791979
" WHEN 'i' THEN 'SYSTEM INDEX' "+
19801980
" ELSE NULL "+
19811981
" END "+
1982-
" WHEN 'pg_toast' THEN CASE c.relkind "+
1982+
" WHEN n.nspname = 'pg_toast' THEN CASE c.relkind "+
19831983
" WHEN 'r' THEN 'SYSTEM TOAST TABLE' "+
19841984
" WHEN 'i' THEN 'SYSTEM TOAST INDEX' "+
19851985
" ELSE NULL "+
@@ -2089,23 +2089,23 @@ public java.sql.ResultSet getTables(String catalog, String schemaPattern, String
20892089
tableTypeClauses = new Hashtable();
20902090
Hashtable ht = new Hashtable();
20912091
tableTypeClauses.put("TABLE",ht);
2092-
ht.put("SCHEMAS","c.relkind = 'r' AND n.nspname NOT LIKE 'pg\\\\_%'");
2092+
ht.put("SCHEMAS","c.relkind = 'r' AND n.nspname NOT LIKE 'pg\\\\_%' AND n.nspname <> 'information_schema'");
20932093
ht.put("NOSCHEMAS","c.relkind = 'r' AND c.relname NOT LIKE 'pg\\\\_%'");
20942094
ht = new Hashtable();
20952095
tableTypeClauses.put("VIEW",ht);
2096-
ht.put("SCHEMAS","c.relkind = 'v' AND n.nspname <> 'pg_catalog'");
2096+
ht.put("SCHEMAS","c.relkind = 'v' AND n.nspname <> 'pg_catalog' AND n.nspname <> 'information_schema'");
20972097
ht.put("NOSCHEMAS","c.relkind = 'v' AND c.relname NOT LIKE 'pg\\\\_%'");
20982098
ht = new Hashtable();
20992099
tableTypeClauses.put("INDEX",ht);
2100-
ht.put("SCHEMAS","c.relkind = 'i' AND n.nspname NOT LIKE 'pg\\\\_%'");
2100+
ht.put("SCHEMAS","c.relkind = 'i' AND n.nspname NOT LIKE 'pg\\\\_%' AND n.nspname <> 'information_schema'");
21012101
ht.put("NOSCHEMAS","c.relkind = 'i' AND c.relname NOT LIKE 'pg\\\\_%'");
21022102
ht = new Hashtable();
21032103
tableTypeClauses.put("SEQUENCE",ht);
21042104
ht.put("SCHEMAS","c.relkind = 'S'");
21052105
ht.put("NOSCHEMAS","c.relkind = 'S'");
21062106
ht = new Hashtable();
21072107
tableTypeClauses.put("SYSTEM TABLE",ht);
2108-
ht.put("SCHEMAS","c.relkind = 'r' AND n.nspname = 'pg_catalog'");
2108+
ht.put("SCHEMAS","c.relkind = 'r' AND (n.nspname = 'pg_catalog' OR n.nspname = 'information_schema')");
21092109
ht.put("NOSCHEMAS","c.relkind = 'r' AND c.relname LIKE 'pg\\\\_%' AND c.relname NOT LIKE 'pg\\\\_toast\\\\_%' AND c.relname NOT LIKE 'pg\\\\_temp\\\\_%'");
21102110
ht = new Hashtable();
21112111
tableTypeClauses.put("SYSTEM TOAST TABLE",ht);
@@ -2117,11 +2117,11 @@ public java.sql.ResultSet getTables(String catalog, String schemaPattern, String
21172117
ht.put("NOSCHEMAS","c.relkind = 'i' AND c.relname LIKE 'pg\\\\_toast\\\\_%'");
21182118
ht = new Hashtable();
21192119
tableTypeClauses.put("SYSTEM VIEW",ht);
2120-
ht.put("SCHEMAS","c.relkind = 'v' AND n.nspname = 'pg_catalog' ");
2120+
ht.put("SCHEMAS","c.relkind = 'v' AND (n.nspname = 'pg_catalog' OR n.nspname = 'information_schema') ");
21212121
ht.put("NOSCHEMAS","c.relkind = 'v' AND c.relname LIKE 'pg\\\\_%'");
21222122
ht = new Hashtable();
21232123
tableTypeClauses.put("SYSTEM INDEX",ht);
2124-
ht.put("SCHEMAS","c.relkind = 'i' AND n.nspname = 'pg_catalog'");
2124+
ht.put("SCHEMAS","c.relkind = 'i' AND (n.nspname = 'pg_catalog' OR n.nspname = 'information_schema') ");
21252125
ht.put("NOSCHEMAS","c.relkind = 'v' AND c.relname LIKE 'pg\\\\_%' AND c.relname NOT LIKE 'pg\\\\_toast\\\\_%' AND c.relname NOT LIKE 'pg\\\\_temp\\\\_%'");
21262126
ht = new Hashtable();
21272127
tableTypeClauses.put("TEMPORARY TABLE",ht);

0 commit comments

Comments
 (0)