On Tue, 11 Apr 2000, Tom Lane wrote:
> "Andrew C.R. Martin" <a.c.r.martin@reading.ac.uk> writes:
> > My own particular problem simply pulls out an integer and a (text *)
> > from a varchar. It then goes away and does some calculations based on
> > these values and another external file (in fact it does a system() to
> > run an external program which does these calculations). It then build
> > a 'text' structure containing the result.
>
> Hm. I'm not too clear on why that would need to worry about either
> TupleTableSlot or GetAttributeByName ... shouldn't it be a simple
> function consuming a text Datum and producing another?
Errrmmm, just following the instructions in the docs:
Programmer's Manual, Chapter 4. Extensing SQL: Functins (page x414.htm), under
the C examples.
My function looks something like:
text *mppfunc(TUPLE tuple)
{ text *attrib; int resnum; bool isnull; char my_result[400];
if(((attrib = (text *)GetAttributeByName(tuple, "substitution", &isnull)) ==NULL) || isnull)
return(pg_text("Invalid1")); strncpy(newres, VARDATA(attrib), 40);
resnum = (int)GetAttributeByName(tuple, "codon", &isnull); if(isnull) return(pg_text("Invalid3"));
/* Do some stuff here putting a result string in my_result */ return(pg_text(my_result));
}
pg_text() is a little function to put a string into a PostgreSQL text data type.
Are you suggesting there is now an undocumented(?) easier way of doing this???
Best wishes,
Andrew
--
Dr. Andrew C.R. Martin EMail: a.c.r.martin@reading.ac.uk (work)
Lecturer in Bioinformatics andrew@stagleys.demon.co.uk (home)
University of Reading
Tel.: +44 (0)118 987 5123x7022 Fax: +44 (0)118 931 0180