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{
14 class BasicExecutor : public IExecutor
15 {
16 public:
17 BasicExecutor(TableManager& tableManager);
18 std::unique_ptr<Xale::DataStructure::ResultSet> execute(Xale::Query::Statement* statement) override;
19 private:
20 TableManager& _tableManager;
21
22 std::unique_ptr<Xale::DataStructure::ResultSet> executeSelect(Xale::Query::SelectStatement* stmt);
23 std::unique_ptr<Xale::DataStructure::ResultSet> executeInsert(Xale::Query::InsertStatement* stmt);
24 std::unique_ptr<Xale::DataStructure::ResultSet> executeUpdate(Xale::Query::UpdateStatement* stmt);
25 std::unique_ptr<Xale::DataStructure::ResultSet> executeDelete(Xale::Query::DeleteStatement* stmt);
26 std::unique_ptr<Xale::DataStructure::ResultSet> executeCreate(Xale::Query::CreateStatement* stmt);
27 std::unique_ptr<Xale::DataStructure::ResultSet> executeDrop(Xale::Query::DropStatement* stmt);
28 std::unique_ptr<Xale::DataStructure::ResultSet> executeList(Xale::Query::ListStatement* stmt);
29
30 Xale::DataStructure::FieldValue evaluateExpression(const Xale::Query::Expression& expr);
31 bool evaluateCondition(const Xale::DataStructure::Row& row, const Xale::Query::WhereClause* where);
32 };
33}
34
35#endif // EXECUTION_BASIC_EXECUTOR_H
BasicExecutor(TableManager &tableManager)
Constructs a BasicExecutor with a reference to the TableManager.
Definition BasicExecutor.cpp:9
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:18
Definition IExecutor.h:12
Definition TableManager.h:17
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:160
DELETE statement structure.
Definition Statement.h:135
DROP TABLE statement structure.
Definition Statement.h:171
Base expression structure.
Definition Statement.h:48
INSERT statement structure.
Definition Statement.h:111
LIST TABLE statement structure.
Definition Statement.h:182
SELECT statement structure.
Definition Statement.h:99
Base statement structure.
Definition Statement.h:88
UPDATE statement structure.
Definition Statement.h:123
WHERE clause representation.
Definition Statement.h:76