aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/includes/db/db_tools.php
diff options
context:
space:
mode:
authorChris Smith <toonarmy@phpbb.com>2010-09-05 02:41:34 +0100
committerChris Smith <toonarmy@phpbb.com>2010-09-05 02:41:34 +0100
commit1b3b79b694918bd30a0bbac2a5f34553aaa15cb5 (patch)
tree02ee3e1eddf8dca6b6b4acddfdda5dee63aadad6 /phpBB/includes/db/db_tools.php
parent7de1fc40b327db799ecd8e793b7e1b3e9d3f705e (diff)
parente7b86871f077bb0d9ad819a6405607232fdd078f (diff)
downloadforums-1b3b79b694918bd30a0bbac2a5f34553aaa15cb5.tar
forums-1b3b79b694918bd30a0bbac2a5f34553aaa15cb5.tar.gz
forums-1b3b79b694918bd30a0bbac2a5f34553aaa15cb5.tar.bz2
forums-1b3b79b694918bd30a0bbac2a5f34553aaa15cb5.tar.xz
forums-1b3b79b694918bd30a0bbac2a5f34553aaa15cb5.zip
Merge branch 'ticket/evil3/8944' into develop-olympus
* ticket/evil3/8944: [ticket/8944] Patch db_tools to support index length for MySQL4 [ticket/8944] Add index length to CREATE INDEX for MySQL4 in database_update
Diffstat (limited to 'phpBB/includes/db/db_tools.php')
-rw-r--r--phpBB/includes/db/db_tools.php18
1 files changed, 17 insertions, 1 deletions
diff --git a/phpBB/includes/db/db_tools.php b/phpBB/includes/db/db_tools.php
index 819ef69c96..f4b181c6ad 100644
--- a/phpBB/includes/db/db_tools.php
+++ b/phpBB/includes/db/db_tools.php
@@ -611,7 +611,7 @@ class phpbb_db_tools
* drop_columns: Removing/Dropping columns
* add_primary_keys: adding primary keys
* add_unique_index: adding an unique index
- * add_index: adding an index
+ * add_index: adding an index (can be column:index_size if you need to provide size)
*
* The values are in this format:
* {TABLE NAME} => array(
@@ -1804,6 +1804,12 @@ class phpbb_db_tools
{
$statements = array();
+ // remove index length unless MySQL4
+ if ('mysql_40' != $this->sql_layer)
+ {
+ $column = preg_replace('#:.*$#', '', $column);
+ }
+
switch ($this->sql_layer)
{
case 'firebird':
@@ -1814,6 +1820,16 @@ class phpbb_db_tools
break;
case 'mysql_40':
+ // add index size to definition as required by MySQL4
+ foreach ($column as $i => $col)
+ {
+ if (false !== strpos($col, ':'))
+ {
+ list($col, $index_size) = explode(':', $col);
+ $column[$i] = "$col($index_size)";
+ }
+ }
+ // no break
case 'mysql_41':
$statements[] = 'CREATE INDEX ' . $index_name . ' ON ' . $table_name . '(' . implode(', ', $column) . ')';
break;