Re: Binary tx format for an array?

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Michael Guyver <kenevel(at)googlemail(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: Binary tx format for an array?
Date: 2006-06-23 11:44:15
Message-ID: 5D40D46E-2EFE-4EC1-98B2-642C7C5E3229@fastcrypt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

Michael

I'm curious. Are you attempting to implement the binary protocol for
the jdbc driver ?

If so, how are you dealing with date types which are either 64 bit or
floating point.

Have you done any testing to see if it is actually faster ?

There's certainly no question with timestamp/date parsing, others may
be questionable .

Dave
On 23-Jun-06, at 4:22 AM, Michael Guyver wrote:

> On 22/06/06, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
>> No, in the buffer they'll be in network (big-endian) byte order,
>>
>> [0x00][0x00][0x00][0x17]
>
> On 22/06/06, Mark Lewis <mark(dot)lewis(at)mir3(dot)com> wrote:
>> Java tried so hard to hide endianness from you that it didn't provide
>> any real support for those times when you DO need to be aware of
>> it. So
>> the "convention" looks kind of like this (snipped from the PG JDBC
>> driver):
>>
>> public void SendInteger4(int val) throws IOException {
>> SendChar((val >> 24)&255);
>> SendChar((val >> 16)&255);
>> SendChar((val >> 8)&255);
>> SendChar(val&255);
>> }
>
> Of course that's right: I got myself confused.
>
> Thanks very much for your help, no doubt I'll be back for some more
> (please sir) in the future.
>
> I'm optimistic I'm on the right track but wanted to conceive a way of
> unit testing the different Java classes that represent PG types, and
> their binary Tx and Rx methods.
>
> One way I thought of doing this is simply to send the values over JDBC
> (specifying binary parameters) and check the contents of a test table
> once all the inserts are done, but such unit tests get very messy very
> quickly, and you wind up storing your expected results in a different
> file, which is firstly something you have to keep in sync with the
> source code and secondly tends to grow and become unmanageable very
> quickly.
>
> Another way would be to use the JNI mechanism to talk directly to the
> PG code, calling the xxxrecv() functions for the type you're testing,
> reading back the type's value using the xxxsend() method. Not being a
> C man, I'm not sure how easy this would be and would appreciate any
> suggestions.
>
> Regards,
>
> Michael
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 4: Have you searched our list archives?
>
> http://archives.postgresql.org
>

In response to

Responses

Browse pgsql-jdbc by date

  From Date Subject
Next Message Markus Schaber 2006-06-23 12:00:01 Re: Binary tx format for an array?
Previous Message Michael Guyver 2006-06-23 08:22:34 Re: Binary tx format for an array?