Skip to content
Snippets Groups Projects
Select Git revision
  • cf41130c08654aba2ba91b334a77df992665ee40
  • master default
2 results

PlanNode.cpp

Blame
  • PlanNode.cpp 3.75 KiB
    /* Copyright (c) 2020 vesoft inc. All rights reserved.
     *
     * This source code is licensed under Apache 2.0 License,
     * attached with Common Clause Condition 1.0, found in the LICENSES directory.
     */
    
    #include "planner/PlanNode.h"
    #include "planner/ExecutionPlan.h"
    
    namespace nebula {
    namespace graph {
    
    PlanNode::PlanNode(ExecutionPlan* plan, Kind kind) : kind_(kind), plan_(plan) {
        DCHECK(plan_ != nullptr);
        plan_->addPlanNode(this);
    }
    
    // static
    const char* PlanNode::toString(PlanNode::Kind kind) {
        switch (kind) {
            case Kind::kUnknown:
                return "Unkonwn";
            case Kind::kStart:
                return "Start";
            case Kind::kGetNeighbors:
                return "GetNeighbors";
            case Kind::kGetVertices:
                return "GetVertices";
            case Kind::kGetEdges:
                return "GetEdges";
            case Kind::kIndexScan:
                return "IndexScan";
            case Kind::kFilter:
                return "Filter";
            case Kind::kUnion:
                return "Union";
            case Kind::kIntersect:
                return "Intersect";
            case Kind::kMinus:
                return "Minus";
            case Kind::kProject:
                return "Project";
            case Kind::kSort:
                return "Sort";
            case Kind::kLimit:
                return "Limit";
            case Kind::kAggregate:
                return "Aggregate";
            case Kind::kSelect:
                return "Select";
            case Kind::kLoop:
                return "Loop";
            case Kind::kDedup:
                return "Dedup";
            case Kind::kMultiOutputs:
                return "MultiOutputs";
            case Kind::kSwitchSpace:
                return "RegisterSpaceToSession";
            case Kind::kCreateSpace:
                return "CreateSpace";
            case Kind::kCreateTag:
                return "CreateTag";
            case Kind::kCreateEdge:
                return "CreateEdge";
            case Kind::kDescSpace:
                return "DescSpace";
            case Kind::kDescTag:
                return "DescTag";
            case Kind::kDescEdge:
                return "DescEdge";
            case Kind::kAlterTag:
                return "AlterTag";
            case Kind::kAlterEdge:
                return "AlterEdge";
            case Kind::kInsertVertices:
                return "InsertVertices";
            case Kind::kInsertEdges:
                return "InsertEdges";
            case Kind::kDataCollect:
                return "DataCollect";
            case Kind::kShowCreateSpace:
                return "ShowCreateSpace";
            case Kind::kShowCreateTag:
                return "ShowCreateTag";
            case Kind::kShowCreateEdge:
                return "ShowCreateEdge";
            case Kind::kDropSpace:
                return "DropSpace";
            case Kind::kDropTag:
                return "DropTag";
            case Kind::kDropEdge:
                return "DropEdge";
            case Kind::kShowSpaces:
                return "kShowSpaces";
            case Kind::kShowTags:
                return "kShowTags";
            case Kind::kShowEdges:
                return "kShowEdges";
            case Kind::kCreateSnapshot:
                return "CreateSnapshot";
            case Kind::kDropSnapshot:
                return "DropSnapshot";
            case Kind::kShowSnapshots:
                return "ShowSnapshots";
            case Kind::kDataJoin:
                return "DataJoin";
            case Kind::kDeleteVertices:
                return "DeleteVertices";
            case Kind::kDeleteEdges:
                return "DeleteEdges";
            case Kind::kUpdateVertex:
                return "UpdateVertex";
            case Kind::kUpdateEdge:
                return "UpdateEdge";
            case Kind::kShowHosts:
                return "ShowHosts";
        }
        LOG(FATAL) << "Impossible kind plan node " << static_cast<int>(kind);
    }
    
    std::ostream& operator<<(std::ostream& os, PlanNode::Kind kind) {
        os << PlanNode::toString(kind);
        return os;
    }
    
    }   // namespace graph
    }   // namespace nebula