Search in sources :

Example 11 with IDataTupleCreator

use of com.qlangtech.tis.sql.parser.tuple.creator.IDataTupleCreator in project tis by qlangtech.

the class SqlTaskNode method parse.

public TableTupleCreator parse(boolean parseAllRefTab) {
    if (tupleCterator != null) {
        return this.tupleCterator;
    }
    this.tupleCterator = new TableTupleCreator(this.exportName.getTabName(), nodetype);
    tupleCterator.setRealEntityName(this.exportName);
    try {
        Query query = parseQuery(this.getContent());
        StreamTransformVisitor v = new StreamTransformVisitor(this.dumpNodesContext);
        query.accept(v, new StackableAstVisitorContext<>(1));
        ColRef colsRefs = v.getColsRef();
        tupleCterator.setColsRefs(colsRefs);
        // TaskNode 識別
        if (parseAllRefTab) {
            for (Map.Entry<String, IDataTupleCreator> /**
             * ref
             */
            entry : colsRefs.getBaseRefEntities()) {
                entry.getValue().accept(taskNodeRecognizedVisitor);
            }
        }
        return tupleCterator;
    } catch (Exception e) {
        throw new RuntimeException("exportName:" + this.exportName, e);
    }
}
Also used : ColRef(com.qlangtech.tis.sql.parser.tuple.creator.impl.ColRef) StreamTransformVisitor(com.qlangtech.tis.sql.parser.visitor.StreamTransformVisitor) IDataTupleCreator(com.qlangtech.tis.sql.parser.tuple.creator.IDataTupleCreator) TableTupleCreator(com.qlangtech.tis.sql.parser.tuple.creator.impl.TableTupleCreator) Query(com.facebook.presto.sql.tree.Query) Map(java.util.Map)

Aggregations

IDataTupleCreator (com.qlangtech.tis.sql.parser.tuple.creator.IDataTupleCreator)11 ColRef (com.qlangtech.tis.sql.parser.tuple.creator.impl.ColRef)6 TableTupleCreator (com.qlangtech.tis.sql.parser.tuple.creator.impl.TableTupleCreator)5 FunctionDataTupleCreator (com.qlangtech.tis.sql.parser.tuple.creator.impl.FunctionDataTupleCreator)4 Map (java.util.Map)3 Query (com.facebook.presto.sql.tree.Query)2 ColName (com.qlangtech.tis.sql.parser.ColName)2 NodeProcessResult (com.qlangtech.tis.sql.parser.NodeProcessResult)2 StreamTransformVisitor (com.qlangtech.tis.sql.parser.visitor.StreamTransformVisitor)2 com.facebook.presto.sql.tree (com.facebook.presto.sql.tree)1 Type (com.facebook.presto.sql.tree.Join.Type)1 StackableAstVisitorContext (com.facebook.presto.sql.tree.TISStackableAstVisitor.StackableAstVisitorContext)1 Joiner (com.google.common.base.Joiner)1 ColumnMetaData (com.qlangtech.tis.plugin.ds.ColumnMetaData)1 DataType (com.qlangtech.tis.plugin.ds.DataType)1 IDumpNodeMapContext (com.qlangtech.tis.sql.parser.IDumpNodeMapContext)1 TisGroupBy (com.qlangtech.tis.sql.parser.TisGroupBy)1 TisGroup (com.qlangtech.tis.sql.parser.TisGroupBy.TisGroup)1 TabCriteriaEntityRecognizeVisitor (com.qlangtech.tis.sql.parser.tuple.creator.impl.TabCriteriaEntityRecognizeVisitor)1 NodeUtils (com.qlangtech.tis.sql.parser.utils.NodeUtils)1