Search in sources :

Example 1 with AddEdgeKindRequest

use of com.alibaba.graphscope.groot.schema.request.AddEdgeKindRequest in project GraphScope by alibaba.

the class DdlExecutorTest method testExecutor.

@Test
void testExecutor() throws InvalidProtocolBufferException {
    PropertyValue defaultValue = new PropertyValue(DataType.INT, ByteBuffer.allocate(Integer.BYTES).putInt(1).array());
    PropertyDef propertyDef = new PropertyDef(1, 1, "p1", DataType.INT, defaultValue, true, "property_1");
    TypeDef vertexTypeDef = TypeDef.newBuilder().setLabel("vertex1").addPropertyDef(propertyDef).setTypeEnum(TypeEnum.VERTEX).build();
    TypeDef edgeTypeDef = TypeDef.newBuilder().setLabel("edge1").addPropertyDef(propertyDef).setTypeEnum(TypeEnum.EDGE).build();
    EdgeKind edgeKind = EdgeKind.newBuilder().setEdgeLabel("edge1").setDstVertexLabel("vertex1").setSrcVertexLabel("vertex1").build();
    GraphDef graphDef = GraphDef.newBuilder().build();
    DdlExecutors ddlExecutors = new DdlExecutors();
    DdlRequestBatch.Builder requestBatchBuilder = DdlRequestBatch.newBuilder();
    requestBatchBuilder.addDdlRequest(new CreateVertexTypeRequest(vertexTypeDef));
    requestBatchBuilder.addDdlRequest(new CreateEdgeTypeRequest(edgeTypeDef));
    requestBatchBuilder.addDdlRequest(new AddEdgeKindRequest(edgeKind));
    DdlRequestBatch ddlRequestBatch = requestBatchBuilder.build();
    // Test serde
    ByteString bytes = ddlRequestBatch.toProto().toByteString();
    assertEquals(DdlRequestBatch.parseProto(DdlRequestBatchPb.parseFrom(bytes)), ddlRequestBatch);
    DdlResult ddlResult = ddlExecutors.executeDdlRequestBatch(ddlRequestBatch, graphDef, 1);
    LabelId vertexLabelId = new LabelId(1);
    LabelId edgeLabelId = new LabelId(2);
    EdgeKind edgeKindWithId = EdgeKind.newBuilder(edgeKind).setEdgeLabelId(edgeLabelId).setSrcVertexLabelId(vertexLabelId).setDstVertexLabelId(vertexLabelId).build();
    TypeDef vertexTypeWithId = TypeDef.newBuilder(vertexTypeDef).setLabelId(vertexLabelId).build();
    TypeDef edgeTypeWithId = TypeDef.newBuilder(edgeTypeDef).setLabelId(edgeLabelId).build();
    graphDef = GraphDef.newBuilder(graphDef).setVersion(3).setLabelIdx(2).setPropertyIdx(1).putPropertyNameToId("p1", 1).addTypeDef(vertexTypeWithId).putVertexTableId(vertexTypeWithId.getTypeLabelId(), 1L).addTypeDef(edgeTypeWithId).addEdgeKind(edgeKindWithId).putEdgeTableId(edgeKindWithId, 2L).setTableIdx(2L).build();
    assertEquals(graphDef, ddlResult.getGraphDef());
    List<Operation> ddlOperations = ddlResult.getDdlOperations();
    assertEquals(ddlOperations.size(), 3);
    assertEquals(ddlOperations.get(0).toBlob().toProto(), new CreateVertexTypeOperation(0, 1L, vertexTypeWithId, 1L).toBlob().toProto());
    assertEquals(ddlOperations.get(1).toBlob().toProto(), new CreateEdgeTypeOperation(0, 2L, edgeTypeWithId).toBlob().toProto());
    assertEquals(ddlOperations.get(2).toBlob().toProto(), new AddEdgeKindOperation(0, 3L, edgeKindWithId, 2L).toBlob().toProto());
    assertEquals(GraphDef.parseProto(GraphDefPb.parseFrom(graphDef.toProto().toByteString())), graphDef);
    requestBatchBuilder = DdlRequestBatch.newBuilder();
    requestBatchBuilder.addDdlRequest(new RemoveEdgeKindRequest(edgeKind));
    requestBatchBuilder.addDdlRequest(new DropEdgeTypeRequest(edgeTypeDef.getLabel()));
    requestBatchBuilder.addDdlRequest(new DropVertexTypeRequest(vertexTypeDef.getLabel()));
    ddlResult = ddlExecutors.executeDdlRequestBatch(requestBatchBuilder.build(), graphDef, 1);
    graphDef = GraphDef.newBuilder(graphDef).setVersion(6).removeEdgeKind(edgeKindWithId).removeTypeDef(edgeTypeDef.getLabel()).removeTypeDef(vertexTypeDef.getLabel()).clearUnusedPropertyName(Collections.emptySet()).build();
    assertEquals(graphDef, ddlResult.getGraphDef());
    ddlOperations = ddlResult.getDdlOperations();
    assertEquals(ddlOperations.size(), 3);
    assertEquals(ddlOperations.get(0).toBlob().toProto(), new RemoveEdgeKindOperation(0, 4L, edgeKindWithId).toBlob().toProto());
    assertEquals(ddlOperations.get(1).toBlob().toProto(), new DropEdgeTypeOperation(0, 5L, edgeLabelId).toBlob().toProto());
    assertEquals(ddlOperations.get(2).toBlob().toProto(), new DropVertexTypeOperation(0, 6L, vertexLabelId).toBlob().toProto());
}
Also used : PropertyDef(com.alibaba.maxgraph.sdkcommon.schema.PropertyDef) ByteString(com.google.protobuf.ByteString) EdgeKind(com.alibaba.maxgraph.sdkcommon.schema.EdgeKind) CreateVertexTypeOperation(com.alibaba.graphscope.groot.operation.ddl.CreateVertexTypeOperation) CreateEdgeTypeOperation(com.alibaba.graphscope.groot.operation.ddl.CreateEdgeTypeOperation) DropVertexTypeOperation(com.alibaba.graphscope.groot.operation.ddl.DropVertexTypeOperation) Operation(com.alibaba.graphscope.groot.operation.Operation) DropEdgeTypeOperation(com.alibaba.graphscope.groot.operation.ddl.DropEdgeTypeOperation) RemoveEdgeKindOperation(com.alibaba.graphscope.groot.operation.ddl.RemoveEdgeKindOperation) AddEdgeKindOperation(com.alibaba.graphscope.groot.operation.ddl.AddEdgeKindOperation) RemoveEdgeKindRequest(com.alibaba.graphscope.groot.schema.request.RemoveEdgeKindRequest) DropVertexTypeOperation(com.alibaba.graphscope.groot.operation.ddl.DropVertexTypeOperation) TypeDef(com.alibaba.maxgraph.sdkcommon.schema.TypeDef) CreateVertexTypeOperation(com.alibaba.graphscope.groot.operation.ddl.CreateVertexTypeOperation) AddEdgeKindOperation(com.alibaba.graphscope.groot.operation.ddl.AddEdgeKindOperation) DropVertexTypeRequest(com.alibaba.graphscope.groot.schema.request.DropVertexTypeRequest) DdlRequestBatch(com.alibaba.graphscope.groot.schema.request.DdlRequestBatch) CreateEdgeTypeOperation(com.alibaba.graphscope.groot.operation.ddl.CreateEdgeTypeOperation) RemoveEdgeKindOperation(com.alibaba.graphscope.groot.operation.ddl.RemoveEdgeKindOperation) AddEdgeKindRequest(com.alibaba.graphscope.groot.schema.request.AddEdgeKindRequest) PropertyValue(com.alibaba.maxgraph.sdkcommon.schema.PropertyValue) GraphDef(com.alibaba.maxgraph.sdkcommon.schema.GraphDef) DdlExecutors(com.alibaba.graphscope.groot.schema.ddl.DdlExecutors) DropEdgeTypeOperation(com.alibaba.graphscope.groot.operation.ddl.DropEdgeTypeOperation) CreateVertexTypeRequest(com.alibaba.graphscope.groot.schema.request.CreateVertexTypeRequest) LabelId(com.alibaba.maxgraph.sdkcommon.schema.LabelId) DropEdgeTypeRequest(com.alibaba.graphscope.groot.schema.request.DropEdgeTypeRequest) CreateEdgeTypeRequest(com.alibaba.graphscope.groot.schema.request.CreateEdgeTypeRequest) DdlResult(com.alibaba.graphscope.groot.schema.ddl.DdlResult) Test(org.junit.jupiter.api.Test)

