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

Lines changed: 10 additions & 10 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy