From: Tom Lane <tgl@sss.pgh.pa.us>
To: Rod Taylor <pg@rbt.ca>
Cc: Markus Bertheau <twanger@bluetwanger.de>
Cc: PgSQL - SQL <pgsql-sql@postgresql.org>
Subject: Re: empty view, replace view, column type change?
Date: Thu, 23 Jun 2005 18:21:22 -0400
Message-ID: <8931.1119565282@sss.pgh.pa.us> (raw)
In-Reply-To: <1119558411.35441.104.camel@home>
References: <1119557009.7430.16.camel@localhost.localdomain>
<1119557984.35441.95.camel@home>
<1119558477.7430.22.camel@localhost.localdomain>
<1119558411.35441.104.camel@home>
Rod Taylor <pg@rbt.ca> writes:
> On Thu, 2005-06-23 at 22:27 +0200, Markus Bertheau wrote:
>> Dnia 23-06-2005, czw o godzinie 16:19 -0400, Rod Taylor napisa³(a):
>>> The data types are different, as one has the timestamp to (6) decimal
>>> places after seconds.
>>
>> That's strange. I explicitly specified ::TIMESTAMP on both the view and
>> the table. Is that not unambiguous?
> LOCALTIMESTAMP is probably more specific, so it folds the length in.
> If you SELECT 'abc'::varchar(6)::varchar, the end type is varchar(6).
Yeah, this is exactly what's happening --- if you look at gram.y,
LOCALTIMESTAMP is expanded to "'now'::text::timestamp(6)". I am
unconvinced that the (6) is a very good idea though. The code says
/* SQL99 mandates a default precision of 6 for timestamp.
* Also, that is about as precise as we will get since
* we are using a microsecond time interface.
* - thomas 2001-12-07
*/
d->typmod = 6;
but it doesn't seem to me to follow from what the spec says that we need
to explicitly cast the result of now() to six places. As long as it's
coming from gettimeofday it can't have more than 6 places anyway, and so
we might as well save the extra coercion step. (The parser *will* tack
on a separate coercion function call when presented with this parse
tree.)
In short, I'm inclined to remove the above-quoted lines, and similarly
for CURRENT_TIME, CURRENT_TIMESTAMP, and LOCALTIME. Thoughts?
regards, tom lane
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Reply to all the recipients using the --to and --cc options:
reply via email
To: pgsql-sql@postgresql.org
Cc: tgl@sss.pgh.pa.us, pg@rbt.ca, twanger@bluetwanger.de
Subject: Re: empty view, replace view, column type change?
In-Reply-To: <8931.1119565282@sss.pgh.pa.us>
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox