Re: Altering a column type - Most efficient way

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.



[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux