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 по дате отправления:

Предыдущее
От: Chris Bitmead
Дата:
Сообщение: Re: Last call for comments: fmgr rewrite [LONG]
Следующее
От: Chris Bitmead
Дата:
Сообщение: Re: Last call for comments: fmgr rewrite [LONG]