memgraph/include/storage/indexes/index_update.hpp
2016-09-17 15:31:35 +01:00

44 lines
806 B
C++

#pragma once
#include "storage/indexes/index_record.hpp"
#include "storage/type_group_edge.hpp"
#include "storage/type_group_vertex.hpp"
struct IndexUpdateEdge
{
EdgeRecord *vlist;
Edge *record;
};
struct IndexUpdateVertex
{
VertexRecord *vlist;
Vertex *record;
};
// based of IndexUpdate objects IndexRecords are created
// at the end of transaction (inside commit called on DbAccessor)
struct IndexUpdate
{
enum
{
EDGE,
VERTEX
} tag;
union
{
IndexUpdateEdge e;
IndexUpdateVertex v;
};
};
template <class T, class V>
IndexUpdate make_index_update(V *vlist, T *record);
template <>
IndexUpdate make_index_update(EdgeRecord *vlist, Edge *record);
template <>
IndexUpdate make_index_update(VertexRecord *vlist, Vertex *record);