Re: Is there a way to test for UNASSIGNED in pl/pgsql
От | Pavel Stehule |
---|---|
Тема | Re: Is there a way to test for UNASSIGNED in pl/pgsql |
Дата | |
Msg-id | CAFj8pRDP-BntGXTrud=LJTY0QW_c-gJ0yDErRL7hxqmq7w5LCA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Is there a way to test for UNASSIGNED in pl/pgsql (Tom Lane <tgl@sss.pgh.pa.us>) |
Список | pgsql-hackers |
2012/10/29 Tom Lane <tgl@sss.pgh.pa.us>: > Hannu Krosing <hannu@2ndQuadrant.com> writes: >> Would just converting UNDEFINED to NULL be a very bad idea ? > > Yeah, it would, at least for the normal case where an undefined record > variable has no well-defined type either. Saying that it's NULL doesn't > provide an answer to what type it has. > > In the case of OLD/NEW we do know that they ought to have the rowtype of > the underlying table, so it's conceivable that we could pretend they are > nulls of that type. But then you get into the question of whether a > NULL record is distinguishable from (NULL, NULL, ...) --- which would be > a perfectly legal real value of these records. Note that the SQL > standard is pretty firmly on the side that says they are not > distinguishable. I don't agree with that personally, but I don't think > it'd be a good idea to make a fundamental plpgsql feature depend on > being able to distinguish these states. > > TBH, I think your request is ill-considered and should be rejected. > There is nothing whatsoever wrong with testing TG_OP to see what sort of > trigger you're in. +1 we can define two vars TG_NEW_IS_VALID and TG_OLD_IS_VALID. and then you can write test IF TG_NEW_IS_VALID THEN -- do some with NEW ELSE -- ... END IF; Regards Pavel > > regards, tom lane
В списке pgsql-hackers по дате отправления: