Re: Where does meta-data come from?

Поиск
Список
Период
Сортировка
От Tom Arthurs
Тема Re: Where does meta-data come from?
Дата
Msg-id 442B0D3C.30008@jobflash.com
обсуждение исходный текст
Ответ на Re: Where does meta-data come from?  (Kris Jurka <books@ejurka.com>)
Ответы Re: Where does meta-data come from?  (Kris Jurka <books@ejurka.com>)
Список 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")); }} }

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

Предыдущее
От: Kris Jurka
Дата:
Сообщение: Re: Where does meta-data come from?
Следующее
От: Kris Jurka
Дата:
Сообщение: Re: Where does meta-data come from?