Обсуждение: txid strtoull fix

Поиск
Список
Период
Сортировка

txid strtoull fix

От
"Marko Kreen"
Дата:
I noticed strtoull() causes problems on some buildfarm
machines.  As a fix I propose small str2num function inside
txid.c itself.  Main reason is that the txid actually does
not need fully-featured strtoull (radixes, whitespace skipping).

We could include strtoull() under port/ in the future, I think
that would be good, but just for txid it is not necessary.

--
marko

Вложения

Re: txid strtoull fix

От
Tom Lane
Дата:
"Marko Kreen" <markokr@gmail.com> writes:
> I noticed strtoull() causes problems on some buildfarm
> machines.  As a fix I propose small str2num function inside
> txid.c itself.  Main reason is that the txid actually does
> not need fully-featured strtoull (radixes, whitespace skipping).

Seems like a sane solution to me --- applied.

(Note that your overflow test didn't actually work; AFAIK there
really isn't any decent solution other than dividing at each step.)

            regards, tom lane

Re: txid strtoull fix

От
"Marko Kreen"
Дата:
On 10/8/07, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> "Marko Kreen" <markokr@gmail.com> writes:
> > I noticed strtoull() causes problems on some buildfarm
> > machines.  As a fix I propose small str2num function inside
> > txid.c itself.  Main reason is that the txid actually does
> > not need fully-featured strtoull (radixes, whitespace skipping).
>
> Seems like a sane solution to me --- applied.
>
> (Note that your overflow test didn't actually work; AFAIK there
> really isn't any decent solution other than dividing at each step.)

Hmm.  It did seem to work here.  Just in case I peeked into
FreeBSD strtoull() and this patch imitates their method.

This also seems to work, but please review, I'm don't feel
very sharp anymore...

--
marko

Вложения

Re: txid strtoull fix

От
Tom Lane
Дата:
"Marko Kreen" <markokr@gmail.com> writes:
> On 10/8/07, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>> (Note that your overflow test didn't actually work; AFAIK there
>> really isn't any decent solution other than dividing at each step.)

> Hmm.  It did seem to work here.  Just in case I peeked into
> FreeBSD strtoull() and this patch imitates their method.

Well, it worked for the one specific case you tested, but there are
other cases it would fail to detect overflow for.  (When you're
multiplying by ten, the overflow might not be small.)  The FreeBSD
way looks OK though --- applied.

            regards, tom lane