From: | "Francisco Figueiredo Jr(dot)" <fxjrlists(at)yahoo(dot)com(dot)br> |
---|---|
To: | Carlos Guzman Alvarez <carlosga(at)telefonica(dot)net> |
Cc: | pgsql-hackers(at)postgresql(dot)org |
Subject: | Re: Receiving data in binary format how is it encoded? |
Date: | 2003-07-06 15:56:13 |
Message-ID: | 3F08469D.7090507@yahoo.com.br |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Carlos Guzman Alvarez wrote:
> Hello:
>
>> while implementing the protocol 3.0 I could get the data in text mode
>> setting the format to 0. (Thanks all for helping me out with flush
>> message)
>>
>>
>> Now, I want to test the binary format. While some primitive types are
>> easy to realize, for example a int4 field will be encoded in 4 bytes,
>> I don't know how other types, like date, time, timestamp, text will be
>> encoded in binary format.
>
>
> Huummmmm i'm going to comment how i make in my C# implementation (stream
> is a binary reader ) for example for int4, date and time.
>
Thanks.
> For int4:
>
> int val = stream.ReadInt32();
> int int4Value = IPAddress.HostToNetworkOrder(val);
>
Yeah, while waiting for the response, I added support for the int4
datatype. It is really encoded as a 4 bytes value.
>
> For date ( not sure if i'm making this correct way but values seems to
> be correct :) )
>
> DateTime base = new DateTime(2000, 1, 1)
> int val = stream.ReadInt32();
> int days = IPAddress.HostToNetworkOrder(val);
>
> DateTime date = base.AddDays(days);
>
>
Uhmmm, where did you take the 2000,1,1 as base from?
If the date is before 2000, days will have a negative value, so date is
calculated correctly backwards?
> For Time:
>
> The same as for date but reading a double and adding it to base as
> seconds instead of days.
>
>
>
> The only basic data type i'm not handling now is numeric that seems to
> be encoded in 10 bytes but i have no seen the postgre source code yet.
>
>
Thanks Carlos. do you know in what file are these values produced?
--
Regards,
Francisco Figueiredo Jr.
------
"My grandfather once told me that there are two
kinds of people: those
who work and those who take the credit. He told me
to try to be in the
first group; there was less competition there."
- Indira Gandhi
From | Date | Subject | |
---|---|---|---|
Next Message | Kurt Roeckx | 2003-07-06 16:30:04 | Re: PostgreSQL 7.4devel - LOG: PGSTAT: socket() failed: Invalid argument |
Previous Message | qhwt | 2003-07-06 15:55:06 | Re: PostgreSQL 7.4devel - LOG: PGSTAT: socket() failed: Invalid argument |