xale-db 1.0
minimal SQL engine, written in c++
Loading...
Searching...
No Matches
BasicExecutor.h
Go to the documentation of this file.
1#ifndef EXECUTION_BASIC_EXECUTOR_H
2#define EXECUTION_BASIC_EXECUTOR_H
3
7#include "Query/Statement.h"
9
10#include <unordered_map>
11
13{
17 class BasicExecutor : public IExecutor
18 {
19 public:
24 BasicExecutor(TableManager& tableManager);
25
31 std::unique_ptr<Xale::DataStructure::ResultSet> execute(Xale::Query::Statement* statement) override;
32
33 private:
34 TableManager& _tableManager;
35
41 std::unique_ptr<Xale::DataStructure::ResultSet> executeSelect(Xale::Query::SelectStatement* stmt);
42
48 std::unique_ptr<Xale::DataStructure::ResultSet> executeInsert(Xale::Query::InsertStatement* stmt);
49
55 std::unique_ptr<Xale::DataStructure::ResultSet> executeUpdate(Xale::Query::UpdateStatement* stmt);
56
62 std::unique_ptr<Xale::DataStructure::ResultSet> executeDelete(Xale::Query::DeleteStatement* stmt);
63
69 std::unique_ptr<Xale::DataStructure::ResultSet> executeCreate(Xale::Query::CreateStatement* stmt);
70
76 std::unique_ptr<Xale::DataStructure::ResultSet> executeDrop(Xale::Query::DropStatement* stmt);
77
83 std::unique_ptr<Xale::DataStructure::ResultSet> executeList(Xale::Query::ListStatement* stmt);
84
90 Xale::DataStructure::FieldValue evaluateExpression(const Xale::Query::Expression& expr);
91
98 bool evaluateCondition(const Xale::DataStructure::Row& row, const Xale::Query::WhereClause* where);
99 };
100}
101
102#endif // EXECUTION_BASIC_EXECUTOR_H
BasicExecutor(TableManager &tableManager)
Constructs a BasicExecutor with a reference to the TableManager.
Definition BasicExecutor.cpp:5
std::unique_ptr< Xale::DataStructure::ResultSet > execute(Xale::Query::Statement *statement) override
Executes a given SQL statement and returns the result set.
Definition BasicExecutor.cpp:9
Interface for executing SQL statements and returning results.
Definition IExecutor.h:15
Manages the lifecycle of tables, including creation, retrieval, deletion, and persistence.
Definition TableManager.h:20
std::variant< int, double, std::string, std::monostate > FieldValue
Variant type for field values.
Definition DataTypes.h:24
Definition BasicExecutor.h:13
A row of data.
Definition DataTypes.h:45
CREATE TABLE statement structure.
Definition Statement.h:181
DELETE statement structure.
Definition Statement.h:146
DROP TABLE statement structure.
Definition Statement.h:192
Base expression structure.
Definition Statement.h:48
INSERT statement structure.
Definition Statement.h:122
LIST TABLE statement structure.
Definition Statement.h:203
SELECT statement structure.
Definition Statement.h:109
Base statement structure.
Definition Statement.h:88
UPDATE statement structure.
Definition Statement.h:134
WHERE clause representation.
Definition Statement.h:76