Que tal lista

Requiero tener mayor flexibilidad para el manejo de xml en postgre; para
lograrlo estoy probando con procedimientos almacenados en "plperlu" con el
modulo XML::LibXML. Pero por alguna razón me marca un segmentation fault.
Los scripts con los que estoy probando son los siguientes:

1. pba.sql: Este script contiene solo la funcion en plperlu y retorna un
texto estatico

      CREATE   FUNCTION formar_ce_acomodo( TEXT ) RETURNS TEXT AS $$

      use XML::LibXML;


      return 'algo';
      $$ LANGUAGE 'plperlu';

2. pba1.sql: Crea una tabla


      CREATE TABLE p_cuadro (
          idpcuadro integer NOT NULL,
          acomodo xml

      );

3. pba2.sql: inserta un xml:

     insert into p_cuadro (idpcuadro, acomodo )
            values   (1,
               '<CUADRO>
                <B1> <R idr="1" idll=""> <R idr="2" idll=""/> </R>
                </B1>
                <B2>
                   <V ti="2" idvar="1" idizq="(1,2)"/> <R idr="3" idll=""/>
<V ti="3" idvar="1" idizq="(1,3)"/>
                </B2>
                <C1> <C idizq="(1,4)" idcl="1" idp="" vi="1" idll="1,2"> <V
ti="2" idvar="2" idizq="(1,5)"> <R idr="4" idll=""/> </V> </C> <R idr="5"
idll=""/>
                </C1>
                <P> <N idpn="1" /> <LLS> <LL idll="1" le=""/> <LL idll="2"
le=""/> </LLS>
                </P>
              </CUADRO>'

              );

Al ejecutar los scripts 1 y 2 no tengo ningun problema; al intentar ejecutar
el 3 (pba2.sql) me marca lo siguiente el psql:

fjmb=# \i pba.sql
psql:pba.sql:2: ERROR:  function formar_ce_acomodo(text) does not exist
CREATE FUNCTION
fjmb=# \i pba1.sql
DROP TABLE
CREATE TABLE
fjmb=# \i pba2.sql
psql:pba2.sql:15: server closed the connection unexpectedly
    This probably means the server terminated abnormally
    before or while processing the request.


En el log de postgres aparece:

STATEMENT:  drop   FUNCTION formar_ce_acomodo( TEXT ) ;
LOG:  server process (PID 8210) was terminated by signal 11: Segmentation
fault
LOG:  terminating any other active server processes
LOG:  all server processes terminated; reinitializing
LOG:  database system was interrupted; last known up at 2009-03-06 12:28:12
CST
LOG:  database system was not properly shut down; automatic recovery in
progress
LOG:  redo starts at 0/1290050
LOG:  record with zero length at 0/12B04A8
LOG:  redo done at 0/12B047C
LOG:  last completed transaction was at log time 2009-03-06
12:28:21.97935-06
LOG:  autovacuum launcher started
LOG:  database system is ready to accept connections


Alguna sugerencia? ... mi versión de postgres es 8.3.5


saludos  y gracias de antemano

Responder a