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: jvenegasp...@gmail.com

Responder a