diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2017-02-03 16:24:53 +0100 |
---|---|---|
committer | Roeland Jago Douma <roeland@famdouma.nl> | 2017-04-28 09:35:36 +0200 |
commit | 43427e26d78123e66652741d960c14cf40342715 (patch) | |
tree | 411718cd0fb932c2fce38fb6dc879bcdbad12144 /lib/private/DB/MySqlTools.php | |
parent | 6d93cb74888ae0da0d2286ca1cd82179ea367513 (diff) | |
download | nextcloud-server-43427e26d78123e66652741d960c14cf40342715.tar.gz nextcloud-server-43427e26d78123e66652741d960c14cf40342715.zip |
Add console command to migrate the charset
Diffstat (limited to 'lib/private/DB/MySqlTools.php')
-rw-r--r-- | lib/private/DB/MySqlTools.php | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/lib/private/DB/MySqlTools.php b/lib/private/DB/MySqlTools.php new file mode 100644 index 00000000000..32f1de887c3 --- /dev/null +++ b/lib/private/DB/MySqlTools.php @@ -0,0 +1,49 @@ +<?php +/** + * @author Thomas Müller <thomas.mueller@tmit.eu> + * + * @copyright Copyright (c) 2017, ownCloud GmbH + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OC\DB; + +use OCP\IDBConnection; + +/** +* Various MySQL specific helper functions. +*/ +class MySqlTools { + + /** + * @param Connection $connection + * @return bool + */ + public function supports4ByteCharset(IDBConnection $connection) { + foreach (['innodb_file_format' => 'Barracuda', 'innodb_large_prefix' => 'ON', 'innodb_file_per_table' => 'ON'] as $var => $val) { + $result = $connection->executeQuery("SHOW VARIABLES LIKE '$var'"); + $rows = $result->fetch(); + $result->closeCursor(); + if ($rows === false) { + return false; + } + if (strcasecmp($rows['Value'], $val) !== 0) { + return false; + } + } + return true; + } +} |