The top level navigator requires three separate components that visit different parts of the query (expressions, references, and from-items)... It might be much simpler to have a single monolithic Visitor that covers all the visit() methods even if that was a large number of methods.
Issues to consider:
- re-use of navigator components is currently sketchy depending on whether they have/accumulate state or not
- would be good to allow sub-select in the from clause, but that means recursion support (especially in the SelectListExtractor which has to percolate column metadata out to the top-level select)
The top level navigator requires three separate components that visit different parts of the query (expressions, references, and from-items)... It might be much simpler to have a single monolithic Visitor that covers all the visit() methods even if that was a large number of methods.
Issues to consider: