Re: DatabaseMetaData.getTables problem
От | Kris Jurka |
---|---|
Тема | Re: DatabaseMetaData.getTables problem |
Дата | |
Msg-id | Pine.LNX.4.33.0211081325320.14247-100000@leary.csoft.net обсуждение исходный текст |
Ответ на | Re: DatabaseMetaData.getTables problem (Barry Lind <blind@xythos.com>) |
Ответы |
Re: DatabaseMetaData.getTables problem
Re: DatabaseMetaData.getTables problem |
Список | pgsql-jdbc |
The problem is that the join to retrieve the table's comment from pg_description is not properly constrained. A table's comment is stored in pg_description with the objoid of the table's pg_class oid and objsubid = 0. A table's column's comments are stored with the table's pg_class oid and objsubid of pg_attribute.attnum. If any column in the table has a comment then the query will not work properly (retrieving extra rows). Kris Jurka On Fri, 8 Nov 2002, Barry Lind wrote: > Can you also submit a test case? I would like to add a regression test > that tests for the problem being fixed here. (which I don't understand > entirely) > > thanks, > --Barry > > > snpe wrote: > > Hello, > > I am playing with DatabaseMetaData.getTables > > I call getTables(null,null,"TABELA",null) > > > > ResultSet get (number of column of TABELA)+ 1 rows > > > > Patch for this problem is : > > --- > > /u2/postgrescvs/pgsql/src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java > > 2002-11-04 12:03:04.000000000 +0000 > > +++ org/postgresql/jdbc1/AbstractJdbc1DatabaseMetaData.java 2002-11-07 > > 22:11:11.000000000 +0000 > > @@ -1988,7 +1988,7 @@ > > " END "+ > > " AS TABLE_TYPE, d.description AS REMARKS "+ > > " FROM pg_catalog.pg_namespace n, pg_catalog.pg_class c "+ > > - " LEFT JOIN pg_catalog.pg_description d ON (c.oid = d.objoid) "+ > > + " LEFT JOIN pg_catalog.pg_description d ON (c.oid = d.objoid and > > d.objsubid = 0) "+ > > " LEFT JOIN pg_catalog.pg_class dc ON (d.classoid=dc.oid AND > > dc.relname='pg_class') "+ > > " LEFT JOIN pg_catalog.pg_namespace dn ON (dn.oid=dc.relnamespace AND > > dn.nspname='pg_catalog') "+ > > " WHERE c.relnamespace = n.oid "; > > > > > > ---------------------------(end of broadcast)--------------------------- > > TIP 2: you can get off all lists at once with the unregister command > > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) > > > > > > > ---------------------------(end of broadcast)--------------------------- > TIP 2: you can get off all lists at once with the unregister command > (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) >
В списке pgsql-jdbc по дате отправления: