Changing varchar length by manipulating pg_attribute

From: Christian Ramseyer <rc(at)networkz(dot)ch>
To: "pgsql-general(at)postgresql(dot)org >> PG-General Mailing List" <pgsql-general(at)postgresql(dot)org>
Subject: Changing varchar length by manipulating pg_attribute
Date: 2016-01-13 11:59:37
Message-ID: 56963C29.10408@networkz.ch
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi

I have a database in which I'd like to increase the length of a varchar
column. Unfortunately, the column is used in various views which then
are used in other views, so doing this with ALTER TABLE ALTER COLUMN
TYPE is quite a lot of work.

I have found this suggestion
<http://sniptools.com/databases/resize-a-column-in-a-postgresql-table-without-changing-data>
to just update pg_attribute like this:

UPDATE pg_attribute SET atttypmod = 35+4 -- new desired length + 4
WHERE attrelid = 'TABLE1'::regclass
AND attname = 'COL1';

Is this safe to do in Postgres 9.4? Also, best practice seems to be to
use text nowadays, is there even a variant of this that lets me convert
a "column from character varying(256)" to "text" without having to
recreate all the nested views?

Thanks
Christian

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Clodoaldo Neto 2016-01-13 12:44:40 plpython3 package absent in 9.5 repository
Previous Message Albe Laurenz 2016-01-13 10:40:14 Re: Function error