[prev in list] [next in list] [prev in thread] [next in thread] 

List:       pgsql-performance
Subject:    Re: [PERFORM] Altering a column type - Most efficient way
From:       Mario Weilguni <mweilguni () sime ! com>
Date:       2008-07-11 8:01:08
Message-ID: 48771344.3020305 () sime ! com
[Download RAW message or body]

Ow Mun Heng schrieb:
> On Thu, 2008-07-10 at 09:57 -0400, Alvaro Herrera wrote:
>   
>> Ow Mun Heng wrote:
>>
>>     
>>> This is what I see on the table
>>>
>>> NEW attypmod = -1
>>> OLD attypmod =  8
>>>       
>> 8 means varchar(4) which is what you said you had (4+4)
>> -1 means unlimited size.
>>
>>     
>
> This is cool. 
>
> 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. 
>
> Thus, I'm still a bit hesitant to do the change, although it is
> definitely a very enticing thing to do. ( I presume also that this
> change will be instantaneous and does not need to check on each and
> every row of the table?)
>
> Thanks./
>
>   

It should be safe, because the length limit is checked at insert/update 
time, and internally, a varchar(20) is treated as something like this:
foo      varchar(1000000000) check (length(foo) <= 20)


The change is done without re-checking all rows, and will not fail IF 
the new size is longer than the old size.


-- 
Sent via pgsql-performance mailing list (pgsql-performance@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic