Обсуждение: CVS compile failure
I am seeing a compile failure in current CVS from strptime(): ./backend/access/transam/xlog.c: if (strptime(tok2, "%Y-%m-%d %H:%M:%S", &tm) == NULL) BSD/OS does not have that function. -- Bruce Momjian | http://candle.pha.pa.us pgman@candle.pha.pa.us | (610) 359-1001+ If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania19073
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> I am seeing a compile failure in current CVS from strptime():
> ./backend/access/transam/xlog.c: if (strptime(tok2, "%Y-%m-%d %H:%M:%S", &tm) == NULL)
> BSD/OS does not have that function.
Hmph. I was wondering if that was really portable or not :-(.
Any ideas about a quick-and-dirty replacement?
Maybe we could call abstimein or something like that. We just want to
convert a human-readable string value to a time_t, and I can't say that
I thought the strptime behavior was all that friendly anyway...
regards, tom lane
On Mon, 19 Jul 2004, Tom Lane wrote: > Bruce Momjian <pgman@candle.pha.pa.us> writes: >> I am seeing a compile failure in current CVS from strptime(): >> ./backend/access/transam/xlog.c: if (strptime(tok2, "%Y-%m-%d %H:%M:%S", &tm) == NULL) >> BSD/OS does not have that function. > > Hmph. I was wondering if that was really portable or not :-(. > Any ideas about a quick-and-dirty replacement? > > Maybe we could call abstimein or something like that. We just want to > convert a human-readable string value to a time_t, and I can't say that > I thought the strptime behavior was all that friendly anyway... Under FreeBSD: " The strptime() function does not correctly handle multibyte characters in the format argument" Not sure how critical that is for what you are doing, mind you ... ---- Marc G. Fournier Hub.Org Networking Services (http://www.hub.org) Email: scrappy@hub.org Yahoo!: yscrappy ICQ: 7615664
"Marc G. Fournier" <scrappy@postgresql.org> writes:
> Bruce Momjian <pgman@candle.pha.pa.us> writes:
>> I am seeing a compile failure in current CVS from strptime():
>> ./backend/access/transam/xlog.c: if (strptime(tok2, "%Y-%m-%d %H:%M:%S", &tm) == NULL)
>> BSD/OS does not have that function.
> Under FreeBSD:
> " The strptime() function does not correctly handle multibyte characters in
> the format argument"
> Not sure how critical that is for what you are doing, mind you ...
Not at all, since in this call the format is the fixed constant
"%Y-%m-%d %H:%M:%S". But it's odd that your BSD variant has strptime()
where Bruce's does not.
I suppose it doesn't much matter though: we have to recode without
strptime. No big deal. I'll fix it tomorrow if no one beats me to it.
regards, tom lane
On Mon, 19 Jul 2004, Tom Lane wrote: > "Marc G. Fournier" <scrappy@postgresql.org> writes: >> Bruce Momjian <pgman@candle.pha.pa.us> writes: >>> I am seeing a compile failure in current CVS from strptime(): >>> ./backend/access/transam/xlog.c: if (strptime(tok2, "%Y-%m-%d %H:%M:%S", &tm) == NULL) >>> BSD/OS does not have that function. > >> Under FreeBSD: >> " The strptime() function does not correctly handle multibyte characters in >> the format argument" >> Not sure how critical that is for what you are doing, mind you ... > > Not at all, since in this call the format is the fixed constant > "%Y-%m-%d %H:%M:%S". But it's odd that your BSD variant has strptime() > where Bruce's does not. Bruce, how old is your system? :) If I'm reading the man page right, it was introduced on FreeBSD in Jan of '03 ... ---- Marc G. Fournier Hub.Org Networking Services (http://www.hub.org) Email: scrappy@hub.org Yahoo!: yscrappy ICQ: 7615664
Bruce Momjian <pgman@candle.pha.pa.us> writes:
> I am seeing a compile failure in current CVS from strptime():
Should be fixed now. I wasn't very happy with strptime() there in
the first place, since it is inflexible about input format and
doesn't support a timezone specification. Using our own datetime
code works out much better.
regards, tom lane