create or replace rule propagate_x_and_d as on update to x do also
update y set x = new.x, d = new.d where y.x = old.x;
As seen above, although the rule correctly propagates the change to
the `x` column, it fails to use the new value for the `d` column, but
instead uses the previous one.
ALSO rules behave like before triggers, not after triggers. The original command is appended to the end of the list of commands, not the start.
David J.