Issue#192 Support multiple edge types in GO statement (#699)
* 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).
Showing
- src/executor/DeleteVertexExecutor.h 1 addition, 1 deletionsrc/executor/DeleteVertexExecutor.h
- src/executor/FetchEdgesExecutor.cpp 16 additions, 4 deletionssrc/executor/FetchEdgesExecutor.cpp
- src/executor/FetchEdgesExecutor.h 1 addition, 1 deletionsrc/executor/FetchEdgesExecutor.h
- src/executor/FetchVerticesExecutor.cpp 20 additions, 7 deletionssrc/executor/FetchVerticesExecutor.cpp
- src/executor/GoExecutor.cpp 365 additions, 221 deletionssrc/executor/GoExecutor.cpp
- src/executor/GoExecutor.h 13 additions, 26 deletionssrc/executor/GoExecutor.h
- src/executor/test/FetchVerticesTest.cpp 4 additions, 4 deletionssrc/executor/test/FetchVerticesTest.cpp
- src/executor/test/GoTest.cpp 151 additions, 21 deletionssrc/executor/test/GoTest.cpp
- src/executor/test/OrderByTest.cpp 4 additions, 2 deletionssrc/executor/test/OrderByTest.cpp
- src/executor/test/SetTest.cpp 56 additions, 45 deletionssrc/executor/test/SetTest.cpp
- src/parser/Clauses.cpp 21 additions, 2 deletionssrc/parser/Clauses.cpp
- src/parser/Clauses.h 40 additions, 17 deletionssrc/parser/Clauses.h
- src/parser/parser.yy 56 additions, 16 deletionssrc/parser/parser.yy
This diff is collapsed.
Please register or sign in to comment