Обсуждение: Increasing the length of a VARCHAR column without table rewrite
ALTER TABLE .... ALTER column TYPE varchar(xxx) We need to increase the length of a varchar(256) column in two of our largest tables preferrably to TEXT. Is there a way to do this without having to go through a complete table rewrite? I have googled and seen the todo on the wiki, but I'm wondering if we are increasing the length of a varchar column can we manually modify the system catalogs to increase the length? http://wiki.postgresql.org/wiki/Todo#ALTER Version: PG 8.1.17 Thanks, Eric
Eric, Is the table in question so large that you can't afford the time it would take to perform ALTER COLUMN TYPE? I definitely would not go poking around in system catalogs and changing things there. Not unless you *want* to trash your database... The fact that 'todo' has not yet been implemented suggests that it is not a simple matter of changing one attribute in a system catalog. Lewis Eric Comeau wrote: > ALTER TABLE .... ALTER column TYPE varchar(xxx) > > We need to increase the length of a varchar(256) column in two of our > largest tables preferrably to TEXT. > > Is there a way to do this without having to go through a complete table > rewrite? > > I have googled and seen the todo on the wiki, but I'm wondering if we are > increasing the length of a varchar column can we manually modify the system > catalogs to increase the length? > > http://wiki.postgresql.org/wiki/Todo#ALTER > > > Version: PG 8.1.17 > > Thanks, > Eric > > > >
Lewis Kapell wrote: > Eric, > > Is the table in question so large that you can't afford the time it > would take to perform ALTER COLUMN TYPE? > > I definitely would not go poking around in system catalogs and > changing things there. Not unless you *want* to trash your > database... The fact that 'todo' has not yet been implemented > suggests that it is not a simple matter of changing one attribute in > a system catalog. Well, it is (in this case at least) -- the problem is that we want a general solution, not one that only applies to the particular problem of widening a column's max length. (When playing with this, however, note that the modified table may need a toast table that may not be there). -- Alvaro Herrera http://www.CommandPrompt.com/ The PostgreSQL Company - Command Prompt, Inc.