PluginProbe ʕ •ᴥ•ʔ
Matomo Analytics – Powerful, Privacy-First Insights for WordPress / 5.1.6
Matomo Analytics – Powerful, Privacy-First Insights for WordPress v5.1.6
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 / Tidb.php
matomo / app / core / Db / Schema Last commit date
Mariadb.php 2 years ago Mysql.php 1 year ago Tidb.php 1 year ago
Tidb.php
58 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 Tidb extends \Piwik\Db\Schema\Mysql
15 {
16 /**
17 * TiDB performs a sanity check before performing e.g. ALTER TABLE statements. If any of the used columns does not
18 * exist before the query fails. This also happens if the column would be added in the same query.
19 *
20 * @return bool
21 */
22 public function supportsComplexColumnUpdates() : bool
23 {
24 return false;
25 }
26 public function getDefaultCollationForCharset(string $charset) : string
27 {
28 $collation = parent::getDefaultCollationForCharset($charset);
29 if ('utf8mb4' === $charset && 'utf8mb4_bin' === $collation) {
30 // replace the TiDB default "utf8mb4_bin" with a better default
31 return 'utf8mb4_0900_ai_ci';
32 }
33 return $collation;
34 }
35 public function getDefaultPort() : int
36 {
37 return 4000;
38 }
39 public function getTableCreateOptions() : string
40 {
41 $engine = $this->getTableEngine();
42 $charset = $this->getUsedCharset();
43 $collation = $this->getUsedCollation();
44 $rowFormat = $this->getTableRowFormat();
45 if ('utf8mb4' === $charset && '' === $collation) {
46 $collation = 'utf8mb4_0900_ai_ci';
47 }
48 $options = "ENGINE={$engine} DEFAULT CHARSET={$charset}";
49 if ('' !== $collation) {
50 $options .= " COLLATE={$collation}";
51 }
52 if ('' !== $rowFormat) {
53 $options .= " {$rowFormat}";
54 }
55 return $options;
56 }
57 }
58