Re: Funciones C

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Toni Casueps <casueps(at)hotmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Funciones C
Date: 2007-06-13 16:12:19
Message-ID: 20070613161219.GB11499@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Toni Casueps escribió:
>
> He creado una función en C y funciona, pero tengo un problema cuando
> quiero modificarla: cada vez que recompilo el fichero .so y lo pongo en el
> directorio /usr/lib64/pgsql provoca una violacion de segmento en el
> servidor Postgres... He probado a borrar la funcion antes de copiar el
> fichero y crearla otra vez una vez copiado pero ocurre lo mismo

Y que haces al momento de copiar el nuevo archivo? La verdad es que
esto no deberia pasar, porque el servidor deberia estar ejecutandose
desde las copias en memoria; no deberia releer el archivo de disco
(supongo que si lo releyera, deberia continuar usando el descriptor
antiguo, es decir, no deberia ver el archivo nuevo).

Has probado usando LOAD?

> Por otro lado en la función que estoy haciendo estoy trabajando con
> cadenas, y me está dando problemas con el final de estas. Es posible que
> no esten terminadas con el caracter '\0'? He leido la seccion de funciones
> C del manual y n odice nada.

Los tipos de datos varchar, text, etc no son terminadas en 0 -- no son
cadenas C normales. Puedes convertirlas si quieres, usando
DirectFunctionCall1(textout, TextGetDatum(texto))
o algo de ese estilo. Asegurate de quitarlas de TOAST eso si ...

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message José Ruiz aguilera 2007-06-13 19:14:07 Re: problema de novato con cursores
Previous Message Alvaro Herrera 2007-06-13 15:17:25 Re: Excepciones en funciones sql