Re: BUG #11761: range_in dosn't work via direct functional call
От | Pavel Stehule |
---|---|
Тема | Re: BUG #11761: range_in dosn't work via direct functional call |
Дата | |
Msg-id | CAFj8pRBnM_mMFe-h=Nta_Ch=K_cTdwgCgpChsaY_O=Uje_cpjg@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: BUG #11761: range_in dosn't work via direct functional call (Heikki Linnakangas <hlinnakangas@vmware.com>) |
Ответы |
Re[2]: [BUGS] BUG #11761: range_in dosn't work via direct functional call
|
Список | pgsql-bugs |
2014-10-24 15:08 GMT+02:00 Heikki Linnakangas <hlinnakangas@vmware.com>: > On 10/22/2014 08:27 PM, olegjobs@mail.ru wrote: > >> This function test_ext_get_range(cstring) returns int4range: >> >> Datum test_ext_get_range(PG_FUNCTION_ARGS) >> { >> char *ts = PG_GETARG_CSTRING(0); >> >> return DirectFunctionCall3(range_in, CStringGetDatum(ts), >> ObjectIdGetDatum(3904), Int32GetDatum(0); >> } >> In psql: >> select test_ext_get_range('[1,1]'); >> error: >> connection to the server was lost. >> >> it seems to me that some memory problems because of "The range I/O >> functions >> need a bit more cached info than other range >> * functions, so they store a RangeIOData struct in fn_extra, not just a >> * pointer to a type cache entry. " >> > > Yeah, DirectFunctionCall cannot be used with range_in. Use FunctionCall3 > instead. See this comment in fmgr.c, above DirectFunctionCall1Coll: > There is a special "InputFunctionCall" Regards Pavel > > /* >> * These are for invocation of a specifically named function with a >> * directly-computed parameter list. Note that neither arguments nor >> result >> * are allowed to be NULL. Also, the function cannot be one that needs to >> * look at FmgrInfo, since there won't be any. >> */ >> > > range_in needs to look at FmgrInfo. > > - Heikki > > > -- > Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-bugs >
В списке pgsql-bugs по дате отправления: