The query with each Filter's invalid values read again against the schema
of its input, as inference gives it, e.g. once its sources are typed again
after an import (PLAN ยง10.3): a Filter after a Join reads against the
joined columns. An invalid node has no schema, so a Filter after another
one with invalid values is read once that one is: passes repeat until
nothing changes, each turning at least one invalid value into a value. The
query itself comes back when no value was read again.
The query with each Filter's invalid values read again against the schema of its input, as inference gives it, e.g. once its sources are typed again after an import (PLAN ยง10.3): a Filter after a Join reads against the joined columns. An invalid node has no schema, so a Filter after another one with invalid values is read once that one is: passes repeat until nothing changes, each turning at least one invalid value into a value. The query itself comes back when no value was read again.