type text in c functions
От | Robert Wimmer |
---|---|
Тема | type text in c functions |
Дата | |
Msg-id | BAY10-F27712116B982BAC5BEEC10D0A10@phx.gbl обсуждение исходный текст |
Ответы |
Re: type text in c functions
|
Список | pgsql-interfaces |
i tried to write a simple typechecking function in c. but it does not work correct -- CODE -- #include <postgres.h> #include <string.h> #include <fmgr.h> PG_FUNCTION_INFO_V1(text_to_card); Datum text_to_card(PG_FUNCTION_ARGS) { int i,l; int32 ret; text *t = PG_GETARG_TEXT_P(0); l = VARSIZE(t) - VARHDRSZ; for (i = 0; i < l; i++) { if ( (t->vl_dat[i] < '0') || (t->vl_dat[i] > '9')) break; } if (i==l) ret = 0; else ret = i; PG_RETURN_INT32(ret); } --END -- this function should check if it is possible to cast a TEXT in an unsigned INTEGER. if OK it returns 0 otherwise the position in the string where the error occured. ( so you can produce error messages like ERROR[234] text_to_card('paramete') failed at <3>) i assumed - after reading the corresponding header files and docs and google - the type structure of a text as above. i only get zeros and ones as result the algorithm works fine in 'normal' c. is there a possibilty to treat a TEXT parameter like a char array ? thanks and regards sepp _________________________________________________________________ Schaffen Sie das Platzproblem in Ihrem E-Mail-Konto für immer aus der Welt! http://join.msn.com/?pgmarket=de-at&DI=1031&XAPID=1581
В списке pgsql-interfaces по дате отправления: