Unable to convert null timestamp to date. Bug?

Started by Edmar Wiggersover 25 years ago2 messagesbugs
Jump to latest
#1Edmar Wiggers
edmar@brasmap.com

Strange, this works:
select * from users where last_visit > now() + 7;
-- last_visit is nullable, of type timestamp

But this doesn't
select * from users where last_visit + 7 > now();
ERROR: Unable to convert null timestamp to date
-- yes, there are users where last_visit IS NULL

BTW, this works too:
select null+1; -- obviously returns NULL

System is FreeBSD 4.1, PgSQL 7.0.2

Anyone got a clue?

Yours sincerely,

Edmar Wiggers
BRASMAP Information Systems
+55 48 9960 2752

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Edmar Wiggers (#1)
Re: [SQL] Unable to convert null timestamp to date. Bug?

"Edmar Wiggers" <edmar@brasmap.com> writes:

select * from users where last_visit + 7 > now();
ERROR: Unable to convert null timestamp to date

Yeah, someone who hadn't quite grokked the concept of NULL seems to have
written a lot of the date.c code :-(.

This is fixed for 7.1. If it's really bothering you in 7.0.*, see
src/backend/utils/adt/date.c, and change code like

if (!PointerIsValid(timestamp))
elog(ERROR, "Unable to convert null timestamp to date");

to

if (!PointerIsValid(timestamp))
return NULL;

in several places.

regards, tom lane