From: | Steven Schlansker <steven(at)likeness(dot)com> |
---|---|
To: | pgsql-jdbc(at)postgresql(dot)org |
Subject: | Patch to fix bug #6293 - regression in driver performance with regards to ResultSetMetaData-heavy workloads |
Date: | 2012-02-10 00:01:25 |
Message-ID: | 5CBAD10C-C4DB-4AE3-ADB4-8197E0AA4146@likeness.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-jdbc |
Hi,
There is a bug report and associated mailing list thread
[JDBC] [BUGS] BUG #6293: JDBC driver performance, dated Nov 15 2011
>>>
>>> The following bug has been logged online:
>>>
>>> Bug reference: 6293
>>> PostgreSQL version: 9.1
>>> Description: JDBC driver performance
>>> Details:
>>
>> The 9.1 JDBC driver was changed to try and fetch all metadata for the
>> entire resultset in one query instead of potentially issuing multiple
>> queries for each column. So this change was supposed to improve things.
>>
>> Looking at the code, the caching pattern has changed slightly, so now it's
>> important to hold onto the same ResultSetMetaData instance. That is you
>> need to do:
I have a proposed fix available as a pull request on GitHub. The commit itself is here:
https://github.com/NessComputing/pgjdbc/commit/15dee25198c0a7a4d3bdeca2193a003d552fac2f
and the pull request complete with an in-progress discussion is here:
https://github.com/pgjdbc/pgjdbc/pull/1
I requested guidance on the mailing list last week on the best way to approach this problem,
but there were no responses, so I have changed the ResultSet to cache the MetaData instances.
As best as I can tell the MetaData is immutable, so hopefully there will be no ill effects from
caching instances.
I saw some discussion about licensing re: GitHub on the mailing list the other day, so to be
perfectly clear I am releasing this code to the pgsql-jdbc project under whatever terms they
so choose, or the public domain if that is the appropriate choice.
I hope this will be an example of how moving to GitHub pull requests can be a positive change :-)
I believe this fixes the referenced bug, and I've asked the original submitter to test out my change
to see if it fixes it for him.
Regards,
Steven Schlansker
Ness Computing
From | Date | Subject | |
---|---|---|---|
Next Message | Dave Cramer | 2012-02-10 00:50:13 | Fwd: [pgjdbc] Change Jdbc4ResultSet to cache Jdbc4ResultSetMetaData instances (#1) |
Previous Message | Dave Cramer | 2012-02-09 11:34:05 | Re: bug on to do list reproducable at version 9.0-801 |