class SubqueryAnalyzer {

    private final RelationAnalyzer relationAnalyzer;
    private final StatementAnalysisContext statementAnalysisContext;

    public SubqueryAnalyzer(RelationAnalyzer relationAnalyzer, StatementAnalysisContext statementAnalysisContext) {
        this.relationAnalyzer = relationAnalyzer;
        this.statementAnalysisContext = statementAnalysisContext;
    }

    public AnalyzedRelation analyze(Query query) {<FILL_FUNCTION_BODY>}
}

        // The only non-queried relations are base tables - which cannot occur as part of a subquery. so this cast is safe.
        return relationAnalyzer.analyze(query, statementAnalysisContext);
    
<no_super_class>