I wrote:
> What's happening is that "new.id" is effectively still NULL at the point
> where the rule is processed, so the rule WHERE condition fails. I'm not
> sure why you're bothering with that WHERE condition anyway ... but this
> seems to be another argument for moving INSERT's default-value-insertion
> step to before the rule rewriter.
I've committed fixes for this into CVS tip.
regards, tom lane