estudiante
Publicado por jorge (1 intervención) el 22/06/2007 16:26:20
Buenas como va, tengo la vercion de postgres 8.1 , he estado buscando alguna forma para mover todos los indices de una base de dato , del tablespace por defecto a uno que hice yo.... no la encontre entonces me puse hacer una... me compilo pero no me anda.. lo raro que cuando la debagueo biene bien y se traba en un indice , que me sale el error:
ERROR: no existe la relación «produccion_act_nl_tl_index»
produccion_act_nl_tl_index--> es el indice
bueno muchas gracias
jorge
la funcion es:
-------------------------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION "public"."mover_indices" () RETURNS boolean AS
$body$
DECLARE
r_idx RECORD;
idx cursor for SELECT 'ALTER INDEX ' ||c2.relname ||' SET TABLESPACE tbs_prueba;' as sen
FROM pg_class c2, pg_index i
WHERE c2.oid = i.indexrelid
and c2.relname not like 'pg_%'
ORDER BY c2.relname desc;
BEGIN
open idx;
LOOP
FETCH idx INTO r_idx;
IF FOUND = FALSE THEN
EXIT; -- exit loop
END IF;
execute r_idx.sen;
END LOOP;
close idx;
RETURN TRUE;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
---------------------------------------------------------------------------------------------
ERROR: no existe la relación «produccion_act_nl_tl_index»
produccion_act_nl_tl_index--> es el indice
bueno muchas gracias
jorge
la funcion es:
-------------------------------------------------------------------------------------------
CREATE OR REPLACE FUNCTION "public"."mover_indices" () RETURNS boolean AS
$body$
DECLARE
r_idx RECORD;
idx cursor for SELECT 'ALTER INDEX ' ||c2.relname ||' SET TABLESPACE tbs_prueba;' as sen
FROM pg_class c2, pg_index i
WHERE c2.oid = i.indexrelid
and c2.relname not like 'pg_%'
ORDER BY c2.relname desc;
BEGIN
open idx;
LOOP
FETCH idx INTO r_idx;
IF FOUND = FALSE THEN
EXIT; -- exit loop
END IF;
execute r_idx.sen;
END LOOP;
close idx;
RETURN TRUE;
end;
$body$
LANGUAGE 'plpgsql' VOLATILE CALLED ON NULL INPUT SECURITY INVOKER;
---------------------------------------------------------------------------------------------
Valora esta pregunta


0