Tengo una tabla con 60 columnas y quiero dividirla verticalmente, más o como dividirla en otras tablas pequeñas divididas en columnas. ¿Cómo hacer particiones verticales en una base de datos usando Postgres 9.2? hizo mucho de Google pero no pude encontrar nada útil

Es muy simple, encontrará todo aquí Documentación: 9.2: Particionamiento

Por cierto, los pasos son [hago una partición en la columna A]:
1) crear una tabla normal (esa es la tabla maestra que llamaré es master_tab);
crear tabla mastertab (a int, b varchar);
2) crea las tablas esclavas con:
crear tabla slavetab001 () HEREDAS (mastertab);
crear tabla slavetab002 () HEREDAS (mastertab);

crear tabla slavetab060 () HEREDAS (mastertab);
3) es mejor pensar en las restricciones para preservar la coherencia lógica de la tabla:
alter table slavetab001 agregar restricción CK CHECK (a entre 0 y 100000);
alter table slavetab002 agregar restricción CK CHECK (a entre 100001 y 200000);

4) crea la función de disparo (procedimiento):

CREAR O REEMPLAZAR LA FUNCIÓN mastertab_trigger ()
DEVOLUCIONA EL GATILLO COMO
$$
EMPEZAR
SI (NUEVO.a> = 0 Y NUEVO.a <100001) ENTONCES
INSERTAR EN VALORES slavetab001 (NUEVO. *);
ELSIF (NUEVO.a> = 100001 Y NUEVO.a <200001) ENTONCES
INSERTAR EN VALORES slavetab002 (NUEVO. *);
MÁS
AUMENTAR EXCEPCIÓN ‘Columna A de Mastertab fuera de rango’;
TERMINARA SI;
DEVOLUCIÓN NULO;
FINAL;
$$ IDIOMA plpgsql;

5) crea el disparador:
CREATE TRIGGER mastertab_trigger ANTES DE INSERTAR EN mastertab PARA CADA PROCEDIMIENTO DE EJECUCIÓN DE FILAS mastertab_trigger ();

6) prueba si está funcionando

prueba = # insertar en valores mastertab (a, b) (1, ‘dhdhd’);
INSERTAR 0 0
prueba = # insertar en valores mastertab (a, b) (100000, ‘dhdhd’);
INSERTAR 0 0
prueba = # insertar en valores mastertab (a, b) (100001, ‘prueba2’);
INSERTAR 0 0

## Veo todos los registros en mastertab

prueba = # seleccionar * de mastertab;
a | si
——– + ——-
100001 | prueba2
1 | dhdhd
100000 | dhdhd
(3 filas)

## Veo el registro correctamente en las pestañas de esclavos:

test = # select * from slavetab001;
a | si
——– + ——-
1 | dhdhd
100000 | dhdhd
(2 filas)

test = # select * from slavetab002;
a | si
——– + ——-
100001 | prueba2
(1 fila)

Dios mío no lo hagas. Use Vertica en su lugar. Página en google.com