1#ifndef DATA_STRUCTURE_TABLE_H
2#define DATA_STRUCTURE_TABLE_H
7#include <unordered_map>
26 explicit Table(
const std::string& name);
29 const std::string&
getName()
const override;
32 const std::vector<ColumnDefinition>&
getSchema()
const override;
35 const std::vector<Row>&
getRows()
const override;
70 const std::string& columnName,
72 const std::unordered_map<std::string, FieldValue>& updates);
88 std::vector<Row>
findRows(
const std::string& columnName,
const FieldValue& value)
const;
108 std::vector<ColumnDefinition> _schema;
111 std::vector<Row> _rows;
114 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 matching a condition.
Definition Table.cpp:133
bool insertRow(const Row &row)
Insert a new row into the table.
Definition Table.cpp:49
size_t getRowCount() const override
Definition Table.cpp:24
size_t getColumnCount() const override
Definition Table.cpp:29
const std::string & getName() const override
Definition Table.cpp:9
const std::vector< Row > & getRows() const override
Definition Table.cpp:19
bool isMutable() const override
Definition Table.cpp:39
const std::vector< ColumnDefinition > & getSchema() const override
Definition Table.cpp:14
static Table deserialize(const std::vector< char > &data)
Deserialize a table from a byte vector.
Definition Table.cpp:235
size_t updateRows(const std::string &columnName, const FieldValue &value, const std::unordered_map< std::string, FieldValue > &updates)
Update rows matching a condition.
Definition Table.cpp:59
void addColumn(const ColumnDefinition &column)
Add a new column to the table schema.
Definition Table.cpp:44
size_t deleteRows(const std::string &columnName, const FieldValue &value)
Delete rows matching a condition.
Definition Table.cpp:101
bool isEmpty() const override
Definition Table.cpp:34
std::vector< char > serialize() const
Serialize the table to a byte vector.
Definition Table.cpp:159
Table(const std::string &name)
Construct a new Table with the given name.
Definition Table.cpp:5
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