1#ifndef DATA_STRUCTURE_TABLE_H
2#define DATA_STRUCTURE_TABLE_H
7#include <unordered_map>
19 explicit Table(
const std::string& name);
20 const std::string&
getName()
const override;
21 const std::vector<ColumnDefinition>&
getSchema()
const override;
22 const std::vector<Row>&
getRows()
const override;
30 const std::string& columnName,
32 const std::unordered_map<std::string, FieldValue>& updates);
34 std::vector<Row>
findRows(
const std::string& columnName,
const FieldValue& value)
const;
41 std::vector<ColumnDefinition> _schema;
42 std::vector<Row> _rows;
43 std::unique_ptr<Xale::DataStructure::BPlusTree<int, Row>> _primaryIndex;
Abstract base class for data collections Base for Table, ResultSet, View, Index, etc.
Definition IDataTemplate.h:18
std::vector< Row > findRows(const std::string &columnName, const FieldValue &value) const
Find rows by condition.
Definition Table.cpp:194
bool insertRow(const Row &row)
Insert a row.
Definition Table.cpp:91
size_t getRowCount() const override
Get row count.
Definition Table.cpp:44
size_t getColumnCount() const override
Get column count.
Definition Table.cpp:53
const std::string & getName() const override
Get table name.
Definition Table.cpp:17
const std::vector< Row > & getRows() const override
Get all rows.
Definition Table.cpp:35
bool isMutable() const override
Check if mutable.
Definition Table.cpp:71
const std::vector< ColumnDefinition > & getSchema() const override
Get schema.
Definition Table.cpp:26
static Table deserialize(const std::vector< char > &data)
Deserialize table from binary format.
Definition Table.cpp:303
size_t updateRows(const std::string &columnName, const FieldValue &value, const std::unordered_map< std::string, FieldValue > &updates)
Update rows matching condition.
Definition Table.cpp:108
void addColumn(const ColumnDefinition &column)
Add column definition.
Definition Table.cpp:80
size_t deleteRows(const std::string &columnName, const FieldValue &value)
Delete rows matching condition.
Definition Table.cpp:156
bool isEmpty() const override
Check if empty.
Definition Table.cpp:62
std::vector< char > serialize() const
Serialize table to binary format.
Definition Table.cpp:224
Table(const std::string &name)
Constructor.
Definition Table.cpp:9
std::variant< int, double, std::string, std::monostate > FieldValue
Variant type for field values.
Definition DataTypes.h:24
Column definition.
Definition DataTypes.h:56
A row of data.
Definition DataTypes.h:45