Re: ISSTRICT behavior

Поиск
Список
Период
Сортировка
От Martijn van Oosterhout
Тема Re: ISSTRICT behavior
Дата
Msg-id 20060504072933.GD4752@svana.org
обсуждение исходный текст
Ответ на Re: ISSTRICT behavior  (Don Y <pgsql@DakotaCom.Net>)
Ответы Re: ISSTRICT behavior  (Don Y <pgsql@DakotaCom.Net>)
Список pgsql-general
On Thu, May 04, 2006 at 12:23:07AM -0700, Don Y wrote:
> I don't want to hide the function; just ensure that no one
> *redefines* the SQL interface to it in a manner that is
> inconsistent with its implementation.  If I can make the
> implementation robust enough that it could protect itself
> against this potential, that would be acceptable (hence
> my original question).  Barring that, I need to do whatever
> it takes to safeguard the server so that it can't be brought
> to its knees by a simple bug like failing to specify STRICT, etc.

Well, if you really want to, you can do this at the beginning of each
function. It makes it completely fool-proof (until someone finds a
better fool ofcourse).

--- cut ---
if( PG_NARGS != exptectedargs )
   die ("bad args" );
for( i=0; i<PG_NARGS; i++ )
{
   if( PG_ARGISNULL(i) )
        PG_RETURN_NULL();
   if( get_fn_expr_argtype( fcinfo->flinfo, i ) != expectedtypes[i] )
        die("bad args" );
}

if( get_fn_expr_rettype(fcinfo->flinfo) )
    die "bad return type";
--- cut ---

--
Martijn van Oosterhout   <kleptog@svana.org>   http://svana.org/kleptog/
> From each according to his ability. To each according to his ability to litigate.

Вложения

В списке pgsql-general по дате отправления:

Предыдущее
От: Don Y
Дата:
Сообщение: Re: ISSTRICT behavior
Следующее
От: Martijn van Oosterhout
Дата:
Сообщение: Re: ISSTRICT behavior