Justin Pryzby <pryzby(at)telsasoft(dot)com> writes:
> I reduced the problematic query to this.
> SELECT 1 FROM pg_rewrite WHERE
> pg_get_function_arg_default(ev_class, 1) !~~
> pg_get_expr(ev_qual, ev_class, false);
Or more simply,
regression=# select pg_get_expr(ev_qual, ev_class, false) from pg_rewrite where rulename = 'pg_settings_u';
ERROR: bogus varno: 2
I don't see anything particularly surprising here. pg_get_expr is only
able to cope with expression trees over a single relation, but ON UPDATE
rules can refer to both OLD and NEW relations. Maybe we could make the
error message more friendly, but there's not much else to be done,
I think.
regards, tom lane