Обсуждение: C functions

Поиск
Список
Период
Сортировка

C functions

От
mlw
Дата:
Does anyone know if it is possible to define a Postgres C function as taking a
variable number of parameters? The fmgr code will pass it, but I don't see any
way to use "create function" to register it.

Does one have to issue a create function for each additional parameter?

I am trying to port some mysql stuff to postgres, and mysql has a function
"concat" which will concatenate a number of fields. I have this coded for
Postgres, but I can't get it registered. I used a few "create function"
statements to cover the number of parameters I need, but this is really ugly.

(Also, this will help with "decode()," an oraclesque function I use.)


Re: C functions

От
Tom Lane
Дата:
mlw <markw@mohawksoft.com> writes:
> Does anyone know if it is possible to define a Postgres C function as
> taking a variable number of parameters? The fmgr code will pass it,
> but I don't see any way to use "create function" to register it.

No, it's not.  There is some (purely speculative) support for the idea
in the fmgr code, but none anywhere else, as yet.

> Does one have to issue a create function for each additional parameter?

Yup, you could make multiple pg_proc entries all pointing at the same
C function.  Kinda grotty, but...
        regards, tom lane