Gene <genekhart(at)gmail(dot)com> writes:
> I'm not sure why it's detecting recursion in this case when the rule
> conditional should be false
Rules are macros, which means that expansion has to terminate
statically, not dynamically. For the particular purpose you seem to
have here, it'd be a lot more manageable and a lot more efficient
to use a BEFORE UPDATE trigger instead of a rule.
if new.pattern <> old.pattern then
new.flag = false;
end if;
return new;
Or are you trying to change some other row than the one being updated?
regards, tom lane