From 5a3cdc864519bd3e8164de9d2d49568b787323c4 Mon Sep 17 00:00:00 2001 From: Sascha Kuehl Date: Sun, 7 Apr 2024 15:18:41 +0200 Subject: [PATCH] removed query directory --- include/matador/query/column.hpp | 25 ---- include/matador/query/query.hpp | 22 --- include/matador/query/query_builder.hpp | 24 ---- include/matador/query/query_compiler.hpp | 37 ----- include/matador/query/query_data.hpp | 24 ---- include/matador/query/query_intermediates.hpp | 132 ------------------ include/matador/query/query_part_visitor.hpp | 19 --- include/matador/query/query_parts.hpp | 55 -------- include/matador/query/sql_commands.hpp | 31 ---- include/matador/query/table.hpp | 16 --- src/CMakeLists.txt | 22 --- src/query/column.cpp | 21 --- src/query/query.cpp | 6 - src/query/query_builder.cpp | 13 -- src/query/query_compiler.cpp | 33 ----- src/query/query_intermediates.cpp | 8 -- src/query/query_parts.cpp | 30 ---- 17 files changed, 518 deletions(-) delete mode 100644 include/matador/query/column.hpp delete mode 100644 include/matador/query/query.hpp delete mode 100644 include/matador/query/query_builder.hpp delete mode 100644 include/matador/query/query_compiler.hpp delete mode 100644 include/matador/query/query_data.hpp delete mode 100644 include/matador/query/query_intermediates.hpp delete mode 100644 include/matador/query/query_part_visitor.hpp delete mode 100644 include/matador/query/query_parts.hpp delete mode 100644 include/matador/query/sql_commands.hpp delete mode 100644 include/matador/query/table.hpp delete mode 100644 src/query/column.cpp delete mode 100644 src/query/query.cpp delete mode 100644 src/query/query_builder.cpp delete mode 100644 src/query/query_compiler.cpp delete mode 100644 src/query/query_intermediates.cpp delete mode 100644 src/query/query_parts.cpp diff --git a/include/matador/query/column.hpp b/include/matador/query/column.hpp deleted file mode 100644 index 88c0a55..0000000 --- a/include/matador/query/column.hpp +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef QUERY_COLUMN_HPP -#define QUERY_COLUMN_HPP - -#include - -namespace matador::query { - -class column { -public: - column(const char *name); // NOLINT(*-explicit-constructor) - column(std::string name); // NOLINT(*-explicit-constructor) - column(std::string table_name, std::string name, std::string as); - - column& as(std::string a); - - std::string table; - std::string name; - std::string alias; -}; - -column operator "" _col(const char *name, size_t len); - -} - -#endif //QUERY_COLUMN_HPP diff --git a/include/matador/query/query.hpp b/include/matador/query/query.hpp deleted file mode 100644 index d1e337d..0000000 --- a/include/matador/query/query.hpp +++ /dev/null @@ -1,22 +0,0 @@ -#ifndef QUERY_QUERY_HPP -#define QUERY_QUERY_HPP - -#include "matador/query/query_parts.hpp" - -namespace matador::query { - -class connection; -class query -{ -public: - explicit query(connection &c); - - query& select(const std::vector &columns); - query& from(const std::string &table, const std::string &as = ""); - -private: - connection &connection_; -}; - -} -#endif //QUERY_QUERY_HPP diff --git a/include/matador/query/query_builder.hpp b/include/matador/query/query_builder.hpp deleted file mode 100644 index 4164bf5..0000000 --- a/include/matador/query/query_builder.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef QUERY_QUERY_BUILDER_HPP -#define QUERY_QUERY_BUILDER_HPP - -#include "matador/query/column.hpp" -#include "matador/query/query_intermediates.hpp" - -#include "matador/sql/schema.hpp" - -#include - -namespace matador::query { - -class query_builder -{ -public: - explicit query_builder(const std::shared_ptr &scm); - query_select_intermediate select(std::initializer_list columns); - -private: - std::shared_ptr schema_; -}; - -} -#endif //QUERY_QUERY_BUILDER_HPP diff --git a/include/matador/query/query_compiler.hpp b/include/matador/query/query_compiler.hpp deleted file mode 100644 index 1c11fe2..0000000 --- a/include/matador/query/query_compiler.hpp +++ /dev/null @@ -1,37 +0,0 @@ -#ifndef QUERY_QUERY_COMPILER_HPP -#define QUERY_QUERY_COMPILER_HPP - -#include "matador/query/query_part_visitor.hpp" -#include "matador/query/query_parts.hpp" - - -#include -#include - -namespace matador::sql { -class dialect; -} - -namespace matador::query { - -struct query_data; - -class query_compiler : public query_part_visitor -{ -public: - explicit query_compiler(sql::dialect& d); - - std::string compile(const query_data *data); - -private: - void visit(query_select_part &select_part) override; - void visit(query_from_part &from_part) override; - -private: - sql::dialect &dialect_; - std::string sql_; -}; - -} - -#endif //QUERY_QUERY_COMPILER_HPP diff --git a/include/matador/query/query_data.hpp b/include/matador/query/query_data.hpp deleted file mode 100644 index 32de085..0000000 --- a/include/matador/query/query_data.hpp +++ /dev/null @@ -1,24 +0,0 @@ -#ifndef QUERY_QUERY_DATA_HPP -#define QUERY_QUERY_DATA_HPP - -#include "matador/query/query_parts.hpp" -#include "matador/query/sql_commands.hpp" -#include "matador/query/table.hpp" - -#include -#include - -namespace matador::query { - -struct query_data -{ - SqlCommands command; - std::vector> parts; - std::vector columns; - std::unordered_map table_map_by_index; - using table_data_ref = std::reference_wrapper; - std::unordered_map table_map_by_name; -}; - -} -#endif //QUERY_QUERY_DATA_HPP diff --git a/include/matador/query/query_intermediates.hpp b/include/matador/query/query_intermediates.hpp deleted file mode 100644 index 4980b20..0000000 --- a/include/matador/query/query_intermediates.hpp +++ /dev/null @@ -1,132 +0,0 @@ -#ifndef QUERY_QUERY_INTERMEDIATES_HPP -#define QUERY_QUERY_INTERMEDIATES_HPP - -#include "matador/sql/schema.hpp" - -#include -#include - -namespace matador::sql { -class basic_condition; -} -namespace matador::query { - -class query_from_intermediate; -class query_join_intermediate; -class query_on_intermediate; -class query_where_intermediate; -class query_group_by_intermediate; -class query_order_by_intermediate; -class query_order_direction_intermediate; -class query_offset_intermediate; -class query_limit_intermediate; - -class query_intermediate -{ -public: - explicit query_intermediate(const std::shared_ptr &scm); - -protected: - sql::schema& schema() const; - -private: - std::shared_ptr schema_; -}; - -class query_select_finish_intermediate : public query_intermediate -{ -public: - using query_intermediate::query_intermediate; - - void compile(); -}; - -class query_select_intermediate : public query_intermediate -{ -public: - using query_intermediate::query_intermediate; - - query_from_intermediate from(const std::string &table, const std::string &as = ""); -}; - -class query_from_intermediate : public query_select_finish_intermediate -{ -public: - using query_select_finish_intermediate::query_intermediate; - - query_join_intermediate join(const std::string &join_table_name, const std::string &as); - query_where_intermediate where(const sql::basic_condition &cond); - query_group_by_intermediate group_by(const std::string &name); - query_order_by_intermediate order_by(const std::string &name); -}; - -class query_join_intermediate : public query_intermediate -{ -public: - using query_intermediate::query_intermediate; - - query_on_intermediate on(const std::string &column, const std::string &join_column); -}; - -class query_on_intermediate : public query_select_finish_intermediate -{ -public: - using query_select_finish_intermediate::query_intermediate; - - query_join_intermediate join(const std::string &join_table_name, const std::string &as); - query_where_intermediate where(const sql::basic_condition &cond); - query_group_by_intermediate group_by(const std::string &name); - query_order_by_intermediate order_by(const std::string &name); -}; - -class query_where_intermediate : public query_select_finish_intermediate -{ -public: - using query_select_finish_intermediate::query_intermediate; - - query_group_by_intermediate group_by(const std::string &name); - query_order_by_intermediate order_by(const std::string &name); -}; - -class query_group_by_intermediate : public query_select_finish_intermediate -{ -public: - using query_select_finish_intermediate::query_intermediate; - - query_order_by_intermediate order_by(const std::string &name); -}; - -class query_order_by_intermediate : public query_intermediate -{ -public: - using query_intermediate::query_intermediate; - - query_order_direction_intermediate asc(); - query_order_direction_intermediate desc(); -}; - -class query_order_direction_intermediate : public query_select_finish_intermediate -{ -public: - using query_select_finish_intermediate::query_intermediate; - - query_offset_intermediate offset(size_t offset); - query_limit_intermediate limit(size_t limit); -}; - -class query_offset_intermediate : public query_intermediate -{ -public: - using query_intermediate::query_intermediate; - - query_limit_intermediate limit(size_t limit); -}; - -class query_limit_intermediate : public query_select_finish_intermediate -{ -public: - using query_select_finish_intermediate::query_intermediate; -}; - -} -#endif //QUERY_QUERY_INTERMEDIATES_HPP diff --git a/include/matador/query/query_part_visitor.hpp b/include/matador/query/query_part_visitor.hpp deleted file mode 100644 index f0086ea..0000000 --- a/include/matador/query/query_part_visitor.hpp +++ /dev/null @@ -1,19 +0,0 @@ -#ifndef QUERY_QUERY_PART_VISITOR_HPP -#define QUERY_QUERY_PART_VISITOR_HPP - -namespace matador::query { - -class query_select_part; -class query_from_part; - -class query_part_visitor -{ -public: - virtual ~query_part_visitor() = default; - - virtual void visit(query_select_part &select_part) = 0; - virtual void visit(query_from_part &from_part) = 0; -}; - -} -#endif //QUERY_QUERY_PART_VISITOR_HPP diff --git a/include/matador/query/query_parts.hpp b/include/matador/query/query_parts.hpp deleted file mode 100644 index 2593394..0000000 --- a/include/matador/query/query_parts.hpp +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef QUERY_QUERY_PARTS_HPP -#define QUERY_QUERY_PARTS_HPP - -#include "matador/query/query_part_visitor.hpp" -#include "matador/query/column.hpp" - -#include "matador/sql/dialect.hpp" - -namespace matador::query { - -class query_part -{ -protected: - explicit query_part(sql::dialect::token_t token); - -public: - virtual ~query_part() = default; - virtual void accept(query_part_visitor &visitor) = 0; - -protected: - sql::dialect::token_t token_; -}; - -/** - * Represents the SQL SELECT part - */ -class query_select_part : public query_part -{ -public: - explicit query_select_part(std::vector columns); - void accept(query_part_visitor &visitor) override; - -private: - std::vector columns_; -}; - -/** - * Represents the SQL FROM part - */ -class query_from_part : public query_part -{ -public: - explicit query_from_part(std::string table_name); - query_from_part(std::string table_name, std::string as); - -private: - void accept(query_part_visitor &visitor) override; - -private: - std::string table_; - std::string alias_; -}; - -} -#endif //QUERY_QUERY_PARTS_HPP diff --git a/include/matador/query/sql_commands.hpp b/include/matador/query/sql_commands.hpp deleted file mode 100644 index f7a06e5..0000000 --- a/include/matador/query/sql_commands.hpp +++ /dev/null @@ -1,31 +0,0 @@ -#ifndef QUERY_SQL_COMMANDS_HPP -#define QUERY_SQL_COMMANDS_HPP - -#include "matador/utils/enum_mapper.hpp" - -namespace matador::query { - -enum class SqlCommands -{ - UNKNOWN, /**< Unknown query command */ - CREATE, /**< Create query command */ - DROP, /**< Drop query command */ - SELECT, /**< Select query command */ - INSERT, /**< Insert query command */ - UPDATE, /**< Update query command */ - REMOVE /**< Remove query command */ -}; - -static const utils::enum_mapper sql_command_enum({ - {SqlCommands::UNKNOWN, "unknown"}, - {SqlCommands::CREATE, "create"}, - {SqlCommands::DROP, "drop"}, - {SqlCommands::SELECT, "select"}, - {SqlCommands::INSERT, "insert"}, - {SqlCommands::UPDATE, "update"}, - {SqlCommands::REMOVE, "delete"} - }); - -} - -#endif //QUERY_SQL_COMMANDS_HPP diff --git a/include/matador/query/table.hpp b/include/matador/query/table.hpp deleted file mode 100644 index 24dd9e0..0000000 --- a/include/matador/query/table.hpp +++ /dev/null @@ -1,16 +0,0 @@ -#ifndef QUERY_TABLE_HPP -#define QUERY_TABLE_HPP - -#include -#include - -namespace matador::query { - -struct table_data -{ - std::type_index index; - std::string name; -}; - -} -#endif //QUERY_TABLE_HPP diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index eedc0ef..8d730de 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -94,28 +94,6 @@ set(SQL_HEADER ../include/matador/sql/has_many_to_many_relation.hpp ) -set(QUERY_SOURCES - query/query.cpp - query/query_compiler.cpp - query/query_parts.cpp - query/column.cpp - query/query_builder.cpp - query/query_intermediates.cpp -) - -set(QUERY_HEADER - ../include/matador/query/query.hpp - ../include/matador/query/query_part_visitor.hpp - ../include/matador/query/query_compiler.hpp - ../include/matador/query/query_parts.hpp - ../include/matador/query/column.hpp - ../include/matador/query/query_builder.hpp - ../include/matador/query/query_intermediates.hpp - ../include/matador/query/sql_commands.hpp - ../include/matador/query/query_data.hpp - ../include/matador/query/table.hpp -) - set(UTILS_HEADER ../include/matador/utils/field_attributes.hpp ../include/matador/utils/string.hpp diff --git a/src/query/column.cpp b/src/query/column.cpp deleted file mode 100644 index 6ad324a..0000000 --- a/src/query/column.cpp +++ /dev/null @@ -1,21 +0,0 @@ -#include "matador/query/column.hpp" - -namespace matador::query { - -column::column(const char *name) -: name(name) {} - -column::column(std::string name) -: name(std::move(name)) {} - -column::column(std::string table_name, std::string name, std::string as) -: table(std::move(table_name)) -, name(std::move(name)) -, alias(std::move(as)) {} - -column& column::as(std::string a) { - alias = std::move(a); - return *this; -} - -} \ No newline at end of file diff --git a/src/query/query.cpp b/src/query/query.cpp deleted file mode 100644 index 24b03ff..0000000 --- a/src/query/query.cpp +++ /dev/null @@ -1,6 +0,0 @@ -#include "matador/query/query.hpp" - -namespace matador::sql { - - -} \ No newline at end of file diff --git a/src/query/query_builder.cpp b/src/query/query_builder.cpp deleted file mode 100644 index 4b7c832..0000000 --- a/src/query/query_builder.cpp +++ /dev/null @@ -1,13 +0,0 @@ -#include "matador/query/query_builder.hpp" - -namespace matador::query { - -query_builder::query_builder(const std::shared_ptr &scm) -: schema_(scm) {} - -query_select_intermediate query_builder::select(std::initializer_list columns) -{ - return query_select_intermediate{schema_}; -} - -} \ No newline at end of file diff --git a/src/query/query_compiler.cpp b/src/query/query_compiler.cpp deleted file mode 100644 index 299e6ed..0000000 --- a/src/query/query_compiler.cpp +++ /dev/null @@ -1,33 +0,0 @@ -#include "matador/query/query_compiler.hpp" -#include "matador/query/query_data.hpp" -#include "matador/query/column.hpp" - -#include "matador/sql/dialect.hpp" - -namespace matador::query { - -query_compiler::query_compiler(sql::dialect &d) - : dialect_(d) -{} - -std::string query_compiler::compile(const query_data *data) -{ - sql_.clear(); - for (const auto &part : data->parts) { - part->accept(*this); - } - - return sql_; -} - -void query_compiler::visit(query_select_part &select_part) -{ - auto ci = "name"_col.as("c01"); -} - -void query_compiler::visit(query_from_part &from_part) -{ - -} - -} \ No newline at end of file diff --git a/src/query/query_intermediates.cpp b/src/query/query_intermediates.cpp deleted file mode 100644 index d3ec52c..0000000 --- a/src/query/query_intermediates.cpp +++ /dev/null @@ -1,8 +0,0 @@ -#include "matador/query/query_intermediates.hpp" - -namespace matador::query { - -query_intermediate::query_intermediate(const std::shared_ptr &scm) -: schema_(scm) {} - -} \ No newline at end of file diff --git a/src/query/query_parts.cpp b/src/query/query_parts.cpp deleted file mode 100644 index fd6d233..0000000 --- a/src/query/query_parts.cpp +++ /dev/null @@ -1,30 +0,0 @@ -#include "matador/query/query_parts.hpp" - -namespace matador::query { - -query_part::query_part(sql::dialect::token_t token) - : token_(token) {} - -query_select_part::query_select_part(std::vector columns) - : query_part(sql::dialect::token_t::SELECT) - , columns_(std::move(columns)) {} - -void query_select_part::accept(query_part_visitor &visitor) -{ - visitor.visit(*this); -} - -query_from_part::query_from_part(std::string table_name) - : query_part(sql::dialect::token_t::FROM) - , table_(std::move(table_name)) {} - -query_from_part::query_from_part(std::string table_name, std::string as) - : query_part(sql::dialect::token_t::FROM) - , table_(std::move(table_name)) - , alias_(std::move(as)) {} - -void query_from_part::accept(query_part_visitor &visitor) -{ - visitor.visit(*this); -} -} \ No newline at end of file