Buenas tardes a todos
Tengo una consulta que cada vez que es ejecuta directamente desde pgadmin
funciona sin ningun problema
esta es la consulta
SELECT row_number() over(),ST_MakeLine(sp,ep) as the_geom
FROM
(SELECT
ST_PointN(geom, generate_series(1, ST_NPoints(geom)-1)) as sp,
ST_PointN(geom, generate_series(2, ST_NPoints(geom) )) as ep
FROM
(SELECT (ST_Dump(the_geom)).geom
FROM rut_trazo v where vigente = 1 and trazo_id = 25
) AS fa
) AS fo;
Pero si lo ejecuto desde dentro de una función me da este error
error:invalid join selectivity: 595447816.000000,mensaje:XX000
la funcion que creo es la siguiente:
CREATE OR REPLACE FUNCTION public.ruse50(
valor integer,
trazo integer)
RETURNS text[] AS
$BODY$
DECLARE
-- num_currenti integer;
retVal text[];
i integer;
BEGIN
create temp table taba as
SELECT row_number() over(),ST_MakeLine(sp,ep) as the_geom
FROM
(SELECT
ST_PointN(geom, generate_series(1, ST_NPoints(geom)-1)) as sp,
ST_PointN(geom, generate_series(2, ST_NPoints(geom) )) as ep
FROM
(SELECT (ST_Dump(the_geom)).geom
FROM rut_trazo v where vigente = $1 and trazo_id = $2
) AS fa
) AS fo;
retVal[0] := 'Se creo taba';
RETURN retVal;
exception when others then
retVal[0]:= 'error:'||SQLERRM||',mensaje:'||SQLSTATE;
return retVal;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
ALTER FUNCTION public.ruse50(integer, integer)
OWNER TO postgres;
He leido algunas consultas similares en los foros e indican volver a crear
la tabla con
create table rut_trazo_nuevo as
select * from rut_trazo
y luego trabjar con esa tabla pero el error periste lo extraño es que en
algunas ocasiones funciona bien en otras arroja el error alguna pista
--
José Mercedes Venegas Acevedo
cel Mov RPM #955853768
mails: [email protected]