Binary binding patch v1 - Mailing list pgsql-jdbc

From Mikko Tiihonen
Subject Binary binding patch v1
Date
Msg-id 1166384857.6923.30.camel@dual.local
Whole thread Raw
List pgsql-jdbc
Hi,

It seems I found nothing better to do... So here is the first patch that
allows using of binary transfers for bind data. The patch must be
applied on top of the binaryResultSet-v6.patch.

The old code supported binary transfers only for BYTEA type. Now also
INT2, INT4, INT8, FLOAT4 and FLOAT8 are supported. The patch is actually
quite simple, but testing for performance improvements is harder than
for selects because the backend settings have larger effect on the
result.
My current results show around 5-10% speedup and 20-30% memory use
reduction, measured from the test code.

I started working on DATE/TIME/TIMEZONE binary sending too, but I'm
afraid it might not be possible. At least based on the long comments
describing problems with the current text format sending which requires
the use of UNSPECIFIED oid. I did actually get DATE to work by sending
it as Oid.DATE. But since the java.sql.Date actually contains also the
time part I'm not sure if it should be sent using Oid.TIMESTAMP.
Actually I think if binary sending of time/date is ever done it most
likely should always use TIMESTAMPTZ format and then let the backend
do the conversion to correct type. But as the comments in the jdbc
driver show the backend seems a bit buggy in this regard.

-Mikko

Attachment

pgsql-jdbc by date:

Previous
From: Dave Cramer
Date:
Subject: Re: Efficient Insert statement for one record into multiple
Next
From: "Jason Bennett"
Date:
Subject: Ant tag for dollar quoting