From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
---|---|
To: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
Cc: | Ow Mun Heng <Ow(dot)Mun(dot)Heng(at)wdc(dot)com>, Mario Weilguni <mweilguni(at)sime(dot)com>, Pgsql performance <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Altering a column type - Most efficient way |
Date: | 2008-07-11 14:27:34 |
Message-ID: | 3462.1215786454@sss.pgh.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Alvaro Herrera <alvherre(at)commandprompt(dot)com> writes:
> Ow Mun Heng wrote:
>> If it were this simple a change, I'm not certain why (I believe) PG is
>> checking each and every row to see if it will fit into the new column
>> definition/type.
> Because the code that does the ALTER TYPE is very generic, and it
> doesn't (yet) have an optimization that tells it to skip the check and
> the possible table rewrite in the cases where it's obviously not needed
> (like this one).
Awhile back I looked into teaching ALTER TYPE that it needn't rewrite
if the type conversion expression parses out as just a Var with
RelabelType, but it seemed that that wouldn't cover very much of the
use-cases where a human thinks that it's "obvious" that no rewrite
is needed. You'd really need to build in hard-wired knowledge about
the behavior of specific coercion functions, which seems entirely
unappealing.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | Kevin Grittner | 2008-07-11 14:55:06 | Re: Altering a column type - Most efficient way |
Previous Message | Scott Marlowe | 2008-07-11 14:19:50 | Re: 3ware vs Areca |