aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris "Koying" Browet <cbro@semperpax.com>2014-01-28 14:43:19 +0100
committerChris "Koying" Browet <cbro@semperpax.com>2014-01-30 17:52:48 +0100
commit5ec7f16646c7a4b4f767ec79a5420e863c3616f6 (patch)
tree59a8960cedab66aac3c0fc3b184377430f3e85e4
parentb6d31a3f32ea69f948ff4d020741ee1b986b1544 (diff)
FIX: [mysql] force utf8 when creating db and temp tables
-rw-r--r--xbmc/dbwrappers/mysqldataset.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/xbmc/dbwrappers/mysqldataset.cpp b/xbmc/dbwrappers/mysqldataset.cpp
index 436f564878..523e621511 100644
--- a/xbmc/dbwrappers/mysqldataset.cpp
+++ b/xbmc/dbwrappers/mysqldataset.cpp
@@ -155,7 +155,7 @@ int MysqlDatabase::connect(bool create_new) {
char sqlcmd[512];
int ret;
- sprintf(sqlcmd, "CREATE DATABASE `%s`", db.c_str());
+ sprintf(sqlcmd, "CREATE DATABASE `%s` CHARACTER SET utf8 COLLATE utf8_general_ci", db.c_str());
if ( (ret=query_with_reconnect(sqlcmd)) != MYSQL_OK )
{
throw DbErrors("Can't create new database: '%s' (%d)", db.c_str(), ret);
@@ -250,7 +250,7 @@ int MysqlDatabase::copy(const char *backup_name) {
}
// create the new database
- sprintf(sql, "CREATE DATABASE `%s`", backup_name);
+ sprintf(sql, "CREATE DATABASE `%s` CHARACTER SET utf8 COLLATE utf8_general_ci", backup_name);
if ( (ret=query_with_reconnect(sql)) != MYSQL_OK )
{
mysql_free_result(res);
@@ -1375,7 +1375,8 @@ int MysqlDataset::exec(const string &sql) {
}
// force the charset and collation to UTF-8
- if ( ci_find(qry, "CREATE TABLE") != string::npos )
+ if ( ci_find(qry, "CREATE TABLE") != string::npos
+ || ci_find(qry, "CREATE TEMPORARY TABLE") != string::npos )
{
qry += " CHARACTER SET utf8 COLLATE utf8_general_ci";
}