Unable to convert null timestamp to date. Bug?
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
"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