diff --git a/include/matador/query/meta_table_macro.hpp b/include/matador/query/meta_table_macro.hpp index d5d445d..a8a8c3a 100644 --- a/include/matador/query/meta_table_macro.hpp +++ b/include/matador/query/meta_table_macro.hpp @@ -18,7 +18,7 @@ TABLE_NAME##_table()\ : TABLE_NAME##_table(#TABLE_NAME) \ {} \ TABLE_NAME##_table(const std::string& alias) \ -: typed_table(#TABLE_NAME, alias, {MAP(FIELD_STRING, __VA_ARGS__)}) \ +: typed_table(#TABLE_NAME, alias, {MAP(FIELD_STRING, __VA_ARGS__)}, {}, {}) \ MAP(INIT_FIELD, __VA_ARGS__) \ {} \ MAP(FIELD, __VA_ARGS__) \ diff --git a/include/matador/query/table.hpp b/include/matador/query/table.hpp index b02d698..3f33d8e 100644 --- a/include/matador/query/table.hpp +++ b/include/matador/query/table.hpp @@ -49,7 +49,7 @@ public: [[nodiscard]] const table_column* inverse_join_column() const; protected: - table(std::string name, std::string alias, const std::vector& columns); + table(std::string name, std::string alias, const std::vector& columns, const std::string& join_column, const std::string& inverse_join_column); private: friend table_column; diff --git a/source/orm/query/table.cpp b/source/orm/query/table.cpp index c8f49bb..1a930f5 100644 --- a/source/orm/query/table.cpp +++ b/source/orm/query/table.cpp @@ -9,19 +9,17 @@ table::table(const char* name) {} table::table(const std::string& name) -: table(name, name, {}) {} +: table(name, name, {}, {}, {}) {} table::table(const std::string& name, const std::vector &columns) -: table(name, name, columns) { +: table(name, name, columns, {}, {}) { } table::table(const std::string& name, const std::vector& columns, const std::string& join_column, const std::string& inverse_join_column) -: table(name, name, columns) -, join_column_index_(column_by_name(*this, join_column)) -, inverse_join_column_index_(column_by_name(*this, inverse_join_column)){ +: table(name, name, columns, join_column, inverse_join_column) { } -table::table(std::string name, std::string alias, const std::vector &columns) +table::table(std::string name, std::string alias, const std::vector &columns, const std::string& join_column, const std::string& inverse_join_column) : name_(std::move(name)) , alias_(std::move(alias)) , columns_(columns) { @@ -30,6 +28,12 @@ table::table(std::string name, std::string alias, const std::vector -1 ? join_column()->name() : std::string{}, inverse_join_column_index_ > -1 ? inverse_join_column()->name() : std::string{}}; } const std::string & table::table_name() const {