Обсуждение: coredump of language internal function

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

coredump of language internal function

От
myzhen
Дата:
When creating a function using language internal, if the parameters or function attributes of the alias function are different from those of the internal function, they are not checked during creation and may cause a cordump when called.
a example:
CREATE FUNCTION ftest(integer)
RETURNS numeric
AS 'numeric_in'
LANGUAGE internal
PARALLEL SAFE
STRICT
IMMUTABLE;

I didn't find this mentioned in the manual, so I'm not sure if this is a problem, but it seems like it might be better to do a check when creating the function.

Re: coredump of language internal function

От
Tom Lane
Дата:
myzhen <zhenmingyang@yeah.net> writes:
> When creating a function using language internal, if the parameters or function attributes of the alias function are
differentfrom those of the internal function, they are not checked during creation and may cause a cordump when called. 

We have always considered that this is programmer error.

> I didn't find this mentioned in the manual, so I'm not sure if this is a problem, but it seems like it might be
betterto do a check when creating the function. 

If you have an idea about how such a check could be done, it would
be worth discussing that.  But it seems pretty unlikely to me that
there is any portable way to identify externally what data types
a compiled function is expecting to receive.

            regards, tom lane