Re: Last call for comments: fmgr rewrite [LONG]
От | Tom Lane |
---|---|
Тема | Re: Last call for comments: fmgr rewrite [LONG] |
Дата | |
Msg-id | 12694.958970778@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Last call for comments: fmgr rewrite [LONG] (Chris Bitmead <chrisb@nimrod.itg.telstra.com.au>) |
Список | pgsql-hackers |
Chris Bitmead <chrisb@nimrod.itg.telstra.com.au> writes: > I was thinking of something more along the lines of a Corba idl code > generator, only simpler. Maybe as simple as a file like: > int4plus: INT4, INT4 > int4minus: INT4, INT4 > etc... > that gets generated into some stubs that call the real code... > Datum > int4pl_stub(PG_FUNCTION_ARGS) > { > int32 arg1 = PG_GETARG_INT32(0); > int32 arg2 = PG_GETARG_INT32(1); > return PG_RETURN_INT32(int4pl(arg1, arg2)); > } OK ... but I don't think we want to leave a useless extra level of function call in the code forever. What I'm starting to visualize is a simple editing script that adds the above decoration to an existing function definition, and then you go back and do any necessary cleanup by hand. There is a lot of cruft that we should be able to rip out of the existing code (checks for NULL arguments that are no longer needed if the function is declared strict, manipulation of pass-by-ref args and results for float4/float8/int8 datatypes, etc etc) so a hand editing pass will surely be needed. But maybe we could mechanize creation of the basic GETARG/RETURN decorations... regards, tom lane
В списке pgsql-hackers по дате отправления: