Re: Are scalar type's in/out functions implicitly STRICT?
От | Tom Lane |
---|---|
Тема | Re: Are scalar type's in/out functions implicitly STRICT? |
Дата | |
Msg-id | 1341.1046400277@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Are scalar type's in/out functions implicitly STRICT? (Denis Zaitsev <zzz@cd-club.ru>) |
Ответы |
Re: Are scalar type's in/out functions implicitly STRICT?
|
Список | pgsql-sql |
Denis Zaitsev <zzz@cd-club.ru> writes: > So, I create some new scalar type and I don't declare its in/out > functions as STRICT. But PostgreSQL copes with them such as they > would be STRICT - they never get the NULL value. This is likely true in many places --- for example, COPY has a shortcut because it wants to substitute \N for nulls. It would not be a bright idea to assume that it's true in every place and forevermore. In general, if you have a C function and don't want to be bothered with explicit PG_ISNULL testing, you'd better mark it STRICT. An example of an easy way to crash an I/O function without such guards is to invoke it explicitly: regression=# select textin(null::cstring);textin -------- (1 row) regression=# select textout(null::text);textout --------- (1 row) regards, tom lane
В списке pgsql-sql по дате отправления: