1<?php
2/**
3 * @author Joas Schilling <coding@schilljs.com>
4 * @author Morris Jobke <hey@morrisjobke.de>
5 * @author Robin Appelman <icewind@owncloud.com>
6 *
7 * @copyright Copyright (c) 2018, ownCloud GmbH
8 * @license AGPL-3.0
9 *
10 * This code is free software: you can redistribute it and/or modify
11 * it under the terms of the GNU Affero General Public License, version 3,
12 * as published by the Free Software Foundation.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU Affero General Public License for more details.
18 *
19 * You should have received a copy of the GNU Affero General Public License, version 3,
20 * along with this program.  If not, see <http://www.gnu.org/licenses/>
21 *
22 */
23
24namespace OC\DB;
25
26class AdapterMySQL extends Adapter {
27
28	/**
29	 * @param string $tableName
30	 */
31	public function lockTable($tableName) {
32		$this->conn->executeUpdate('LOCK TABLES `' .$tableName . '` WRITE');
33	}
34
35	public function unlockTable() {
36		$this->conn->executeUpdate('UNLOCK TABLES');
37	}
38
39	public function fixupStatement($statement) {
40		$characterSet = \OC::$server->getConfig()->getSystemValue('mysql.utf8mb4', false) ? 'utf8mb4' : 'utf8';
41		$statement = \str_replace(' ILIKE ', ' COLLATE ' . $characterSet . '_general_ci LIKE ', $statement);
42		return $statement;
43	}
44}
45