Re: Finding exact column type via java.sql.ResultSetMetaData

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Thor Michael Støre <thormichael(at)gmail(dot)com>
Cc: "pgsql-jdbc(at)postgresql(dot)org" <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: Finding exact column type via java.sql.ResultSetMetaData
Date: 2013-02-14 17:00:15
Message-ID: CADK3HHLr4v2SCQ-xUv0bEXsPKsvmn-r+NZjTy6Sc1EmoRcMzow@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Yes, you are correct. The backend does not provide that information

Dave Cramer

dave.cramer(at)credativ(dot)ca
http://www.credativ.ca

On Thu, Feb 14, 2013 at 11:43 AM, Thor Michael Støre
<thormichael(at)gmail(dot)com>wrote:

> 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 originating from a table, you
> cannot look up the exact type for that field via the result set meta data
> if multiple types of the same name are defined in different schemas? AFAICT
> ResultSetMetaData only gives the name the type is defined with in the
> database, via getColumnTypeName, but not the schema of that type. Should
> the result for getColumnTypeName have been prefixed with schema-plus-dot,
> or is that not possible or not according to the spec? Unless I'm missing
> something the code I'm writing will basically have to throw an exception
> and apologize that different types with the 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
>
>
>
>
>
>
> --
> Sent via pgsql-jdbc mailing list (pgsql-jdbc(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-jdbc
>
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Kris Jurka 2013-02-14 17:11:31 Re: Finding exact column type via java.sql.ResultSetMetaData
Previous Message Thor Michael Støre 2013-02-14 16:43:53 Finding exact column type via java.sql.ResultSetMetaData