diff --git a/include/matador/orm/session.hpp b/include/matador/orm/session.hpp index e183972..9c7c44f 100644 --- a/include/matador/orm/session.hpp +++ b/include/matador/orm/session.hpp @@ -65,16 +65,6 @@ public: template utils::result, utils::error> find(query::criteria_ptr clause = {}); - template - utils::result drop_table() const; - utils::result drop_table(const std::string &table_name) const; - - [[nodiscard]] utils::result, utils::error> fetch_all(const sql::query_context &q) const; - [[nodiscard]] utils::result execute(const std::string &sql) const; - - [[nodiscard]] std::vector describe_table(const std::string &table_name) const; - [[nodiscard]] bool table_exists(const std::string &table_name) const; - [[nodiscard]] utils::result, utils::error> fetch(const sql::query_context &ctx) const override; [[nodiscard]] utils::result execute(const sql::query_context &ctx) const override; [[nodiscard]] utils::result prepare(const sql::query_context &ctx) override; @@ -313,15 +303,5 @@ utils::result, utils::error> session::find(query::criter return result->template fetch(); } - -template -utils::result session::drop_table() const { - const auto it = schema_.find(typeid(Type)); - if (it == schema_.end()) { - return utils::failure(make_error(error_code::UnknownType, "Failed to determine requested type.")); - } - return drop_table(it->second.name()); -} - } #endif //QUERY_SESSION_HPP diff --git a/source/orm/orm/session.cpp b/source/orm/orm/session.cpp index bf4b92a..b2b132c 100644 --- a/source/orm/orm/session.cpp +++ b/source/orm/orm/session.cpp @@ -56,66 +56,6 @@ session::session(session_context&& ctx, const query::schema &scm) } } -utils::result session::drop_table(const std::string &table_name) const { - auto result = query::drop() - .table(table_name) - .execute(*this); - if (result.is_error()) { - return utils::failure(result.err()); - } - - return utils::ok(); -} - -utils::result, utils::error> session::fetch_all(const sql::query_context &q) const { - auto c = cache_.pool().acquire(); - if (!c.valid()) { - return utils::failure(make_error(error_code::NoConnectionAvailable, "Failed to acquire connection.")); - } - auto it = prototypes_.find(q.table_name); - if (it == prototypes_.end()) { - auto result = c->describe(q.table_name); - if (!result) { - return utils::failure(result.err()); - } - it = prototypes_.emplace(q.table_name, *result).first; - } - // adjust columns from given query - for (auto &col: q.prototype) { - if (const auto rit = std::find_if(it->second.begin(), it->second.end(), [&col](const auto &value) { - return value.name() == col.name(); - }); rit != it->second.end()) { - const_cast(col).change_type(rit->type()); - } - } - auto res = fetch(q); - if (!res) { - return utils::failure(res.err()); - } - const auto prototype = res.value()->prototype(); - return utils::ok(sql::query_result{std::move(*res), prototype}); -} - -utils::result session::execute(const std::string &sql) const { - return execute(sql::query_context{sql}); -} - -std::vector session::describe_table(const std::string &table_name) const { - const auto c = cache_.pool().acquire(); - if (!c.valid()) { - throw std::logic_error("no database connection available"); - } - return c->describe(table_name).release(); -} - -bool session::table_exists(const std::string &table_name) const { - const auto c = cache_.pool().acquire(); - if (!c.valid()) { - throw std::logic_error("no database connection available"); - } - return c->exists(dialect_.default_schema_name(), table_name); -} - const class sql::dialect &session::dialect() const { return dialect_; }