Finding exact column type via java.sql.ResultSetMetaData
От | Thor Michael Støre |
---|---|
Тема | Finding exact column type via java.sql.ResultSetMetaData |
Дата | |
Msg-id | 3A2E457A-47D7-44B8-9D2F-5865D24C32DC@gmail.com обсуждение исходный текст |
Ответы |
Re: Finding exact column type via java.sql.ResultSetMetaData
|
Список | pgsql-jdbc |
Hello, I'm scratching my head over ResultSetMetaData yet again, this time related to figuring out the correct type of a column. Am I right in understanding that given a SQL command whose resultset contains a field of a user defined type not originatingfrom a table, you cannot look up the exact type for that field via the result set meta data if multiple typesof the same name are defined in different schemas? AFAICT ResultSetMetaData only gives the name the type is definedwith in the database, via getColumnTypeName, but not the schema of that type. Should the result for getColumnTypeNamehave been prefixed with schema-plus-dot, or is that not possible or not according to the spec? Unless I'mmissing something the code I'm writing will basically have to throw an exception and apologize that different types withthe same name in different schemas is not supported when it runs into that. I'm testing with: CREATE SCHEMA test_schema; CREATE SCHEMA another_test_schema; CREATE TYPE test_schema.test_type AS ( intfield int, textfield varchar ); CREATE TYPE another_test_schema.test_type AS ( other_textfield varchar, other_intfield int ); And given the query: SELECT (1,'adsf')::test_schema.test_type, ('zxcv',2)::another_test_schema.test_type; Then java.sql.ResultSetMetaData gives the exact same information for each column, with getColumnTypeName giving "test_type"for both. Simple test-case with this and a bit of runnable Java included. Thanks, Thor Michael Støre
Вложения
В списке pgsql-jdbc по дате отправления: