Re: plpgsql - or operator?
| От | Richard Huxton |
|---|---|
| Тема | Re: plpgsql - or operator? |
| Дата | |
| Msg-id | 48747508.2040601@archonet.com обсуждение исходный текст |
| Ответ на | plpgsql - or operator? ("MadHatter" <madhtr@schif.org>) |
| Список | pgsql-general |
MadHatter wrote: > If I have an expression (a or b)a where a=TRUE and b=FALSE, why is b > evaluated? Any true operand before an or operator means the entire > expression is true . There is no "before" - PG makes no guarantee about evaluation order. Don't forget a,b might well be subqueries and you don't want to prevent PG from applying optimisations. > ---------------------------- EXAMPLE > > create or replace function pinsusers() returns trigger as > > $$ > > declare msg varchar; > > begin > > --THROWS EXCEPTION when ((TG_OP = 'INSERT') is TRUE "record old > is not assigned yet" > > msg = ((TG_OP = 'INSERT') or (new.password<>old.password)); You're looking at nested IF .. THEN's I'm afraid. Or using pl/perl or similar. -- Richard Huxton Archonet Ltd
В списке pgsql-general по дате отправления: