Re: Where does meta-data come from?

From: Tom Arthurs <tarthurs(at)jobflash(dot)com>
To: Kris Jurka <books(at)ejurka(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Where does meta-data come from?
Date: 2006-03-29 22:42:04
Message-ID: 442B0D3C.30008@jobflash.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Thanks, Kris

I'm trying to get that information from the developer (he's in Toronto,
and I'm in San Francisco) but he's using some package to accomplish to
extract the data, so does not have the queries to hand. It may take a
while to get that information -- what I was hoping for was some
information on which system catalogs jdbc queries -- if you could even
point me to the part of the source that emits these queries we could
take it from there, I think. In the meantime I'll go download the
source for the driver and see if I can winkle out the queries on my own.

I'm on the systems/dba team so I'm sort of relaying information back and
forth. :)

Kris Jurka wrote:
>
>
> On Wed, 29 Mar 2006, Tom Arthurs wrote:
>
>> We are running into a strange problem -- one of our developers is
>> extracting meta-data from our data base, and is seeing a difference
>> in the data that is being returned. Columns typed as int or int4 are
>> returning smallint from the meta-data information through jdbc, but
>> if we go in and look at the tables through \d in the command line
>> client, it is correctly typed as int. This started happening after
>> we upgraded to 8.1.3 and after issuing alter table commands to create
>> primary keys. (one data base was fine after the upgrade -- yesterday,
>> but today, after creation of primary keys, is now giving us the wrong
>> int type).
>>
>> I'd like to know where jdbc is getting this information, so I can try
>> to track down the cause.
>>
>
> The JDBC driver issues queries against the system catalogs. The best
> thing you can do is send us a reproducible example of returning the
> wrong type information. My attempt (attached) works fine here.
>
> Kris Jurka
> ------------------------------------------------------------------------
>
> import java.sql.*;
>
> public class IntType {
>
> public static void main(String args[]) throws Exception {
> Class.forName("org.postgresql.Driver");
> Connection conn = DriverManager.getConnection("jdbc:postgresql://localhost:5434/jurka","jurka","");
>
> Statement stmt = conn.createStatement();
> stmt.execute("CREATE TEMP TABLE inttest (a int4)");
>
> ResultSet rs = conn.getMetaData().getColumns(null, "", "inttest", "");
> while (rs.next()) {
> System.out.println(rs.getString("COLUMN_NAME") + " - " + rs.getString("TYPE_NAME"));
> }
>
> stmt.execute("ALTER TABLE inttest ADD CONSTRAINT it_pk PRIMARY KEY (a)");
> rs = conn.getMetaData().getColumns(null, "", "inttest", "");
> while (rs.next()) {
> System.out.println(rs.getString("COLUMN_NAME") + " - " + rs.getString("TYPE_NAME"));
> }
> }
>
> }
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Kris Jurka 2006-03-29 22:46:28 Re: Where does meta-data come from?
Previous Message Kris Jurka 2006-03-29 22:29:29 Re: Where does meta-data come from?