SWC-DB  v0.5.12 C++ documentations
SWC-DB© (Super Wide Column Database) - High Performance Scalable Database (https://github.com/kashirin-alex/swc-db)
Columns.h
Go to the documentation of this file.
1 /*
2  * SWC-DB© Copyright since 2019 Alex Kashirin <kashirin.alex@gmail.com>
3  * License details at <https://github.com/kashirin-alex/swc-db/#license>
4  */
5 
6 
7 #ifndef swcdb_ranger_db_Columns_h
8 #define swcdb_ranger_db_Columns_h
9 
11 
12 namespace SWC { namespace Ranger {
13 class Column;
14 typedef std::shared_ptr<Column> ColumnPtr;
15 class Range;
16 typedef std::shared_ptr<Range> RangePtr;
17 }}
18 
26 
28 #include "swcdb/ranger/db/Column.h"
29 
30 
31 namespace SWC { namespace Ranger {
32 
33 
34 class Columns final : private std::unordered_map<cid_t, ColumnPtr> {
35  public:
36 
37  typedef Columns* Ptr;
38 
40  Columns() noexcept : m_mutex(), m_release() { }
41 
42  ~Columns() noexcept { }
43 
44  ColumnPtr get_column(const cid_t cid);
45 
46  RangePtr get_range(int &err, const cid_t cid, const rid_t rid);
47 
48  ColumnPtr get_next(cid_t& last_cid, size_t& idx);
49 
50  void get_cids(cids_t& cids);
51 
52  void get_columns(Core::Vector<ColumnPtr>& columns);
53 
54  void load_range(const DB::SchemaPrimitives& schema,
55  const Callback::RangeLoad::Ptr& req);
56 
57  bool unload(cid_t cid_begin, cid_t cid_end,
59 
60  void unload_all(bool validation);
61 
62  void erase_if_empty(cid_t cid);
63 
64  void internal_delete(cid_t cid);
65 
66  size_t release(size_t bytes=0);
67 
68  void print(std::ostream& out, bool minimal=true);
69 
70  private:
71 
74 
75 };
76 
77 }} // namespace SWC::Ranger
78 
79 
80 //#ifdef SWC_IMPL_SOURCE
81 #include "swcdb/ranger/db/Range.cc"
84 
88 
92 
96 
97 #ifdef SWC_RANGER_WITH_RANGEDATA
99 #endif
100 
106 
107 //#endif
108 
109 
110 #endif // swcdb_ranger_db_Columns_h
ColumnsUnloadAll.cc
SWC::Ranger::Columns
Definition: Columns.h:34
Schema.h
SWC::Ranger::Columns::get_range
RangePtr get_range(int &err, const cid_t cid, const rid_t rid)
Definition: Columns.cc:21
CellStore.cc
SWC::Ranger::Callback::ColumnsUnload::Ptr
std::shared_ptr< ColumnsUnload > Ptr
Definition: ColumnsUnload.h:20
SWC::Ranger::Columns::internal_delete
void internal_delete(cid_t cid)
Definition: Columns.cc:167
SWC::Ranger::Columns::Ptr
Columns * Ptr
Definition: Columns.h:37
ColumnDelete.h
RangeLoad.h
RangeUnload.cc
ColumnsUnload.h
CellStoreBlock.cc
SWC::Ranger::Columns::print
void print(std::ostream &out, bool minimal=true)
Definition: Columns.cc:221
SWC::DB::SchemaPrimitives
Definition: Schema.h:23
SWC::DB::Types::Column
Column
Definition: Column.h:18
ColumnsUnloadAll.h
SWC::Ranger::Columns::get_column
ColumnPtr get_column(const cid_t cid)
Definition: Columns.cc:14
RangeBlocks.cc
ColumnCfg.h
SWC::Ranger::Columns::get_cids
void get_cids(cids_t &cids)
Definition: Columns.cc:55
SWC::Ranger::ColumnPtr
std::shared_ptr< Column > ColumnPtr
Definition: Columns.h:13
ColumnsUnload.cc
Column.h
SWC::Ranger::Columns::load_range
void load_range(const DB::SchemaPrimitives &schema, const Callback::RangeLoad::Ptr &req)
Definition: Columns.cc:69
SWC::Ranger::Columns::erase_if_empty
void erase_if_empty(cid_t cid)
Definition: Columns.cc:159
SWC_CAN_INLINE
#define SWC_CAN_INLINE
Definition: Compat.h:102
SWC::Ranger::RangePtr
std::shared_ptr< Range > RangePtr
Definition: Columns.h:15
SWC::Ranger::Columns::m_release
Core::StateRunning m_release
Definition: Columns.h:73
SWC::Ranger::Columns::get_next
ColumnPtr get_next(cid_t &last_cid, size_t &idx)
Definition: Columns.cc:30
RangeBlock.cc
SWC
The SWC-DB C++ namespace 'SWC'.
Definition: main.cc:12
Range.cc
CommitLog.cc
Columns.cc
SWC::Ranger::Columns::Columns
SWC_CAN_INLINE Columns() noexcept
Definition: Columns.h:40
SWC::cid_t
uint64_t cid_t
Definition: Identifiers.h:16
RangeUnload.h
SWC::Ranger::Range
Definition: Range.h:27
SWC::Core::Vector< cid_t, cid_t >
CommitLogCompact.cc
RangeData.cc
SWC::Ranger::Columns::m_mutex
Core::MutexSptd m_mutex
Definition: Columns.h:72
RangeLoad.cc
ManageBase.h
SWC::Ranger::Columns::unload
bool unload(cid_t cid_begin, cid_t cid_end, Callback::ColumnsUnload::Ptr req)
Definition: Columns.cc:110
ColumnDelete.cc
SWC::Ranger::Columns::~Columns
~Columns() noexcept
Definition: Columns.h:42
Column.cc
RangeBlockLoader.cc
SWC::rid_t
uint64_t rid_t
Definition: Identifiers.h:17
SWC::Ranger::Columns::unload_all
void unload_all(bool validation)
Definition: Columns.cc:130
CommitLogFragment.cc
SWC::Core::MutexSptd
Definition: MutexSptd.h:16
SWC::Core::StateRunning
Definition: StateRunning.h:16
SWC::Ranger::Callback::RangeLoad::Ptr
std::shared_ptr< RangeLoad > Ptr
Definition: RangeLoad.h:16
CellStoreReaders.cc
SWC::Ranger::Columns::get_columns
void get_columns(Core::Vector< ColumnPtr > &columns)
Definition: Columns.cc:62
RangeUnloadInternal.h
SWC::Ranger::Columns::release
size_t release(size_t bytes=0)
Definition: Columns.cc:174