Skip site navigation (1) Skip section navigation (2)

Re: Binary tx format for an array?

From: Mark Lewis <mark(dot)lewis(at)mir3(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-21 20:32:21
Message-ID: 1150921942.19111.155.camel@archimedes (view raw or flat)
Thread:
Lists: pgsql-jdbc
The definition of Oid is in postgres_ext.h:

typedef unsigned int Oid;

All the architectures that I'm familiar with (x86, x86_64, Sparc-64) use
32-bit unsigned int data types.  Also, the JDBC driver code always uses
32-bit integers for Oid types, so I think you're pretty safe using a 32-
bit integer.

There might be some weirdness at the 2GB boundary because Java doesn't
support natively unsigned integers, but if there is then it would
probably occur across the whole driver and not just in the code you want
to write.

-- Mark

On Wed, 2006-06-21 at 18:26 +0100, Michael Guyver wrote:
> Hi there,
> 
> My question relates to trying to implement the binary transmission
> protocol for an Array type. I understand that the only place the
> format is documented is in the Postgres C source code.
> 
> I've had a look through it and it seems comprehensible enough (to a
> non-C programmer), but I was wondering how the following expression
> would evaluate:
> 
> // arrayfuncs.c, in array_recv
> element_type = pq_getmsgint(buf, sizeof(Oid));
> 
> or more specifically, the
> 
> int size = sizeof(Oid);
> 
> expression. Knowing this value would mean knowing how many bytes
> describing the Oid to transmit.
> 
> Cheers
> 
> Michael
> 
> ---------------------------(end of broadcast)---------------------------
> TIP 6: explain analyze is your friend

In response to

pgsql-jdbc by date

Next:From: Tom LaneDate: 2006-06-21 22:41:07
Subject: Re: Binary tx format for an array?
Previous:From: Dave CramerDate: 2006-06-21 19:55:41
Subject: Re: Binary tx format for an array?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group