Re: Receiving data in binary format how is it encoded?
От | Francisco Figueiredo Jr. |
---|---|
Тема | Re: Receiving data in binary format how is it encoded? |
Дата | |
Msg-id | 3F08469D.7090507@yahoo.com.br обсуждение исходный текст |
Ответ на | Re: Receiving data in binary format how is it encoded? (Carlos Guzman Alvarez <carlosga@telefonica.net>) |
Ответы |
Re: Receiving data in binary format how is it encoded?
|
Список | 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
В списке pgsql-hackers по дате отправления: