Re: DatabaseMetaData.getTypeInfo() - returns all tables as well

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Thomas Kellerer <spam_eater(at)gmx(dot)net>
Cc: List <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: DatabaseMetaData.getTypeInfo() - returns all tables as well
Date: 2015-10-20 11:21:04
Message-ID: CADK3HHLK6V4JSfiGHLst2yQKO8rnKqObZefUaF0rDCqRASZpfw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

The problem isnt the driver, it is everyone else.

See the discussion here
https://github.com/pgjdbc/pgjdbc/pull/382#issuecomment-145838971

Dave Cramer

davec(at)postgresintl(dot)com
www.postgresintl.com

On 20 October 2015 at 02:07, Thomas Kellerer <spam_eater(at)gmx(dot)net> wrote:

> No particular problem besides performance.
>
> But I'm surprised: why would this break anything?
> Why does the driver rely on tables from pg_catalog be returned for type
> information?
>
> Thomas
>
> Dave Cramer schrieb am 19.10.2015 um 17:33:
> > This change breaks more than it fixes!
> >
> > What is your specific problem with returning tables ?
> >
> > Dave Cramer
> >
> > davec(at)postgresintl(dot)com <mailto:davec(at)postgresintl(dot)com>
> > www.postgresintl.com <http://www.postgresintl.com>
> >
> > On 1 October 2015 at 08:51, Thomas Kellerer <spam_eater(at)gmx(dot)net <mailto:
> spam_eater(at)gmx(dot)net>> wrote:
> >
> > Sorry, I am not registered with GitHub (nor using it)
> >
> > Regards
> > Thomas
> >
> > Dave Cramer schrieb am 01.10.2015 um 13:23:
> > > Hi Thomas,
> > >
> > > Any chance you could provide a github pull request ?
> > >
> > > Dave Cramer
> > >
> > > dave.cramer(at)credativ(dot)ca
> > > http://www.credativ.ca
> > >
> > > On 30 September 2015 at 15:37, Thomas Kellerer <spam_eater(at)gmx(dot)net
> <mailto:spam_eater(at)gmx(dot)net> <mailto:spam_eater(at)gmx(dot)net <mailto:
> spam_eater(at)gmx(dot)net>>> wrote:
> > >
> > > Hello,
> > >
> > > DatabaseMetaData.getTypeInfo() returns not only data types,
> but also all table types.
> > >
> > > Strictly speaking this is correct as the row type for a table
> is indeed a "data type" in Postgres,
> > > but I think the information returned is way too much from a
> practical point of view.
> > >
> > > This could be reduced at least a bit by not only excluding
> pg_toast, but also pg_catalog and information_schema types:
> > >
> > > SELECT t.typname,t.oid
> > > FROM pg_catalog.pg_type t
> > > JOIN pg_catalog.pg_namespace n ON (t.typnamespace = n.oid)
> > > WHERE n.nspname not in ('pg_toast', 'pg_catalog',
> 'information_schema')
> > >
> > > (instead of WHERE n.nspname != 'pg_toast' in
> AbstractJdbc2DatabaseMetaData.java getTypeInfo())
> > >
> > >
> > > What I find even more confusing (from a JDBC point of view) is
> that each table type is reported twice:
> > >
> > > Once with the table's name and once with an underscore
> prefixing the table name, e.g. foo and _foo.
> > >
> > > These entries map to pg_type rows with typtype = 'c' and 'b'
> respectively.
> > >
> > > I wonder if it would make sense to filter out the "real"
> tables from this result.
> > > And if it does, if there is an efficient way of doing that and
> not removing real composite types
> > > from the result at the same time.
> > >
> > >
> > > Regards
> > > Thomas
> > >
> > >
> > >
> > >
> > > --
> > > Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org
> <mailto:pgsql-jdbc(at)postgresql(dot)org> <mailto:pgsql-jdbc(at)postgresql(dot)org
> <mailto:pgsql-jdbc(at)postgresql(dot)org>>)
> > > To make changes to your subscription:
> > > http://www.postgresql.org/mailpref/pgsql-jdbc
> > >
> > >
> >
> >
> >
> > --
> > Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org <mailto:
> pgsql-jdbc(at)postgresql(dot)org>)
> > To make changes to your subscription:
> > http://www.postgresql.org/mailpref/pgsql-jdbc
> >
> >
>
>
>
> --
> Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-jdbc
>

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Victor Wagner 2015-10-21 09:07:22 Patch (2): Implement failover on libpq connect level.
Previous Message Thomas Kellerer 2015-10-20 06:07:31 Re: DatabaseMetaData.getTypeInfo() - returns all tables as well