Tomas Vondra <tomas.vondra@2ndquadrant.com> writes:
> the attached trivial patch adds handling of RestrictInfo nodes into
> expression_tree_walker().
RestrictInfo is not a general expression node and support for it has
been deliberately omitted from expression_tree_walker(). So I think
what you are proposing is a bad idea and probably a band-aid for some
other bad idea.
> This is needed for example when calling
> pull_varnos or (or other functions using the expression walker) in
> clausesel.c, for example. An example of a query causing errors with
> pull_varnos is
> select * from t where (a >= 10 and a <= 20) or (b >= 15 and b <= 20);
Really?
regression=# create table t (a int, b int);
CREATE TABLE
regression=# select * from t where (a >= 10 and a <= 20) or (b >= 15 and b <= 20);a | b
---+---
(0 rows)
regards, tom lane