Thread: Converting a timestamp to a date when it contains nulls.

Converting a timestamp to a date when it contains nulls.

From
"Michael Richards"
Date:
Hi.
I'm not sure if the following behaviour is expected or not.

Version info:
psql (PostgreSQL) 7.0.1
4.0-STABLE FreeBSD 4.0-STABLE #0: Tue Apr 25 18:34:52 EDT 2000

I have a table:
create table test (td timestamp);
I add a row:
insert into test values ('now');
I select from it casting td to a date:
select td::date from test;
  ?column?
------------
 2000-07-23
(1 row)

Everything is peachy.

Now I insert a NULL:
insert into test values (NULL);
Everything is no longer peachy.
select td::date from test;
ERROR:  Unable to convert null timestamp to date

Shouldn't all casts be able to handle the case where it is NULL?

-Michael

Re: Converting a timestamp to a date when it contains nulls.

From
Tom Lane
Date:
"Michael Richards" <michael@fastmail.ca> writes:
> Shouldn't all casts be able to handle the case where it is NULL?

Yup, it's a bug.  It's fixed in current sources.

            regards, tom lane

Re: Converting a timestamp to a date when it contains nulls.

From
"Michael Richards"
Date:
> "Michael Richards" <michael@fastmail.ca> writes:
>> Shouldn't all casts be able to handle the case where it is NULL?
>
> Yup, it's a bug.  It's fixed in current sources.

Is there a patch available that I can apply to the 7.0.2 source to
fix the problem? Or is there going to be a 7.0.3 that I should wait
for?

-Michael

Re: Converting a timestamp to a date when it contains nulls.

From
Tom Lane
Date:
"Michael Richards" <michael@fastmail.ca> writes:
>>> Shouldn't all casts be able to handle the case where it is NULL?
>>
>> Yup, it's a bug.  It's fixed in current sources.

> Is there a patch available that I can apply to the 7.0.2 source to
> fix the problem? Or is there going to be a 7.0.3 that I should wait
> for?

Just look for the place where the error is being spit out (somewhere in
backend/utils/adt/) and change the "elog(ERROR, ...)" call into
"return NULL".  Should work, but I haven't tried it in 7.0.

            regards, tom lane