Re: backend dies when a user defined type returns null

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: backend dies when a user defined type returns null
Дата
Msg-id 10679.974873731@sss.pgh.pa.us
обсуждение исходный текст
Ответ на backend dies when a user defined type returns null  (Patrick Robin <Patrick.Robin@disney.com>)
Список pgsql-general
Patrick Robin <Patrick.Robin@disney.com> writes:
> In the example  in chapter 5  it shows that the input function for the
> user defined type returns null when the input type doesn't match the
> correct format.

> I do that for input strings that don't match my strict n.n.n format ( ex
> 3.2.1) but it causes the backend to die.

The example is out to lunch, unfortunately :-(  In current releases the
only clean way for an input routine to fail is to throw elog(ERROR).
You cannot return a SQL NULL, and if you try to fake it by returning
a null pointer, you'll just cause a null-pointer-dereference crash.

7.1 has a redesigned function-call interface that allows you to return
a NULL cleanly, but for now elog is the only way.

I'll make a note to fix that example in the 7.1 docs...

            regards, tom lane

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

Предыдущее
От: "rob"
Дата:
Сообщение: Synchronization Toolkit
Следующее
От: John Gray
Дата:
Сообщение: Re: copy table from...