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