Re: Binary tx format for an array?
От | Michael Guyver |
---|---|
Тема | Re: Binary tx format for an array? |
Дата | |
Msg-id | 30b57570606230122s4827d2ectd470e3c4ff6ad228@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Binary tx format for an array? (Mark Lewis <mark.lewis@mir3.com>) |
Ответы |
Re: Binary tx format for an array?
|
Список | pgsql-jdbc |
On 22/06/06, Tom Lane <tgl@sss.pgh.pa.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.lewis@mir3.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
В списке pgsql-jdbc по дате отправления: