diff --git a/core/src/dird/dbcopy/database_column_descriptions.cc b/core/src/dird/dbcopy/database_column_descriptions.cc index 008f258333f..d3304d6e82d 100644 --- a/core/src/dird/dbcopy/database_column_descriptions.cc +++ b/core/src/dird/dbcopy/database_column_descriptions.cc @@ -23,6 +23,7 @@ #include "include/make_unique.h" #include "cats/cats.h" #include "dird/dbcopy/database_column_descriptions.h" +#include "lib/util.h" #include #include @@ -43,7 +44,9 @@ void DatabaseColumnDescriptions::SelectColumnDescriptions( std::sort(column_descriptions.begin(), column_descriptions.end(), [](const std::unique_ptr& v1, const std::unique_ptr& v2) { - return v1->column_name < v2->column_name; + std::string l1, l2; + ToLowerCase(v1->column_name, v2->column_name, l1, l2); + return l1 < l2; }); } diff --git a/core/src/dird/dbcopy/database_table_descriptions.cc b/core/src/dird/dbcopy/database_table_descriptions.cc index bb1bbf42873..094f80d6ab4 100644 --- a/core/src/dird/dbcopy/database_table_descriptions.cc +++ b/core/src/dird/dbcopy/database_table_descriptions.cc @@ -23,6 +23,7 @@ #include "database_table_descriptions.h" #include "dird/dbcopy/database_column_descriptions.h" #include "cats/cats.h" +#include "lib/util.h" #include #include @@ -88,17 +89,6 @@ DatabaseTablesMysql::DatabaseTablesMysql(BareosDb* db) } } -static void ToLowerCase(const std::string& i1, - const std::string& i2, - std::string& o1, - std::string& o2) -{ - o1.clear(); - o2.clear(); - std::transform(i1.cbegin(), i1.cend(), std::back_inserter(o1), ::tolower); - std::transform(i2.cbegin(), i2.cend(), std::back_inserter(o2), ::tolower); -} - const DatabaseTableDescriptions::TableDescription* DatabaseTableDescriptions::GetTableDescription( const std::string& table_name) const diff --git a/core/src/lib/util.cc b/core/src/lib/util.cc index 3381d99dc36..7394ca77111 100644 --- a/core/src/lib/util.cc +++ b/core/src/lib/util.cc @@ -1110,3 +1110,14 @@ std::string getenv_std_string(std::string env_var) const char* v = (std::getenv(env_var.c_str())); return v ? std::string(v) : std::string(); } + +void ToLowerCase(const std::string& i1, + const std::string& i2, + std::string& o1, + std::string& o2) +{ + o1.clear(); + o2.clear(); + std::transform(i1.cbegin(), i1.cend(), std::back_inserter(o1), ::tolower); + std::transform(i2.cbegin(), i2.cend(), std::back_inserter(o2), ::tolower); +} diff --git a/core/src/lib/util.h b/core/src/lib/util.h index 629a8cb88d8..34acd9b73a2 100644 --- a/core/src/lib/util.h +++ b/core/src/lib/util.h @@ -68,5 +68,9 @@ void SetWorkingDirectory(const char* wd); const char* last_path_separator(const char* str); void SortCaseInsensitive(std::vector& v); std::string getenv_std_string(std::string env_var); +void ToLowerCase(const std::string& i1, + const std::string& i2, + std::string& o1, + std::string& o2); #endif // BAREOS_LIB_UTIL_H_