Search in sources :

Example 6 with WithQueryCommand

use of org.teiid.query.sql.lang.WithQueryCommand in project teiid by teiid.

the class RelationalPlan method clone.

public RelationalPlan clone() {
    RelationalPlan plan = new RelationalPlan((RelationalNode) root.clone());
    plan.setOutputElements(outputCols);
    if (with != null) {
        List<WithQueryCommand> newWith = LanguageObject.Util.deepClone(this.with, WithQueryCommand.class);
        for (WithQueryCommand withQueryCommand : newWith) {
            if (withQueryCommand.isRecursive()) {
                SetQuery setQuery = (SetQuery) withQueryCommand.getCommand();
                setQuery.getLeftQuery().setProcessorPlan(setQuery.getLeftQuery().getProcessorPlan().clone());
                setQuery.getRightQuery().setProcessorPlan(setQuery.getRightQuery().getProcessorPlan().clone());
            } else {
                withQueryCommand.getCommand().setProcessorPlan(withQueryCommand.getCommand().getProcessorPlan().clone());
            }
        }
        plan.setWith(newWith);
    }
    return plan;
}
Also used : SetQuery(org.teiid.query.sql.lang.SetQuery) WithQueryCommand(org.teiid.query.sql.lang.WithQueryCommand)

Aggregations

WithQueryCommand (org.teiid.query.sql.lang.WithQueryCommand)6 SetQuery (org.teiid.query.sql.lang.SetQuery)5 HashMap (java.util.HashMap)1 TupleBuffer (org.teiid.common.buffer.TupleBuffer)1 ProcessorPlan (org.teiid.query.processor.ProcessorPlan)1 QueryProcessor (org.teiid.query.processor.QueryProcessor)1 QueryCommand (org.teiid.query.sql.lang.QueryCommand)1 RecursiveTableProcessor (org.teiid.query.tempdata.TempTableStore.RecursiveTableProcessor)1 TableProcessor (org.teiid.query.tempdata.TempTableStore.TableProcessor)1