From: | "Cristian Prieto" <cristian(at)clickdiario(dot)com> |
---|---|
To: | <pgsql-general(at)postgresql(dot)org>, <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Help with Array Function in C language... |
Date: | 2005-11-07 22:51:51 |
Message-ID: | 00a001c5e3ed$d9c46bd0$6500a8c0@gt.ClickDiario.local |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general pgsql-hackers |
Hello, I'm doing a very simple C language function in PostgreSQL but I can't
figure out why this is not working, the documentation about the PostgreSQL
internals is not so good about arrays and I couldn't find a suitable example
of the use of some kind of array functions inside the pgsql source tree.
I'm trying to get the N item from any array passed as argument, this could
be the SQL declaration of my function:
CREATE OR REPLACE FUNCTION test_array(integer, anyarray) RETURNS anyelement
AS 'test.so' LANGUAGE 'C';
And the function could look like this:
PG_FUNCTION_INFO_V1(test_array);
Datum
test_array(PG_FUNCTION_ARGS)
{
ArrayType *v = PG_GETARG_ARRAYTYPE_P(1);
Datum element;
Oid array_type = get_array_type(v);
int typlen;
bool typbyval;
char typalign;
get_typlenbyvalalign(array_type, &typlen, &typbyval, &typalign);
element = array_ref(v, 1, PG_GETARG_INT32(0), ARR_SIZE(v), typlen,
typbyval, typalign, false);
PG_RETURN_DATUM(element);
}
The function compiles without error, but when I try something like that:
SELECT test_array(3, array[1,2,3,4,5,6]);
It returns to me an error like this:
ERROR: cache lookup failed for type 0
What is wrong here?
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2005-11-07 22:58:04 | Re: Perl::DBI and interval syntax |
Previous Message | Allen | 2005-11-07 21:56:00 | Perl::DBI and interval syntax |
From | Date | Subject | |
---|---|---|---|
Next Message | Bruce Momjian | 2005-11-07 23:01:12 | Re: broken comment justification logic in new pgindent |
Previous Message | Douglas McNaught | 2005-11-07 22:21:15 | Re: Odd db lockup - investigation advice wanted |