Thread: casting tsrange to tstzrange doesn't seem to work?

casting tsrange to tstzrange doesn't seem to work?

From
Joe Van Dyk
Date:
# select tsrange(null)::tstzrange;
ERROR:  cannot cast type tsrange to tstzrange
LINE 1: select tsrange(null)::tstzrange;

Is this expected?

select null::timestamp::timestamptz; 
works fine.

Re: casting tsrange to tstzrange doesn't seem to work?

From
Jeff Davis
Date:
On Tue, 2013-06-11 at 14:05 -0700, Joe Van Dyk wrote:
> # select tsrange(null)::tstzrange;
> ERROR:  cannot cast type tsrange to tstzrange
> LINE 1: select tsrange(null)::tstzrange;
>
I agree that there should be a cast between tsrange and tstzrange.

Unfortunately, this cant work generally for all range types, because the
total order might be different. For instance, we can't cast between a
textrange and int4range, because:

   ['09','1']

is a valid text range, but:

   [9,1]

is not.

Regards,
    Jeff Davis





Re: casting tsrange to tstzrange doesn't seem to work?

From
Joe Van Dyk
Date:


On Friday, July 5, 2013, Jeff Davis wrote:
On Tue, 2013-06-11 at 14:05 -0700, Joe Van Dyk wrote:
> # select tsrange(null)::tstzrange;
> ERROR:  cannot cast type tsrange to tstzrange
> LINE 1: select tsrange(null)::tstzrange;
>
I agree that there should be a cast between tsrange and tstzrange.

Unfortunately, this cant work generally for all range types, because the
total order might be different. For instance, we can't cast between a
textrange and int4range, because:

   ['09','1']

is a valid text range, but:

   [9,1]

is not.

Regards,
        Jeff Davis

Worth it to file a bug for this?