fixed schema creation

This commit is contained in:
Sascha Kühl
2025-12-04 16:06:39 +01:00
parent 19eb54df8d
commit 980cabe94f
12 changed files with 152 additions and 95 deletions
@@ -33,6 +33,8 @@ public:
[[nodiscard]] const utils::identifier& primary_key() const;
[[nodiscard]] attribute* primary_key_attribute() const;
void update_name(const std::string& name);
endpoint_iterator register_relation_endpoint(const std::type_index &type, const std::shared_ptr<relation_endpoint> &endpoint);
void unregister_relation_endpoint(const std::type_index &type);
+6
View File
@@ -3,6 +3,8 @@
#include "matador/object/repository.hpp"
#include "matador/sql/query_context.hpp"
namespace matador::sql {
class connection_pool;
}
@@ -49,6 +51,10 @@ public:
[[nodiscard]] utils::result<std::vector<object::attribute>, utils::error> describe_table(const std::string &table_name) const;
[[nodiscard]] utils::result<bool, utils::error> table_exists(const std::string &table_name) const;
private:
sql::query_context build_add_constraint_context( const object::repository_node& node, const class object::constraint& cons ) const;
sql::query_context build_drop_constraint_context( const object::repository_node& node, const class object::constraint& cons ) const;
private:
object::repository repo_;
sql::connection_pool &pool_;
@@ -2,10 +2,11 @@
#define MATADOR_QUERY_ALTER_TABLE_INTERMEDIATE_HPP
#include "executable_query.hpp"
#include "matador/object/constraint.hpp"
#include "matador/query/intermediates/query_intermediate.hpp"
namespace matador::query {
class query_add_primary_key_constraint_intermediate final : public query_intermediate {
class query_add_primary_key_constraint_intermediate final : public executable_query {
public:
};
@@ -35,6 +36,7 @@ public:
using query_intermediate::query_intermediate;
query_add_key_constraint_intermediate add_constraint(const std::string& name);
executable_query add_constraint(const class object::constraint& constraint);
executable_query drop_constraint(const std::string& name);
};
}
+6 -6
View File
@@ -23,7 +23,9 @@ enum class sql_command {
SQL_DROP_TABLE,
SQL_DROP_SCHEMA,
SQL_DROP_DATABASE,
SQL_ALTER_TABLE
SQL_ALTER,
SQL_ALTER_TABLE,
SQL_ALTER_SCHEMA
};
struct sql_command_info {
@@ -38,14 +40,12 @@ struct query_context {
std::string schema_name{};
std::string table_name{};
std::vector<object::attribute> prototype{};
std::vector<std::string> result_vars{};
// std::vector<std::string> result_vars{};
std::vector<std::string> bind_vars{};
std::vector<utils::database_type> bind_types{};
std::unordered_map<std::string, std::string> column_aliases{};
std::unordered_map<std::string, std::string> table_aliases{};
std::vector<sql_command_info> additional_commands{};
// std::unordered_map<std::string, std::string> column_aliases{};
// std::unordered_map<std::string, std::string> table_aliases{};
};
}