Re: [HACKERS] Re: Bugs: Programming Language Functions
От | Andrew C.R. Martin |
---|---|
Тема | Re: [HACKERS] Re: Bugs: Programming Language Functions |
Дата | |
Msg-id | 00041118092100.28482@sapc13.rdg.ac.uk обсуждение исходный текст |
Ответ на | Re: Bugs: Programming Language Functions (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: [HACKERS] Re: Bugs: Programming Language Functions
|
Список | pgsql-interfaces |
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
В списке pgsql-interfaces по дате отправления: