Hola Jaime, muchas gracias, tenía la duda porque en varias ocasiones lo he hecho (en las condiciones antes descritas) y no había evidenciado un REINDEX como efecto colateral.
El mar, 8 feb 2022 a la(s) 11:09, Jaime Casanova ( jcasa...@systemguards.com.ec) escribió: > On Tue, Feb 08, 2022 at 05:06:24AM -0500, Hellmuth Vargas wrote: > > Hola lista > > > > Leyendo por ahí en el siguiente post > > > > > > > https://www.linkedin.com/posts/somdyuti-paul-042aa27_rds-postgresql-aws-activity-6896664452180131840-QZGN > > > > > > Expone que cuando se altera el tamaño de una columna varchar INDEXADA > > internamente se recrear el índice asociado.... Ojo solo estamos cambiando > > el tamaño... Que opinan? > > > > Mejor que una opinión... una prueba (en postgres 14) > > """ > postgres=# create table prueba (v varchar(10)); > CREATE TABLE > postgres=# create index on prueba (v); > CREATE INDEX > postgres=# select oid, relname, relfilenode from pg_class where relname > like 'prueba%'; > oid | relname | relfilenode > --------+--------------+------------- > 102710 | prueba | 102710 > 102713 | prueba_v_idx | 102713 > (2 filas) > > postgres=# alter table prueba alter v type varchar(15); > ALTER TABLE > postgres=# select oid, relname, relfilenode from pg_class where relname > like 'prueba%'; > oid | relname | relfilenode > --------+--------------+------------- > 102710 | prueba | 102710 > 102714 | prueba_v_idx | 102713 > (2 filas) > """ > > ¿Cómo se que no se reindexó el índice? > Porque al reindexar (igual que al reescribir la tabla) el relfilenode > cambia. > > """ > postgres=# reindex index prueba_v_idx ; > REINDEX > postgres=# select oid, relname, relfilenode from pg_class where relname > like 'prueba%'; > oid | relname | relfilenode > --------+--------------+------------- > 102710 | prueba | 102710 > 102714 | prueba_v_idx | 102715 > (2 filas) > """ > > Ahora, este no siempre fue el caso. Hace eones atras cualquier ALTER > TABLE causaba que se reescribiera la tabla. Aunque nunca he sabido, y > con eso quiero decir que no creo que alguna vez fuera así, este caso > en particular tuviera el efecto de no reescribir la tabla pero si > reindexar el índice. > > -- > Jaime Casanova > Director de Servicios Profesionales > SystemGuards - Consultores de PostgreSQL > -- Cordialmente, Ing. Hellmuth I. Vargas S. Esp. Telemática y Negocios por Internet Oracle Database 10g Administrator Certified Associate EnterpriseDB Certified PostgreSQL 9.3 Associate