Re: PGResultSetMetaData

Поиск
Список
Период
Сортировка
От Oliver Jowett
Тема Re: PGResultSetMetaData
Дата
Msg-id 41F40A36.2030202@opencloud.com
обсуждение исходный текст
Ответ на Re: PGResultSetMetaData  (leo <usenet@workfile.de>)
Ответы Re: PGResultSetMetaData
Список pgsql-jdbc
leo wrote:
> Chris Smith:
>
>>   ResultSet rs = stmt.executeQuery(...);
>>   ResultSetMetaData rmd = rs.getMetaData();
>>
>>   String table = rmd.getTableName(1);
>>   String schema = rmd.getSchemaName(1);
>
> Does this really work?
>
> Using Postgres 8 i am getting empty strings from both methods.

getTableName() always returns an empty string, as the server does not
tell us about table aliases. The same applies to getSchemaName().
getColumnName() will return the column alias.

If you want the name of the underlying table and column, cast to
PGResultSetMetadata and use getBaseTableName() / getBaseSchemaName() /
getBaseColumnName(). These will return the table/schema/column name of
the underlying relation, where available.

For example, given this query:

   SELECT p.proname AS pname FROM pg_catalog.pg_proc p

getTableName(1) returns ""
getSchemaName(1) returns ""
getColumnName(1) returns "pname"
getBaseTableName(1) returns "pg_proc"
getBaseSchemaName(1) returns "pg_catalog"
getBaseColumnName(1) returns "proname"

See http://archives.postgresql.org/pgsql-jdbc/2004-08/msg00008.php for
the discussion that lead to this behaviour.

(Kris, any reason why PGResultSetMetadata does not extend
ResultSetMetadata?)

-O

В списке pgsql-jdbc по дате отправления:

Предыдущее
От: Dave Cramer
Дата:
Сообщение: Re: PGResultSetMetaData
Следующее
От: leo
Дата:
Сообщение: Re: PGResultSetMetaData