PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.2.1
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.2.1
5.13.0 5.12.1 5.12.0 5.11.1 5.11.0 5.10.2 5.10.1 trunk 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.2 1.1.3 1.2.0 1.3.0 1.3.1 1.3.2 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.1.0 4.1.1 4.1.2 4.1.3 4.10.0 4.11.0 4.12.0 4.13.0 4.13.2 4.13.3 4.13.4 4.13.5 4.14.0 4.14.1 4.14.2 4.15.0 4.15.1 4.15.2 4.15.3 4.2.0 4.3.0 4.3.1 4.4.1 4.4.2 4.5.0 4.6.0 5.0.1 5.0.2 5.0.3 5.0.4 5.0.5 5.0.6 5.0.7 5.0.8 5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.10.0 5.2.0 5.2.1 5.2.2 5.3.0 5.3.1 5.3.2 5.3.3 5.6.0 5.6.1 5.7.0 5.7.1 5.8.0 5.8.1 5.8.2
matomo / app / core / Db / Schema / Mariadb.php
matomo / app / core / Db / Schema Last commit date
Mariadb.php 1 year ago Mysql.php 1 year ago Tidb.php 1 year ago
Mariadb.php
44 lines
1 <?php
2
3 /**
4 * Matomo - free/libre analytics platform
5 *
6 * @link https://matomo.org
7 * @license https://www.gnu.org/licenses/gpl-3.0.html GPL v3 or later
8 */
9 namespace Piwik\Db\Schema;
10
11 /**
12 * Mariadb schema
13 */
14 class Mariadb extends \Piwik\Db\Schema\Mysql
15 {
16 /**
17 * Adds a max_statement_time hint into a SELECT query if $limit is bigger than 0
18 *
19 * @param string $sql query to add hint to
20 * @param float $limit time limit in seconds
21 * @return string
22 */
23 public function addMaxExecutionTimeHintToQuery(string $sql, float $limit) : string
24 {
25 if ($limit <= 0) {
26 return $sql;
27 }
28 $sql = trim($sql);
29 $pos = stripos($sql, 'SELECT');
30 $isMaxExecutionTimeoutAlreadyPresent = stripos($sql, 'max_statement_time=') !== \false;
31 if ($pos !== \false && !$isMaxExecutionTimeoutAlreadyPresent) {
32 $maxExecutionTimeHint = 'SET STATEMENT max_statement_time=' . ceil($limit) . ' FOR ';
33 $sql = substr_replace($sql, $maxExecutionTimeHint . 'SELECT', $pos, strlen('SELECT'));
34 }
35 return $sql;
36 }
37 public function isOptimizeInnoDBSupported() : bool
38 {
39 $version = strtolower($this->getVersion());
40 $semanticVersion = strstr($version, '-', $beforeNeedle = \true);
41 return version_compare($semanticVersion, '10.1.1', '>=');
42 }
43 }
44