Re: Missing functionality in ResultSetMetaData ?

From: Thomas Dudziak <tomdzk(at)gmail(dot)com>
To: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Missing functionality in ResultSetMetaData ?
Date: 2005-08-09 23:16:06
Message-ID: 224f323405080916162cd2f75a@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

On 8/10/05, Kris Jurka <books(at)ejurka(dot)com> wrote:

> The issue actually started with column names. The pg server currently can
> return aliases for columns, but not for tables. The original complaint
> was that RSMD.getColumnName better match up with something if we call
> ResultSet.findColumn with it. After much discussion it was agreed that
> getColumnName means the name of the query's result column not the base
> table's column. Now, to be consistent getTableName must mean the query's
> table as well.

Ah, ok, I understand this.

> This isn't completely useless, consider a self join: "SELECT a.c,
> b.c FROM tab a, tab b". getBaseTableName cannot distinguish this, but if
> getTableName did return the alias it could. This isn't a real strong
> use case though...

> > "The method PreparedStatement.getMetaData retrieves a
> > ResultSetMetaData object containing a description of the columns that will be
> > returned by a prepared statement when is it executed. The ResultSetMetaData
> > object contains a record for each column being returned. Methods in the
> > ResultSetMetaData interface provide information about the number of columns
> > being returned and the characteristics of each column."
> >
> > Here they specifically speak about the column' characteristics (ie.
> > definition) not the query.
>
> That's not entirely clear. That's how you read it, but it is just as
> easily read as "the query result's columns". The spec is awfully vague in
> this area.

Yep, that's the problem. Interestingly, the Javadoc for RSMD.getCatalogName says

"Gets the designated column's table's catalog name"

where the Javadoc for getTableName says

"Gets the designated column's table name."

So, taken together this could be interpreted as meaning the structural
info (real table). But as you said, this is guess work.

Perhaps you could write a comment to the JDBC4 JSR group and ask for
clarification of the semantics of the RSMD in the new spec ?

regards,
Tom

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Oliver Jowett 2005-08-09 23:31:47 Re: Missing functionality in ResultSetMetaData ?
Previous Message Oliver Jowett 2005-08-09 23:12:45 Re: Missing functionality in ResultSetMetaData ?