org.modeshape.graph.query.optimize
Class ReplaceViews

An optimizer rule that replaces any SOURCE nodes that happen to be views. This rewriting
changes all of the elements of the plan that reference the SOURCE and it's columns, including criteria, project nodes, etc.

For example, here is the portion of a plan that uses a single SOURCE that is defined to use a view.

...
|
SOURCE1

This same SOURCE node is then replaced with the view's definition:

...
|
PROJECT with the list of columns being SELECTed
|
SELECT1
| One or more SELECT plan nodes that each have
SELECT2 a single non-join constraint that are then all AND-ed
| together
SELECTn
|
SOURCE