Re: bug report: slow getColumnTypeName

From: dmp <danap(at)ttc-cmc(dot)net>
To: Eyal Wilde <eyal(dot)wilde(at)gmail(dot)com>, PostgreSQL JDBC <pgsql-jdbc(at)postgresql(dot)org>
Subject: Re: bug report: slow getColumnTypeName
Date: 2012-10-09 16:48:01
Message-ID: 50745541.8060204@ttc-cmc.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Eyal Wilde wrote:
> I verified with wireshark that getColumnTypeName indeed do a request to
> the postgres server. This happens with 9.1-901 and 9.1-903 BUT NOT WITH
> 9.0-801!!
>
> So, the reason for the slowness seems to be obviouse now.
>
> it will take me some time to wrap up it into a test case. I would realy
> like to help, but please let me know if it's realy necessary.
>
> On Oct 5, 2012 1:07 AM, "Eyal Wilde" <eyal(at)impactsoft(dot)co(dot)il
> <mailto:eyal(at)impactsoft(dot)co(dot)il>> wrote:
>
>
> ResultSetMetaData __md = __rs.getMetaData();
> //this is fine
> String __sf1name = __md.getColumnName(1);
> //this is fine
> int __if1type = __md.getColumnType(1);
> //this is fine
> String __sf1type =
> __md.getColumnTypeName(1); //this is SLOW!! ~15msec
>
> postgres server version is 9.1.5
> jdbc version, i checked both 9.1-901 and 9.1-903
> and... BTW, 9.0-801 works good (while connected pg9.1)!

There does appear to be a change in the code that may have created the
slowness that you are observing. Please try a a test case in which two
back to back getColumnTypeName() calls are made. Is there a difference
in time between the first and second and is there still on the second
call a request to the postgres server.

The code between 9.0-801 and later version does have a change in it
that looks like for the caching for field metadata through fetchFieldMetaData().
That method is called in the later versions for getColumnTypeName()
with isAutoIncrement(), with was also added in later versions.

danap.

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message David Johnston 2012-10-09 17:48:26 Re: Bug in AbstracJdbc2Statement.replaceProcessing when using dollar quoting?
Previous Message BENHAMOU Mathieu 2012-10-09 16:12:56 Re: drop in performance using jdbc driver version 9