Aggregations

Operation (com.alibaba.graphscope.groot.operation.Operation)1 AddEdgeKindOperation (com.alibaba.graphscope.groot.operation.ddl.AddEdgeKindOperation)1 CreateEdgeTypeOperation (com.alibaba.graphscope.groot.operation.ddl.CreateEdgeTypeOperation)1 CreateVertexTypeOperation (com.alibaba.graphscope.groot.operation.ddl.CreateVertexTypeOperation)1 DropEdgeTypeOperation (com.alibaba.graphscope.groot.operation.ddl.DropEdgeTypeOperation)1 DropVertexTypeOperation (com.alibaba.graphscope.groot.operation.ddl.DropVertexTypeOperation)1 RemoveEdgeKindOperation (com.alibaba.graphscope.groot.operation.ddl.RemoveEdgeKindOperation)1 DdlExecutors (com.alibaba.graphscope.groot.schema.ddl.DdlExecutors)1 DdlResult (com.alibaba.graphscope.groot.schema.ddl.DdlResult)1 AddEdgeKindRequest (com.alibaba.graphscope.groot.schema.request.AddEdgeKindRequest)1 CreateEdgeTypeRequest (com.alibaba.graphscope.groot.schema.request.CreateEdgeTypeRequest)1 CreateVertexTypeRequest (com.alibaba.graphscope.groot.schema.request.CreateVertexTypeRequest)1 DdlRequestBatch (com.alibaba.graphscope.groot.schema.request.DdlRequestBatch)1 DropEdgeTypeRequest (com.alibaba.graphscope.groot.schema.request.DropEdgeTypeRequest)1 DropVertexTypeRequest (com.alibaba.graphscope.groot.schema.request.DropVertexTypeRequest)1 RemoveEdgeKindRequest (com.alibaba.graphscope.groot.schema.request.RemoveEdgeKindRequest)1 EdgeKind (com.alibaba.maxgraph.sdkcommon.schema.EdgeKind)1 GraphDef (com.alibaba.maxgraph.sdkcommon.schema.GraphDef)1 LabelId (com.alibaba.maxgraph.sdkcommon.schema.LabelId)1 PropertyDef (com.alibaba.maxgraph.sdkcommon.schema.PropertyDef)1