Обсуждение: The PostgreSQl 9.3 JDBC driver fails to find foreign tables
The metadata class for 9.3 JDBC driver is unable to find foreign tables, the 9.2 is working good. I am using metadata.getTables(catalog, schemaPattern, tableNamePattern, tableTypes), and the table type does have "FOREIGN TABLE" in the list. Is anyone else seeing this? -- View this message in context: http://postgresql.1045698.n5.nabble.com/The-PostgreSQl-9-3-JDBC-driver-fails-to-find-foreign-tables-tp5781549.html Sent from the PostgreSQL - jdbc mailing list archive at Nabble.com.
Found the cause, the hashmap values for "FOREIGN TABLE" in AbstractJdbc2DatabaseMetaData class is getting overwritten by "MATERIALIZED VIEW" values: Before ht = new HashMap(); tableTypeClauses.put("FOREIGN TABLE", ht); ht.put("SCHEMAS", "c.relkind = 'f'"); ht.put("NOSCHEMAS", "c.relkind = 'f'"); tableTypeClauses.put("MATERIALIZED VIEW", ht); ht.put("SCHEMAS", "c.relkind = 'm'"); ht.put("NOSCHEMAS", "c.relkind = 'm'"); After (fix): ht = new HashMap(); tableTypeClauses.put("FOREIGN TABLE", ht); ht.put("SCHEMAS", "c.relkind = 'f'"); ht.put("NOSCHEMAS", "c.relkind = 'f'"); ht = new HashMap(); // this is the line missing tableTypeClauses.put("MATERIALIZED VIEW", ht); ht.put("SCHEMAS", "c.relkind = 'm'"); ht.put("NOSCHEMAS", "c.relkind = 'm'"); -- View this message in context: http://postgresql.1045698.n5.nabble.com/The-PostgreSQl-9-3-JDBC-driver-fails-to-find-foreign-tables-tp5781549p5781563.html Sent from the PostgreSQL - jdbc mailing list archive at Nabble.com.
Thanks for finding this, and providing the fix!
On Tue, Dec 3, 2013 at 11:44 PM, plalg <plalg@hotmail.com> wrote:
Found the cause, the hashmap values for "FOREIGN TABLE" in
AbstractJdbc2DatabaseMetaData class is getting overwritten by "MATERIALIZED
VIEW" values:
Before
ht = new HashMap();
tableTypeClauses.put("FOREIGN TABLE", ht);
ht.put("SCHEMAS", "c.relkind = 'f'");
ht.put("NOSCHEMAS", "c.relkind = 'f'");
tableTypeClauses.put("MATERIALIZED VIEW", ht);
ht.put("SCHEMAS", "c.relkind = 'm'");
ht.put("NOSCHEMAS", "c.relkind = 'm'");
After (fix):
ht = new HashMap();
tableTypeClauses.put("FOREIGN TABLE", ht);
ht.put("SCHEMAS", "c.relkind = 'f'");
ht.put("NOSCHEMAS", "c.relkind = 'f'");
ht = new HashMap(); // this is the line missing
tableTypeClauses.put("MATERIALIZED VIEW", ht);
ht.put("SCHEMAS", "c.relkind = 'm'");
ht.put("NOSCHEMAS", "c.relkind = 'm'");
--
View this message in context: http://postgresql.1045698.n5.nabble.com/The-PostgreSQl-9-3-JDBC-driver-fails-to-find-foreign-tables-tp5781549p5781563.htmlSent from the PostgreSQL - jdbc mailing list archive at Nabble.com.
--
Sent via pgsql-jdbc mailing list (pgsql-jdbc@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-jdbc