Re: Question about how to handle numeric (decimal) data types while using libpq

2021-07-06 Thread Peter Eisentraut

On 06.07.21 13:04, Sudheer H R wrote:

I am trying to use libpq for interfacing with PostgreSQL from a C/C++ based 
application.

I have tried to use binary format of data for both sending and receiving data 
to and from server (resultFormat = 1).

As I understand most binary types, int, float etc… are encoded in bing-endian 
byte order and they can be converted to appropriate host specific memory 
representations.

However NUMERIC datatype is a more complex structure with multiple ints and 
pointers.

I would like to know if there are published library functions that convert (to 
and from) NUMERIC field to say, long double datatype


There is a third-party library called libpqtypes out there that adds 
support for handling specific types on the libpq side.  But I'm not sure 
how up to date it is.





Re: Question about how to handle numeric (decimal) data types while using libpq

2021-07-06 Thread Sudheer H R
It is not possible to use binary for some fields and text for some fields.

If text format has to be used, it will be applicable for all fields.

And this method involved converting to string format (sprint) on the server 
side and binary format from string (equivalent of sscanf), which is costly.



> On 06-Jul-2021, at 5:18 PM, Dmitry Igrishin  wrote:
> 
> 
> 
> On Tue, Jul 6, 2021, 14:04 Sudheer H R  > wrote:
> Hello,
> 
> I am trying to use libpq for interfacing with PostgreSQL from a C/C++ based 
> application.
> 
> I have tried to use binary format of data for both sending and receiving data 
> to and from server (resultFormat = 1).
> 
> As I understand most binary types, int, float etc… are encoded in bing-endian 
> byte order and they can be converted to appropriate host specific memory 
> representations.
> 
> However NUMERIC datatype is a more complex structure with multiple ints and 
> pointers.
> 
> I would like to know if there are published library functions that convert 
> (to and from) NUMERIC field to say, long double datatype
> 
> 
> Any pointers in this regard is appreciated.
> Why not just use text format for NUMERIC?



Re: Question about how to handle numeric (decimal) data types while using libpq

2021-07-06 Thread Dmitry Igrishin
On Tue, Jul 6, 2021, 14:04 Sudheer H R  wrote:

> Hello,
>
> I am trying to use libpq for interfacing with PostgreSQL from a C/C++
> based application.
>
> I have tried to use binary format of data for both sending and receiving
> data to and from server (resultFormat = 1).
>
> As I understand most binary types, int, float etc… are encoded in
> bing-endian byte order and they can be converted to appropriate host
> specific memory representations.
>
> However NUMERIC datatype is a more complex structure with multiple ints
> and pointers.
>
> I would like to know if there are published library functions that convert
> (to and from) NUMERIC field to say, long double datatype
>
>
> Any pointers in this regard is appreciated.
>
Why not just use text format for NUMERIC?

>