Uploaded image for project: 'Tajo (Retired)'
  1. Tajo (Retired)
  2. TAJO-92

LogicalNode misses some fields when it converts to json

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Duplicate
    • None
    • 0.2-incubating
    • Planner/Optimizer
    • None

    Description

      See title. The below code reproduces the error

          PlanningContext context = analyzer.parse(
                  "select table0.age, count(*) as count_age from table0 group by table0.age");
      
          LogicalNode plan = logicalPlanner.createPlan(context);
          plan = LogicalOptimizer.optimize(context, plan);
      
          String planJSON = plan.toJSON();
      
          LogicalNode planFromJSON = GsonCreator.getInstance().fromJson(planJSON, LogicalNode.class);
      
          MasterPlan globalPlan = planner.build(queryId, (LogicalRootNode) planFromJSON);
      
      com.google.protobuf.UninitializedMessageException: Message missing required fields: type
      	at com.google.protobuf.AbstractMessage$Builder.newUninitializedMessageException(AbstractMessage.java:605)
      	at org.apache.tajo.catalog.proto.CatalogProtos$FunctionDescProto$Builder.build(CatalogProtos.java:6999)
      	at org.apache.tajo.catalog.FunctionDesc.mergeLocalToProto(FunctionDesc.java:231)
      	at org.apache.tajo.catalog.FunctionDesc.getProto(FunctionDesc.java:193)
      	at org.apache.tajo.catalog.FunctionDesc.equals(FunctionDesc.java:168)
      	at org.apache.tajo.util.TUtil.checkEquals(TUtil.java:44)
      	at org.apache.tajo.engine.eval.FuncEval.equals(FuncEval.java:93)
      	at org.apache.tajo.engine.planner.PlannerUtil.transformGroupbyTo2P(PlannerUtil.java:196)
      	at org.apache.tajo.engine.planner.PlannerUtil.transformGroupbyTo2PWithStore(PlannerUtil.java:242)
      	at org.apache.tajo.master.GlobalPlanner$GlobalPlanBuilder.visit(GlobalPlanner.java:136)
      	at org.apache.tajo.engine.planner.logical.UnaryNode.postOrder(UnaryNode.java:66)
      	at org.apache.tajo.engine.planner.logical.UnaryNode.postOrder(UnaryNode.java:65)
      	at org.apache.tajo.engine.planner.logical.UnaryNode.postOrder(UnaryNode.java:65)
      	at org.apache.tajo.master.GlobalPlanner.convertTo2Phase(GlobalPlanner.java:279)
      	at org.apache.tajo.master.GlobalPlanner.build(GlobalPlanner.java:99)
      

      Attachments

        1. TAJO-92_TEST.patch
          3 kB
          Hyoungjun Kim

        Issue Links

          Activity

            People

              Unassigned Unassigned
              hjkim Hyoungjun Kim
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: