vBulletin Search Engine Optimization
| |||||||
| Register | FAQ | Members List | Calendar | Search | Today's Posts | Mark Forums Read |
| ||||
| >>(Kris, any reason why PGResultSetMetadata does not extend >>ResultSetMetadata?) By ResultSetMetadata I assume you mean java.sql.ResultSetMetadata. The problem with having PGResultSetMetadata extend that interface is which one would you end up extending? The JDBC1, JDBC2, JDBC3 or JDBC4 version? --Barry -----Original Message----- From: pgsql-jdbc-owner@postgresql.org [mailto Sent: Sunday, January 23, 2005 12:34 PM To: leo Cc: pgsql-jdbc@postgresql.org Subject: Re: [JDBC] PGResultSetMetaData 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...8/msg00008.php for the discussion that lead to this behaviour. (Kris, any reason why PGResultSetMetadata does not extend ResultSetMetadata?) -O ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org ---------------------------(end of broadcast)--------------------------- TIP 6: Have you searched our list archives? http://archives.postgresql.org |
| ||||
| Barry Lind wrote: > >>>(Kris, any reason why PGResultSetMetadata does not extend >>>ResultSetMetadata?) > > > By ResultSetMetadata I assume you mean java.sql.ResultSetMetadata. The > problem with having PGResultSetMetadata extend that interface is which > one would you end up extending? The JDBC1, JDBC2, JDBC3 or JDBC4 > version? Whichever one you're building against.. they're all called java.sql.ResultSetMetadata. The reason I ask is that the current scheme is a little awkward to use if you want to use both the standard and extra interface methods. Either you need two variables providing different interface views on the same object, or you do a lot of casting. -O ---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ? http://www.postgresql.org/docs/faq |