Thread: txid strtoull fix

txid strtoull fix

From
"Marko Kreen"
Date:
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

Attachment

Re: txid strtoull fix

From
Tom Lane
Date:
"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

From
"Marko Kreen"
Date:
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

Attachment

Re: txid strtoull fix

From
Tom Lane
Date:
"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