Go to the documentation of this file.
16 #ifndef GRAPHSCOPE_DATABASE_READ_TRANSACTION_H_
17 #define GRAPHSCOPE_DATABASE_READ_TRANSACTION_H_
28 class MutablePropertyFragment;
30 template <
typename EDATA_T>
91 template <
typename EDATA_T>
104 template <
typename FUNC_T>
106 const FUNC_T& func)
const {
107 const auto& edges =
csr_.get_edges(v);
108 auto ptr = edges.end() - 1;
109 auto end = edges.begin() - 1;
118 if (!(ptr->data < min_value) && (ptr->data < max_value)) {
119 func(*ptr, min_value, max_value);
126 ptr = std::upper_bound(end + 1, ptr + 1, max_value,
132 if (ptr->data < min_value) {
135 func(*ptr, min_value, max_value);
141 template <
typename FUNC_T>
143 const auto& edges =
csr_.get_edges(v);
144 auto ptr = edges.end() - 1;
145 auto end = edges.begin() - 1;
154 if (min_value < ptr->data) {
155 func(*ptr, min_value);
160 if (!(min_value < ptr->data)) {
163 func(*ptr, min_value);
169 template <
typename FUNC_T>
171 const auto& edges =
csr_.get_edges(v);
172 auto ptr = edges.end() - 1;
173 auto end = edges.begin() - 1;
182 if (!(ptr->data < min_value)) {
183 func(*ptr, min_value);
188 if (ptr->data < min_value) {
191 func(*ptr, min_value);
202 template <
typename EDATA_T>
213 return csr_.get_edge(v);
233 return csr_.get_edge(v);
241 template <
typename EDATA_T>
248 return (
csr_.get_edge(v).neighbor != std::numeric_limits<vid_t>::max());
252 return csr_.get_edge(v);
266 return (
csr_.get_edge(v).neighbor != std::numeric_limits<vid_t>::max());
270 return csr_.get_edge(v);
292 uint8_t label,
const std::string& col_name)
const {
322 std::shared_ptr<CsrConstEdgeIterBase> iter);
341 std::shared_ptr<CsrConstEdgeIterBase>
iter_;
362 template <
typename EDATA_T>
371 template <
typename EDATA_T>
382 template <
typename EDATA_T>
391 template <
typename EDATA_T>
400 template <
typename EDATA_T>
408 template <
typename EDATA_T>
416 template <
typename EDATA_T>
424 template <
typename EDATA_T>
442 #endif // GRAPHSCOPE_DATABASE_READ_TRANSACTION_H_
vertex_iterator FindVertex(label_t label, const Any &id) const
Definition: read_transaction.cc:94
Definition: read_transaction.h:296
SingleGraphView(const SingleMutableCsr< std::string_view > &csr, timestamp_t timestamp)
Definition: read_transaction.h:224
slice_t edges_
Definition: read_transaction.h:87
bool GetVertexIndex(label_t label, const Any &id, vid_t &index) const
Definition: read_transaction.cc:104
vid_t GetNeighbor() const
Definition: read_transaction.cc:77
const_nbr_ptr_t ptr_
Definition: read_transaction.h:66
nbr_iterator end() const
Definition: read_transaction.h:80
bool exist(vid_t v) const
Definition: read_transaction.h:208
VersionManager & vm_
Definition: read_transaction.h:436
Any GetVertexId(label_t label, vid_t index) const
Definition: read_transaction.cc:113
int FieldNum() const
Definition: read_transaction.cc:55
uint32_t timestamp_t
Definition: types.h:30
ReadTransaction(const MutablePropertyFragment &graph, VersionManager &vm, timestamp_t timestamp)
Definition: read_transaction.cc:22
SingleImmutableGraphView(const SingleImmutableCsr< EDATA_T > &csr)
Definition: read_transaction.h:244
Any GetId() const
Definition: read_transaction.cc:46
Definition: read_transaction.h:203
vid_t GetIndex() const
Definition: read_transaction.cc:49
AdjListView< EDATA_T > GetIncomingEdges(label_t v_label, vid_t v, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:372
uint32_t vid_t
Definition: types.h:31
const SingleImmutableCsr< std::string_view > & csr_
Definition: read_transaction.h:274
ImmutableNbr< std::string_view > get_edge(vid_t v) const
Definition: read_transaction.h:269
timestamp_t timestamp() const
Definition: read_transaction.cc:27
const MutableNbr< EDATA_T > & get_edge(vid_t v) const
Definition: read_transaction.h:212
const ImmutableNbr< EDATA_T > & get_edge(vid_t v) const
Definition: read_transaction.h:251
void foreach_edges_gt(vid_t v, EDATA_T &min_value, const FUNC_T &func) const
Definition: read_transaction.h:142
void release()
Definition: read_transaction.cc:131
Definition: read_transaction.h:319
Definition: adj_list.h:23
label_t label_
Definition: read_transaction.h:313
const_nbr_ptr_t operator->() const
Definition: read_transaction.h:47
std::shared_ptr< CsrConstEdgeIterBase > iter_
Definition: read_transaction.h:341
const_nbr_ptr_t begin() const
Definition: nbr.h:267
void foreach_edges_between(vid_t v, EDATA_T &min_value, EDATA_T &max_value, const FUNC_T &func) const
Definition: read_transaction.h:105
bool operator==(const nbr_iterator &rhs) const
Definition: read_transaction.h:57
timestamp_t unsorted_since_
Definition: read_transaction.h:199
edge_iterator GetInEdgeIterator(label_t label, vid_t u, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.cc:123
Any GetField(int col_id) const
Definition: read_transaction.cc:51
bool exist(vid_t v) const
Definition: read_transaction.h:265
Definition: read_transaction.h:32
nbr_iterator begin() const
Definition: read_transaction.h:77
Definition: mutable_property_fragment.h:37
timestamp_t timestamp_
Definition: read_transaction.h:437
void Goto(vid_t target)
Definition: read_transaction.cc:42
const MutableCsr< EDATA_T > & csr_
Definition: read_transaction.h:197
Definition: read_transaction.h:31
timestamp_t timestamp_
Definition: read_transaction.h:68
CsrBase * get_ie_csr(label_t label, label_t neighbor_label, label_t edge_label)
Definition: mutable_property_fragment.cc:484
const_nbr_ptr_t end_
Definition: read_transaction.h:67
const_nbr_ptr_t end() const
Definition: nbr.h:268
EDATA_T data
Definition: nbr.h:221
vertex_iterator(label_t label, vid_t cur, vid_t num, const MutablePropertyFragment &graph)
Definition: read_transaction.cc:35
const SingleMutableCsr< EDATA_T > & csr_
Definition: read_transaction.h:217
AdjListView< EDATA_T > get_edges(vid_t v) const
Definition: read_transaction.h:99
const_nbr_t & operator*() const
Definition: read_transaction.h:45
void foreach_edges_ge(vid_t v, EDATA_T &min_value, const FUNC_T &func) const
Definition: read_transaction.h:170
GraphView(const MutableCsr< EDATA_T > &csr, timestamp_t timestamp)
Definition: read_transaction.h:94
void Next()
Definition: read_transaction.cc:75
bool exist(vid_t v) const
Definition: read_transaction.h:247
vertex_iterator GetVertexIterator(label_t label) const
Definition: read_transaction.cc:89
bool IsValid() const
Definition: read_transaction.cc:40
Definition: immutable_csr.h:326
GraphView< EDATA_T > GetIncomingGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:392
Definition: version_manager.h:34
Definition: mutable_csr.h:183
typename MutableNbrSlice< EDATA_T >::const_nbr_ptr_t const_nbr_ptr_t
Definition: read_transaction.h:34
Definition: read_transaction.h:242
const Schema & schema() const
Definition: read_transaction.cc:129
AdjListView< EDATA_T > GetOutgoingEdges(label_t v_label, vid_t v, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:363
label_t edge_label_
Definition: read_transaction.h:339
Definition: read_transaction.h:277
Definition: immutable_csr.h:512
Definition: csr_base.h:135
vid_t GetVertexNum(label_t label) const
Definition: read_transaction.cc:109
SingleGraphView< EDATA_T > GetIncomingSingleGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:409
AdjListView(const slice_t &slice, timestamp_t timestamp)
Definition: read_transaction.h:74
void Next()
Definition: read_transaction.cc:41
const MutablePropertyFragment & graph_
Definition: read_transaction.h:316
typename MutableNbrSlice< EDATA_T >::const_nbr_t const_nbr_t
Definition: read_transaction.h:33
CsrBase * get_oe_csr(label_t label, label_t neighbor_label, label_t edge_label)
Definition: mutable_property_fragment.cc:468
SingleGraphView(const SingleMutableCsr< EDATA_T > &csr, timestamp_t timestamp)
Definition: read_transaction.h:205
label_t GetEdgeLabel() const
Definition: read_transaction.cc:85
SingleImmutableGraphView< EDATA_T > GetIncomingSingleImmutableGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:425
label_t neighbor_label_
Definition: read_transaction.h:338
Definition: loading_config.h:232
Definition: mutable_csr.h:745
edge_iterator(label_t neighbor_label, label_t edge_label, std::shared_ptr< CsrConstEdgeIterBase > iter)
Definition: read_transaction.cc:59
SingleImmutableGraphView(const SingleImmutableCsr< std::string_view > &csr)
Definition: read_transaction.h:262
GraphView< EDATA_T > GetOutgoingGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:383
const SingleMutableCsr< std::string_view > & csr_
Definition: read_transaction.h:237
bool IsValid() const
Definition: read_transaction.cc:71
nbr_iterator(const_nbr_ptr_t ptr, const_nbr_ptr_t end, timestamp_t timestamp)
Definition: read_transaction.h:37
Definition: read_transaction.h:92
edge_iterator GetOutEdgeIterator(label_t label, vid_t u, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.cc:117
timestamp_t timestamp_
Definition: read_transaction.h:198
timestamp_t timestamp_
Definition: read_transaction.h:238
~ReadTransaction()
Definition: read_transaction.cc:25
Any GetData() const
Definition: read_transaction.cc:67
label_t GetNeighborLabel() const
Definition: read_transaction.cc:81
const MutablePropertyFragment & graph() const
Definition: read_transaction.cc:33
const std::shared_ptr< ColumnBase > get_vertex_property_column(uint8_t label, const std::string &col_name) const
Definition: read_transaction.h:291
nbr_iterator & operator++()
Definition: read_transaction.h:49
vid_t num_
Definition: read_transaction.h:315
bool operator!=(const nbr_iterator &rhs) const
Definition: read_transaction.h:61
MutableNbr< std::string_view > get_edge(vid_t v) const
Definition: read_transaction.h:232
vid_t cur_
Definition: read_transaction.h:314
void Abort()
Definition: read_transaction.cc:31
Definition: mutable_csr.h:954
int size() const
Definition: nbr.h:263
const SingleImmutableCsr< EDATA_T > & csr_
Definition: read_transaction.h:256
int estimated_degree() const
Definition: read_transaction.h:84
timestamp_t timestamp_
Definition: read_transaction.h:88
bool exist(vid_t v) const
Definition: read_transaction.h:228
timestamp_t timestamp_
Definition: read_transaction.h:218
Table & get_vertex_table(label_t vertex_label)
Definition: mutable_property_fragment.cc:393
SingleGraphView< EDATA_T > GetOutgoingSingleGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:401
uint8_t label_t
Definition: types.h:32
std::shared_ptr< ColumnBase > get_column(const std::string &name)
Definition: table.cc:171
void Commit()
Definition: read_transaction.cc:29
const MutablePropertyFragment & graph_
Definition: read_transaction.h:435
SingleImmutableGraphView< EDATA_T > GetOutgoingSingleImmutableGraphView(label_t v_label, label_t neighbor_label, label_t edge_label) const
Definition: read_transaction.h:417