A simple structure like:
will reject creating a cost based dependent join over the union if the number of independent values seems too large for a virtual dependent join.
A related issue is that
TEIID-5020 introduced a regression when creating a dependent join that is eventually pushed over a union below an access node:
the logic attempts to move nested dependent select back above the access node - so that only a single dependent predicate exists - based upon the node that is created at a child. However if the child projects a literal into the dependent set criteria, then the result is invalid.