Fix charset_unsigned_int-t for MySQL 8.4

pull/5454/head
Rahim Kanji 2 months ago
parent 305e6db0b2
commit cac8dfaf2f

@ -58,14 +58,23 @@ int main(int argc, char** argv) {
return exit_status();
}
// Get version early for version-specific charset checks
std::string version;
get_server_version(mysql, version);
int major = 0, minor = 0;
sscanf(version.c_str(), "%d.%d", &major, &minor);
bool is_mysql_84_plus = (major > 8) || (major == 8 && minor >= 4);
if (mysql_query(mysql, "set names 'utf8'")) return exit_status();
show_variable(mysql, var_collation_connection, var_value);
ok(var_value.compare("utf8_general_ci") == 0, "Initial client character set. Actual %s", var_value.c_str());
if (is_mysql_84_plus) {
ok(var_value.compare("utf8mb3_general_ci") == 0, "MySQL 8.4+ Initial client character set. Actual %s", var_value.c_str());
} else {
ok(var_value.compare("utf8_general_ci") == 0, "Initial client character set. Actual %s", var_value.c_str());
}
if (mysql_query(mysql, "set names utf8mb4 collate utf8mb4_croatian_ci")) return exit_status();
show_variable(mysql, var_collation_connection, var_value);
std::string version;
get_server_version(mysql, version);
if (version.data()[0] == '5') {
ok(var_value.compare("utf8mb4_general_ci") == 0, "Backend is mysql version < 8.0. Actual collation %s", var_value.c_str());
} else {

Loading…
Cancel
Save