Re: PG 7.3: Query Meta Data with the JDBC-driver

From: Kris Jurka <books(at)ejurka(dot)com>
To: Henner Zeller <henner(at)freiheit(dot)com>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: PG 7.3: Query Meta Data with the JDBC-driver
Date: 2002-12-02 20:29:46
Message-ID: Pine.LNX.4.33.0212021514080.24686-100000@leary.csoft.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, 2 Dec 2002, Henner Zeller wrote:

>
> Hi,
> Just compiled the 7.3 branch from source and made some tests using the
> JDBC driver coming with it. I did some tests with the henplus
> JDBC-shell and noticed some problems quering the database meta data:
>
> o the foreign key name is 'wierd'
> ---
> DatabaseMetaData meta = conn.getMetaData();
> ResultSet rset = meta.getImportedKeys(null, null, 'bar');
> rset.next();
> String foreignKeyName=rset.getString(12);
> ---
> results in names that seemingly contains the internal representation:
> fk_foo_id\000bar\000foo\000UNSPECIFIED\000fooref\000id\000
> (see below for an example)

In September, I proposed a patch to change this to the foreign key name.
This was rejected because <= 7.2 servers don't enforce unique constraint
names per table, so it was decided to keep the above behavior to
guaranteee a unique name. I think this should be changed. See the
original discussion at...

http://archives.postgresql.org/pgsql-patches/2002-09/msg00150.php

>
> o It takes _ages_ to retrieve the meta data. While doing a 'describe',
> the postmaster process runs on 100% CPU. And: it takes extremly
> different amounts of time. Executing the describe-command below, it
> took (56.285 sec, 12.799 sec, 5 min 13.468, 12.203 sec) to execute
> the same command. This look very like a missing or
> random break-condition somewhere in a loop ?

The query to generate the ResultSet is a monster and has enough tables
involved to enable the genetic query optimizer which is neither consistent
nor particularly good. I was able to solve this using an ANALYZE, but the
long term solution is to state the desired join order explicitly in the
query using JOIN statements. I will submit a patch to this effect later
this week.

> o this might be a minor point, but annoying as well: the columns are
> not ordered in the sequence the're created in the table.

I have already submitted a patch to fix this because of a previous
complaint.

http://fts.postgresql.org/db/mw/msg.html?mid=1359758

> If this cannot be reproduced, I'll try to track this down, but probably
> this seems simple to you (BTW: doing this with the current 7.4development
> CVS on my machine, this results in a segmentation fault on the postmaster
> side - this indicates, that there indeed is a problem ..)

Will investigate as well.

> ===============8<==============
> pg> create table foo (id int4 constraint pk_foo primary key);
> pg> create table bar ( id int4 constraint pk_bar primary key,
> fooref int4 constraint fk_foo_id references foo(id)
> );
> pg> describe bar
> catalog: postgres
> '->' : referencing
> --------+---------+------+---------+--------+------------------------------------------------------------+
> column | type | null | default | pk | fk |
> --------+---------+------+---------+--------+------------------------------------------------------------+
> fooref | int4(4) | YES | [NULL] | | fk_foo_id\000bar\000foo\000UNSPECIFIED\000fooref\000id\000 |
> | | | | | -> foo(id) |
> id | int4(4) | NO | [NULL] | pk_bar | |
> --------+---------+------+---------+--------+------------------------------------------------------------+
> 56.285 sec
> ===============================
>
>
> ciao,
> -hen
>
> BTW:
> henplus JDBC-Shell can be found
> <http://henplus.sourceforge.net/>
>
>
> ---------------------------(end of broadcast)---------------------------
> TIP 3: if posting/reading through Usenet, please send an appropriate
> subscribe-nomail command to majordomo(at)postgresql(dot)org so that your
> message can get through to the mailing list cleanly
>

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Rod Taylor 2002-12-02 20:31:03 ALTER .. ADD PRIMARY KEY
Previous Message Christopher Kings-Lynne 2002-12-02 20:25:34 Re: 7.4 Wishlist