Re: Unsigned 64 bit integer to numeric

Поиск
Список
Период
Сортировка
От Andrew Gierth
Тема Re: Unsigned 64 bit integer to numeric
Дата
Msg-id 87k17cb9ho.fsf@news-spur.riddles.org.uk
обсуждение исходный текст
Ответ на Unsigned 64 bit integer to numeric  (Dmitry Dolgov <9erthalion6@gmail.com>)
Ответы Re: Unsigned 64 bit integer to numeric  (Dmitry Dolgov <9erthalion6@gmail.com>)
Список pgsql-hackers
>>>>> "Dmitry" == Dmitry Dolgov <9erthalion6@gmail.com> writes:

 Dmitry> Hi,

 Dmitry> Probably a simple question, but I don't see a simple answer so
 Dmitry> far. In one extension I want to convert uint64 into a numeric
 Dmitry> to put it eventually into a jsonb object. As far as I see in
 Dmitry> numeric.c there are functions only for signed int64. Is there a
 Dmitry> way to achive this with uint64 (without duplicating significant
 Dmitry> part of numeric implementation in the extension)?

Sure. Flip the top bit; convert the value as if signed; then subtract
-(2^63) from the result. (Easier to subtract -(2^63) than to add 2^63,
since the former can itself be represented in a signed int64 for easy
conversion to numeric.)

-- 
Andrew (irc:RhodiumToad)



В списке pgsql-hackers по дате отправления:

Предыдущее
От: didier
Дата:
Сообщение: Re: Unsigned 64 bit integer to numeric
Следующее
От: Amit Kapila
Дата:
Сообщение: Re: [HACKERS] Block level parallel vacuum