[pgsql-es-ayuda] Array como argumento en una función de c

Lists: pgsql-es-ayuda
From: Werner Echezuria <wercool(at)gmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: [pgsql-es-ayuda] Array como argumento en una función de c
Date: 2010-01-02 15:48:01
Message-ID: 2485a25e1001020748r151ca9dbp153f2529bc4c4c70@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Hola,

Estoy trabajando con funciones en c para PostgreSQL en su versión 8.2.
He estado leyendo y se que para obtener un valor de cadena se utiliza
PG_GETARG_TEXT_P y un valor float se usa PG_GETARG_FLOAT8. He estado
revisando el archivo tablefunc.c del contrib. Sin embargo tengo una
duda. ¿Como se puede obetener un valor de un array?.
Ejemplo:

CREATE OR REPLACE FUNCTION prueba(text[])
RETURNS float
AS 'MODULE_PATHNAME', 'prueba'
LANGUAGE C;

¿Como obtengo los valores pasados al array text[] a través de c?

Gracias.


From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Werner Echezuria <wercool(at)gmail(dot)com>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: [pgsql-es-ayuda] Array como argumento en una función de c
Date: 2010-01-02 20:49:55
Message-ID: 20100102204955.GA7450@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-es-ayuda

Werner Echezuria escribió:
> Hola,
>
> Estoy trabajando con funciones en c para PostgreSQL en su versión 8.2.
> He estado leyendo y se que para obtener un valor de cadena se utiliza
> PG_GETARG_TEXT_P y un valor float se usa PG_GETARG_FLOAT8. He estado
> revisando el archivo tablefunc.c del contrib. Sin embargo tengo una
> duda. ¿Como se puede obetener un valor de un array?.
> Ejemplo:
>
> CREATE OR REPLACE FUNCTION prueba(text[])
> RETURNS float
> AS 'MODULE_PATHNAME', 'prueba'
> LANGUAGE C;
>
> ¿Como obtengo los valores pasados al array text[] a través de c?

Usa la funcion deconstruct_array()

--
Alvaro Herrera Vendo parcela en Valdivia:
http://valdivia.vivastreet.cl/loteos-lotes+valdivia/parcela-en-cabo-blanco--valdivia/19288372
"In fact, the basic problem with Perl 5's subroutines is that they're not
crufty enough, so the cruft leaks out into user-defined code instead, by
the Conservation of Cruft Principle." (Larry Wall, Apocalypse 6)