Enhancements to how queries with bind values are stored internally and sent to
Barry Lind <barry@xythos.com>
Enhancements to how queries with bind values are stored internally and sent to the server. Previously we allocated a new String object for the entire final query we were sending to the database. If you had a big query, or especially if you had large bind values you ended up with essentially two copies in memory. This change will reuse the existing objects and therefore should take 1/2 the memory it does today for a given query. This restructuring will also allow in the future the ability to stream bytea data to the server instead of the current approach of pulling it all into memory. I also fixed a test that was failing on a 7.2 database. Also renamed some internal variables and some minor cleanup. Modified Files: jdbc/org/postgresql/core/QueryExecutor.java jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java jdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java
Files
| Path | Change | +/− |
|---|---|---|
| src/interfaces/jdbc/org/postgresql/core/QueryExecutor.java | modified | +15 −7 |
| src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Connection.java | modified | +21 −2 |
| src/interfaces/jdbc/org/postgresql/jdbc1/AbstractJdbc1Statement.java | modified | +101 −112 |
| src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2ResultSet.java | modified | +4 −9 |
| src/interfaces/jdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java | modified | +12 −11 |
| src/interfaces/jdbc/org/postgresql/test/jdbc2/DatabaseMetaDataTest.java | modified | +9 −6 |