Skip to content
Snippets Groups Projects
  • Simon Liu's avatar
    Issue#192 Support multiple edge types in GO statement (#699) · f1384d44
    Simon Liu authored
    *     Issue#192 Support multiple edge types in GO statement
    
    Summary:
    Implemented over multiple edge types(include over "*" ) for Support all edge type in Go statement.
    
    1. Modification of the storage interface:
       1.1 Modify the GetNeighborsRequest structure, pass a list of edge_type to the storage layer.
       1.2 And add an over_all_edges tag to mark "over *".
           Modify the PropDef structure to represent both tag_id and edge_type
       1.3 Added the EdgeData structure to represent the edge data returned to the client.
    2. When the yield statement does not exist, rename the "_dst" attribute of edge to edge_name+"_id"
    3. Delete the getOutBound and getInBound interfaces,
       because the edges passed to the storage may have both in and out.
    4  Added a map of edge type to edge name for metaclien (toEdgeName)
    
    PS:
    There are still two issues that need to be implemented.
    1 Since we are not implementing a null type, we cannot represent some non-existing attributes.
    2 Due to the existence of 1, there is currently no judgment on the attributes of the edges and the vetex.
    So when returning multiple types of vetex/edge,
    the same result will be returned if the attribute names are the same("MULTI_EDGES" test in GoTest.cpp).
    
    * 1. add more test.
    2. Solved the problem of display when some properties are not present(return the default value to the user).
    
    for example:
    type             default
    int              0
    bool             false
    double/float     0.0
    
    * format the code style.
    
    * 1. When yield does not exist, don't implicitly rename _dst prop.
    2. format some code style.
    
    * Fixed an problem where the results might be incorrect when using multiple edges with filter.
    
    * Modify the storage interface to move the schema from tagdata/edgedata to QueryResponse.
    
    * Address dangleptr's and wadeliuyi's comments.
    
    *  Address dangleptr's and laura's comments.
    
    * Address laura's comments.
    
    *      Address dangleptr's comments.
    
    * Address dangleptr's comments.
    
    * Address dangleptr's comments.
    
    * fixed the unit test failed(go_test and orderbytest).
    f1384d44