15 #ifndef ENGINES_GRAPH_DB_DATABASE_OPERATIONS_H_
16 #define ENGINES_GRAPH_DB_DATABASE_OPERATIONS_H_
19 #include <unordered_map>
26 #include <rapidjson/document.h>
49 rapidjson::Document&& input_json);
51 rapidjson::Document&& input_json);
53 rapidjson::Document&& input_json);
55 rapidjson::Document&& input_json);
58 std::unordered_map<std::string, std::string>&& params);
61 std::unordered_map<std::string, std::string>&& params);
63 rapidjson::Document&& input_json);
65 rapidjson::Document&& input_json);
76 std::vector<std::string>& input_property_names,
bool is_get =
false);
79 const std::string& src_label,
80 const std::string& dst_label,
81 const std::string& edge_label,
82 std::string& property_name,
95 std::vector<EdgeData>&& edge_data,
98 std::vector<EdgeData>&& edge_data,
101 std::vector<EdgeData>&& edge_data,
112 std::vector<EdgeData>&& edge_data,
const std::string& property_name,
113 GraphDBSession& session, rapidjson::Document::AllocatorType& allocator);
115 std::vector<VertexData>&& vertex_data,
116 const std::vector<std::string>& property_names,
GraphDBSession& session,
117 rapidjson::Document::AllocatorType& allocator);
Definition: graph_db_operations.h:46
static Status checkVertexSchema(const Schema &schema, VertexData &vertex, const std::string &label, std::vector< std::string > &input_property_names, bool is_get=false)
Definition: graph_db_operations.cc:346
static Result< std::string > UpdateEdge(GraphDBSession &session, rapidjson::Document &&input_json)
Definition: graph_db_operations.cc:151
static EdgeData inputEdge(const rapidjson::Value &edge_json, const Schema &schema, GraphDBSession &session)
Definition: graph_db_operations.cc:299
static Result< rapidjson::Value > getVertex(std::vector< VertexData > &&vertex_data, const std::vector< std::string > &property_names, GraphDBSession &session, rapidjson::Document::AllocatorType &allocator)
Definition: graph_db_operations.cc:671
static Status singleInsertVertex(std::vector< VertexData > &&vertex_data, std::vector< EdgeData > &&edge_data, GraphDBSession &session)
Definition: graph_db_operations.cc:497
static Status checkEdgeSchema(const Schema &schema, EdgeData &edge, const std::string &src_label, const std::string &dst_label, const std::string &edge_label, std::string &property_name, bool is_get=false)
Definition: graph_db_operations.cc:378
static Result< std::string > GetEdge(GraphDBSession &session, std::unordered_map< std::string, std::string > &¶ms)
Definition: graph_db_operations.cc:206
static Status multiInsert(std::vector< VertexData > &&vertex_data, std::vector< EdgeData > &&edge_data, GraphDBSession &session)
Definition: graph_db_operations.cc:526
static Result< rapidjson::Value > getEdge(std::vector< EdgeData > &&edge_data, const std::string &property_name, GraphDBSession &session, rapidjson::Document::AllocatorType &allocator)
Definition: graph_db_operations.cc:698
static Result< std::string > DeleteEdge(GraphDBSession &session, rapidjson::Document &&input_json)
Definition: graph_db_operations.cc:255
static Result< std::string > CreateEdge(GraphDBSession &session, rapidjson::Document &&input_json)
Definition: graph_db_operations.cc:87
static Status updateEdge(std::vector< EdgeData > &&edge_data, GraphDBSession &session)
Definition: graph_db_operations.cc:634
static Status checkEdgeExists(const std::vector< EdgeData > &edge_data, GraphDBSession &session)
Definition: graph_db_operations.cc:449
static VertexData inputVertex(const rapidjson::Value &vertex_json, const Schema &schema, GraphDBSession &session)
Definition: graph_db_operations.cc:262
static Status checkVertexExists(const std::vector< VertexData > &vertex_data, GraphDBSession &session)
Definition: graph_db_operations.cc:479
static Status insertEdge(std::vector< EdgeData > &&edge_data, GraphDBSession &session)
Definition: graph_db_operations.cc:593
static Result< std::string > UpdateVertex(GraphDBSession &session, rapidjson::Document &&input_json)
Definition: graph_db_operations.cc:117
static Status singleInsertEdge(std::vector< EdgeData > &&edge_data, GraphDBSession &session)
Definition: graph_db_operations.cc:573
static Result< std::string > CreateVertex(GraphDBSession &session, rapidjson::Document &&input_json)
Definition: graph_db_operations.cc:45
static Status insertVertex(std::vector< VertexData > &&vertex_data, std::vector< EdgeData > &&edge_data, GraphDBSession &session)
Definition: graph_db_operations.cc:554
static Result< std::string > DeleteVertex(GraphDBSession &session, rapidjson::Document &&input_json)
Definition: graph_db_operations.cc:249
static Result< std::string > GetVertex(GraphDBSession &session, std::unordered_map< std::string, std::string > &¶ms)
Definition: graph_db_operations.cc:180
static Status updateVertex(std::vector< VertexData > &&vertex_data, GraphDBSession &session)
Definition: graph_db_operations.cc:607
static Status checkEdgeExistsWithInsert(const std::vector< EdgeData > &edge_data, GraphDBSession &session)
Definition: graph_db_operations.cc:419
Definition: graph_db_session.h:36
Definition: adj_list.h:23
uint8_t label_t
Definition: types.h:32
Definition: graph_db_operations.h:38
Any property_value
Definition: graph_db_operations.h:41
label_t dst_label_id
Definition: graph_db_operations.h:39
Any src_pk_value
Definition: graph_db_operations.h:40
~EdgeData()
Definition: graph_db_operations.h:43
EdgeData()
Definition: graph_db_operations.h:42
Any dst_pk_value
Definition: graph_db_operations.h:40
label_t src_label_id
Definition: graph_db_operations.h:39
label_t edge_label_id
Definition: graph_db_operations.h:39
Definition: graph_db_operations.h:30
std::vector< Any > properties
Definition: graph_db_operations.h:33
label_t label_id
Definition: graph_db_operations.h:32
Any pk_value
Definition: graph_db_operations.h:31
~VertexData()
Definition: graph_db_operations.h:35
VertexData()
Definition: graph_db_operations.h:34