Re: ISSTRICT behavior
От | Don Y |
---|---|
Тема | Re: ISSTRICT behavior |
Дата | |
Msg-id | 4459B228.2080309@DakotaCom.Net обсуждение исходный текст |
Ответ на | Re: ISSTRICT behavior (Martijn van Oosterhout <kleptog@svana.org>) |
Список | pgsql-general |
Martijn van Oosterhout wrote: > On Thu, May 04, 2006 at 12:29:30AM -0700, Don Y wrote: >> OTOH, if the function could *abort* it's invocation, then >> I don't have to worry about return values. It is a closer >> model to the STRICT behavior -- instead of aborting the >> function invocation BEFORE (which STRICT essentially does), >> I could abort it AFTER invocation (once I had detected >> the NULL argument) > > Are you sure you understand what STRICT does? STRICT doesn't abort > anything. STRICT means "if this function gets called with any NULL > arguments, the result is NULL". Since this is correct behaviour for the > vast majority of functions, it's implemented as a flag rather than > requiring each and every function to check. Ah, I have misunderstood this! I saw it as "if invoked with NULL, don't invoke the function" -- which, I guess, is somewhat consistent with your comment... the function isn't invoked, BUT 'NULL' IS SUBSTITUTED FOR IT'S RETURN VALUE. > Also, anything that calls a function must be prepared to handle a NULL > return value. Any function can return NULL, even if only because it is > declared strict and you passed a null argument... So, even the functions that I am defining that ALWAYS return particular types have to be treated AS IF they could return NULL? (in the case you describe -- the opposite case that I have been describing) Hmmm... that might make things even easier!
В списке pgsql-general по дате отправления: