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
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 |