| 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: | Whole Thread | Raw Message | 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 |