Re: DbVisualizer shows same tables for all DBs

From: Daniel Serodio <daniel(at)checkforte(dot)com(dot)br>
To: Kris Jurka <books(at)ejurka(dot)com>
Cc: PostgreSQL JDBC List <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: DbVisualizer shows same tables for all DBs
Date: 2003-01-29 11:50:30
Message-ID: 1043841030.24697.65.camel@kelly.ckf
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On Tue, 2003-01-28 at 20:11, Kris Jurka wrote:
> On 28 Jan 2003, Daniel Serodio wrote:
>
> > I know Postgresql doesn't allow changing DBs with the same Connection,
> > but it should let tools know about this limitation via DatabaseMetadata.
> > I'm not particularly familiar with the JDBC spec, so I don't know if the
> > driver doesn't implement the spec correctly or if the spec doesn't cover
> > this sutiation.
> >
> > The fact is, when I connect to a Postgresql DB using DbVisualizer Free
> > 3.1 (www.minq.se) and latest JDBC driver (build 106), I specify which DB
> > I want to connect to in the connection URL (ie
> > "jdbc:postgresql://localhost:5432/testdb"), and 3 DBs show up: testdb,
> > template0 and template1. The weird thing is that template0 and template1
> > seem to be exact copies of testdb. AFAIK, what's really happening is
> > that the driver can't "see" other DBs besides the one I connected to
> > (testdb), so it shows all DBs as if they were the same. IMHO, this
> > behaviour is quite confusing.
>
> The DatabaseMetaData.getCatalogs() method is called by DbVisualizer to get
> the list of available databases. When trying to display the tables in the
> database it passes the desired catalog name into the getTables method, but
> it is ignored.
>
> What could be done:
>
> 1) Make getCatalogs() only return the current catalog.
>
> 2) Make other DatabaseMetaData methods throw an SQLException if a catalog
> other than Connection.getCatalog() is used.

I think the best thing to do would be to make getTables() only return
tables from the current catalog, if the catalog param is null, or throw
SQLException if the catalog param is different from the current catalog.
What do you think?

> The getCatalogs() method's javadoc says "Gets the catalog names available
> in this database." Does that mean are available to this connection or to
> the current user on another connection or another user on another
> connection?
>
> Kris Jurka

Yeah, that's not very specific... What does "this database" mean? BTW,
what is the "conceptual" difference between a database, a catalog and a
schema?

Thanks a lot,
Daniel Serodio

--
Daniel Serodio <daniel(at)checkforte(dot)com(dot)br>
CheckForte

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Dave Cramer 2003-01-29 12:00:31 Re: Unusable resultset
Previous Message Daniel Serodio 2003-01-29 11:36:22 Re: Requiring Ant 1.5 for build breaks JDK 1.1 compatibility