Thread: 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