[postgis-devel] JDBC & WKB - 400% overhead

dblasby at openplans.org dblasby at openplans.org
Tue Feb 22 10:39:04 PST 2005


I was checking to see if the WKB (postgis 1.0) was actually transiting
"in binary" from the server (postgresql 8) to a JDBC (also postgresql
8) client.

..
ResultSet rs2 = st.executeQuery("select 5::float8,asBinary('POINT(0
0)')");
rs2.next();
byte[] bs = rs2.getBytes(2);
assertTrue(bs.length == 21);

The WKB representation of a 'POINT(0 0)' is 21 bytes long (1 byte for
xdr/ndr flag, 4 bytes for type, and 2 8-byte doubles = 21 bytes).

If you step through the executeQuery() command in the postgresql driver,
you'll eventually end up in PGStream#ReceiveTupleV3().  This is where
the actual data is received from the database.

It clearly receives 84 bytes of data from the server.  This is the bytea
text representation:
\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000

The ResultSet#getBytes() function converts this to a byte[].

dave




----------------------------------------------------------
This mail sent through IMP: https://webmail.limegroup.com/



More information about the postgis-devel mailing list