plugins/mod_storage_sql.lua
changeset 8085 8ca11201bfe7
parent 8084 a201f315de55
child 8086 32898a74b9d9
child 8141 cb605fb60e32
--- a/plugins/mod_storage_sql.lua	Wed Apr 12 23:16:23 2017 +0200
+++ b/plugins/mod_storage_sql.lua	Thu Apr 13 01:29:35 2017 +0200
@@ -485,11 +485,12 @@
 		SELECT "COLUMN_NAME","COLUMN_TYPE","TABLE_NAME"
 		FROM "information_schema"."columns"
 		WHERE "TABLE_NAME" LIKE 'prosody%%'
+		AND "TABLE_SCHEMA" = ?
 		AND ( "CHARACTER_SET_NAME"!=? OR "COLLATION_NAME"!=?);
 		]];
 		-- FIXME Is it ok to ignore the return values from this?
 		engine:transaction(function()
-			local result = assert(engine:execute(check_encoding_query, engine.charset, engine.charset.."_bin"));
+			local result = assert(engine:execute(check_encoding_query, params.database, engine.charset, engine.charset.."_bin"));
 			local n_bad_columns = result:rowcount();
 			if n_bad_columns > 0 then
 				changes = true;
@@ -508,7 +509,8 @@
 			end
 		end);
 		success,err = engine:transaction(function()
-			return engine:execute(check_encoding_query, engine.charset, engine.charset.."_bin");
+			return engine:execute(check_encoding_query, params.database,
+				engine.charset, engine.charset.."_bin");
 		end);
 		if not success then
 			module:log("error", "Failed to check/upgrade database encoding: %s", err or "unknown error");