Re: inconsistent automatic casting between psql and function - Mailing list pgsql-sql

From Bruce Momjian
Subject Re: inconsistent automatic casting between psql and function
Date
Msg-id 200812101333.mBADXT924998@momjian.us
Whole thread Raw
In response to Re: inconsistent automatic casting between psql and function  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
Tom Lane wrote:
> Richard Huxton <dev@archonet.com> writes:
> > That's because a quoted literal isn't necessarily a timestamp. Without
> > context it could be anything, and in the context of comparing to a date
> > the planner probably tries to make it a date.
> 
> I think the real point here is this:
> 
> regression=# select '2008-12-09 02:00:00'::date;
>     date    
> ------------
>  2008-12-09
> (1 row)
> 
> ie, when it does decide that a literal should be a date, it will happily
> throw away any additional time-of-day fields that might be in there.
> Had it raised an error, Stefano might have figured out his mistake
> sooner.
> 
> ISTM we deliberately chose this behavior awhile back, but I wonder
> whether it does more harm than good.

Well, it seems fine to me because it works just like the cast of a float
to an integer:
test=> select 1.23432::integer; int4------    1(1 row)

--  Bruce Momjian  <bruce@momjian.us>        http://momjian.us EnterpriseDB
http://enterprisedb.com
 + If your life is a hard drive, Christ can be your backup. +


pgsql-sql by date:

Previous
From: Allan Kamau
Date:
Subject: Collapsing (select) row values into single text field.
Next
From: "Pascal Tufenkji"
Date:
Subject: Is there a bug in PostgreSQL ?