| 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: | Whole Thread | Raw Message | 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
| 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 |