Thread: DatabaseMetadata.getTypeInfo resultset returns more than just Postgres/user defined data types

The result set returned from DatabaseMetadata.getTypeInfo contains many rows for instance it returns entries for tables and views in schemas.
 
This seems inconsistent with the 'spirit' of what this method is intended to facilitiate.
 
Is this a known Postgres JDBC driver bug?
 
 
 
On 09/24/2012 11:12 PM, the6campbells wrote:
> The result set returned from DatabaseMetadata.getTypeInfo contains many
> rows for instance it returns entries for tables and views in schemas.

Everything is in a schema; if you don't specify a schema you just get
the schema "public" by default.

> This seems inconsistent with the 'spirit' of what this method is
> intended to facilitiate.

It lists all the types. Seems sensible to me. If you want to filter by
schema, you filter by schema.

Should types in pg_catalog.* be hidden? If so, what if an extension adds
new types? Should they be listed? What if the *same* extension is
instead installed into the public schema - should its types be visible,
or hidden? What about a type created in `pg_temp`?

It's just too messy with an extensible database like PostgreSQL. Without
a very strong justification based on the JDBC spec for excluding system
types (and how would we even define "system type"?) I'm strongly against
changing the current behaviour.

--
Craig Ringer