Verzeichnisstruktur phpBB-3.0.0


Veröffentlicht
12.12.2007

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

      (Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

mysql_upgrader.php

Zuletzt modifiziert: 09.10.2024, 12:50 - Dateigröße: 43.58 KiB


 0001  <?php
 0002  /** 
 0003  *
 0004  * @package phpBB3
 0005  * @version $Id$
 0006  * @copyright (c) 2006 phpBB Group 
 0007  * @license http://opensource.org/licenses/gpl-license.php GNU Public License 
 0008  *
 0009  * This file creates SQL statements to upgrade phpBB on MySQL 3.x/4.0.x to 4.1.x/5.x
 0010  *
 0011  */
 0012   
 0013   
 0014  //
 0015  // Security message:
 0016  //
 0017  // This script is potentially dangerous.
 0018  // Remove or comment the next line (die(".... ) to enable this script.
 0019  // Do NOT FORGET to either remove this script or disable it after you have used it.
 0020  //
 0021  die("Please read the first lines of this script for instructions on how to enable it");
 0022   
 0023  define('IN_PHPBB', true);
 0024  $phpEx = substr(strrchr(__FILE__, '.'), 1);
 0025  include($phpbb_root_path . 'common.' . $phpEx);
 0026   
 0027  $prefix = $table_prefix;
 0028   
 0029  $newline = "\n";
 0030   
 0031  if (PHP_SAPI !== 'cli')
 0032  {
 0033      $newline = '<br>';
 0034  }
 0035   
 0036  $sql = 'DESCRIBE ' . POSTS_TABLE . ' post_text';
 0037  $result = $db->sql_query($sql);
 0038   
 0039  $row = $db->sql_fetchrow($result);
 0040   
 0041  $db->sql_freeresult($result);
 0042   
 0043  $mysql_indexer = false;
 0044   
 0045  if (strtolower($row['Type']) === 'mediumtext')
 0046  {
 0047      $mysql_indexer = true;
 0048  }
 0049   
 0050  echo "USE $dbname;$newline$newline";
 0051   
 0052   
 0053  @set_time_limit(0);
 0054   
 0055  $schema_data = get_schema_struct();
 0056  $dbms_type_map = array(
 0057      'mysql_41'    => array(
 0058          'INT:'        => 'int(%d)',
 0059          'BINT'        => 'bigint(20)',
 0060          'UINT'        => 'mediumint(8) UNSIGNED',
 0061          'UINT:'        => 'int(%d) UNSIGNED',
 0062          'TINT:'        => 'tinyint(%d)',
 0063          'USINT'        => 'smallint(4) UNSIGNED',
 0064          'BOOL'        => 'tinyint(1) UNSIGNED',
 0065          'VCHAR'        => 'varchar(255)',
 0066          'VCHAR:'    => 'varchar(%d)',
 0067          'CHAR:'        => 'char(%d)',
 0068          'XSTEXT'    => 'text',
 0069          'XSTEXT_UNI'=> 'varchar(100)',
 0070          'STEXT'        => 'text',
 0071          'STEXT_UNI'    => 'varchar(255)',
 0072          'TEXT'        => 'text',
 0073          'TEXT_UNI'    => 'text',
 0074          'MTEXT'        => 'mediumtext',
 0075          'MTEXT_UNI'    => 'mediumtext',
 0076          'TIMESTAMP'    => 'int(11) UNSIGNED',
 0077          'DECIMAL'    => 'decimal(5,2)',
 0078          'DECIMAL:'    => 'decimal(%d,2)',
 0079          'PDECIMAL'    => 'decimal(6,3)',
 0080          'PDECIMAL:'    => 'decimal(%d,3)',
 0081          'VCHAR_UNI'    => 'varchar(255)',
 0082          'VCHAR_UNI:'=> 'varchar(%d)',
 0083          'VCHAR_CI'    => 'varchar(255)',
 0084          'VARBINARY'    => 'varbinary(255)',
 0085      ),
 0086   
 0087      'mysql_40'    => array(
 0088          'INT:'        => 'int(%d)',
 0089          'BINT'        => 'bigint(20)',
 0090          'UINT'        => 'mediumint(8) UNSIGNED',
 0091          'UINT:'        => 'int(%d) UNSIGNED',
 0092          'TINT:'        => 'tinyint(%d)',
 0093          'USINT'        => 'smallint(4) UNSIGNED',
 0094          'BOOL'        => 'tinyint(1) UNSIGNED',
 0095          'VCHAR'        => 'varbinary(255)',
 0096          'VCHAR:'    => 'varbinary(%d)',
 0097          'CHAR:'        => 'binary(%d)',
 0098          'XSTEXT'    => 'blob',
 0099          'XSTEXT_UNI'=> 'blob',
 0100          'STEXT'        => 'blob',
 0101          'STEXT_UNI'    => 'blob',
 0102          'TEXT'        => 'blob',
 0103          'TEXT_UNI'    => 'blob',
 0104          'MTEXT'        => 'mediumblob',
 0105          'MTEXT_UNI'    => 'mediumblob',
 0106          'TIMESTAMP'    => 'int(11) UNSIGNED',
 0107          'DECIMAL'    => 'decimal(5,2)',
 0108          'DECIMAL:'    => 'decimal(%d,2)',
 0109          'PDECIMAL'    => 'decimal(6,3)',
 0110          'PDECIMAL:'    => 'decimal(%d,3)',
 0111          'VCHAR_UNI'    => 'blob',
 0112          'VCHAR_UNI:'=> array('varbinary(%d)', 'limit' => array('mult', 3, 255, 'blob')),
 0113          'VCHAR_CI'    => 'blob',
 0114          'VARBINARY'    => 'varbinary(255)',
 0115      ),
 0116  );
 0117   
 0118  foreach ($schema_data as $table_name => $table_data)
 0119  {
 0120      $table_name = str_replace('phpbb_', $prefix, $table_name);
 0121      // Write comment about table
 0122      echo "# Table: '{$table_name}'$newline";
 0123   
 0124      // Create Table statement
 0125      $generator = $textimage = false;
 0126   
 0127      $line = "ALTER TABLE {$table_name} $newline";
 0128   
 0129      // Table specific so we don't get overlap
 0130      $modded_array = array(); 
 0131   
 0132      // Write columns one by one...
 0133      foreach ($table_data['COLUMNS'] as $column_name => $column_data)
 0134      {
 0135          // Get type
 0136          if (strpos($column_data[0], ':') !== false)
 0137          {
 0138              list($orig_column_type, $column_length) = explode(':', $column_data[0]);
 0139              $column_type = sprintf($dbms_type_map['mysql_41'][$orig_column_type . ':'], $column_length);
 0140   
 0141              if (isset($dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][0]))
 0142              {
 0143                  switch ($dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][0])
 0144                  {
 0145                      case 'mult':
 0146                          if (($column_length * $dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][1]) > $dbms_type_map['mysql_40'][$orig_column_type . ':']['limit'][2])
 0147                          {
 0148                              $modded_array[$column_name] = $column_type;
 0149                          }
 0150                      break;
 0151                  }
 0152              }
 0153   
 0154              $orig_column_type .= ':';
 0155          }
 0156          else
 0157          {
 0158              $orig_column_type = $column_data[0];
 0159              $other_column_type = $dbms_type_map['mysql_40'][$column_data[0]];
 0160              if ($other_column_type == 'text' || $other_column_type == 'blob')
 0161              {
 0162                  $modded_array[$column_name] = $column_type;
 0163              }
 0164              $column_type = $dbms_type_map['mysql_41'][$column_data[0]];
 0165          }
 0166   
 0167          // Adjust default value if db-dependant specified
 0168          if (is_array($column_data[1]))
 0169          {
 0170              $column_data[1] = (isset($column_data[1][$dbms])) ? $column_data[1][$dbms] : $column_data[1]['default'];
 0171          }
 0172   
 0173          $line .= "\tMODIFY {$column_name} {$column_type} ";
 0174   
 0175          // For hexadecimal values do not use single quotes
 0176          if (!is_null($column_data[1]) && substr($column_type, -4) !== 'text' && substr($column_type, -4) !== 'blob')
 0177          {
 0178              $line .= (strpos($column_data[1], '0x') === 0) ? "DEFAULT {$column_data[1]} " : "DEFAULT '{$column_data[1]}' ";
 0179          }
 0180          $line .= 'NOT NULL';
 0181   
 0182          if (isset($column_data[2]))
 0183          {
 0184              if ($column_data[2] == 'auto_increment')
 0185              {
 0186                  $line .= ' auto_increment';
 0187              }
 0188              else if ($column_data[2] == 'true_sort')
 0189              {
 0190                  $line .= ' COLLATE utf8_unicode_ci';
 0191              }
 0192              else if ($column_data[2] == 'no_sort')
 0193              {
 0194                  $line .= ' COLLATE utf8_bin';
 0195              }
 0196          }
 0197          else if (preg_match('/(?:var)?char|(?:medium)?text/i', $column_type))
 0198          {
 0199              $line .= ' COLLATE utf8_bin';
 0200          }
 0201   
 0202          $line .= ",$newline";
 0203      }
 0204   
 0205      // Write Keys
 0206      if (isset($table_data['KEYS']))
 0207      {
 0208          foreach ($table_data['KEYS'] as $key_name => $key_data)
 0209          {
 0210              $temp = '';
 0211              if (!is_array($key_data[1]))
 0212              {
 0213                  $key_data[1] = array($key_data[1]);
 0214              }
 0215   
 0216              $temp .= ($key_data[0] == 'INDEX') ? "\tADD KEY" : '';
 0217              $temp .= ($key_data[0] == 'UNIQUE') ? "\tADD UNIQUE" : '';
 0218              $repair = false;
 0219              foreach ($key_data[1] as $key => $col_name)
 0220              {
 0221                  if (isset($modded_array[$col_name]))
 0222                  {
 0223                      $repair = true;
 0224                  }
 0225              }
 0226              if ($repair)
 0227              {
 0228                  $line .= "\tDROP INDEX " . $key_name . ",$newline";
 0229                  $line .= $temp;
 0230                  $line .= ' ' . $key_name . ' (' . implode(', ', $key_data[1]) . "),$newline";
 0231              }
 0232          }
 0233      }
 0234   
 0235      //$line .= "\tCONVERT TO CHARACTER SET `utf8`$newline";
 0236      $line .= "\tDEFAULT CHARSET=utf8 COLLATE=utf8_bin;$newline$newline";
 0237   
 0238      echo $line . "$newline";
 0239  }
 0240   
 0241  /**
 0242  * Define the basic structure
 0243  * The format:
 0244  *        array('{TABLE_NAME}' => {TABLE_DATA})
 0245  *        {TABLE_DATA}:
 0246  *            COLUMNS = array({column_name} = array({column_type}, {default}, {auto_increment}))
 0247  *            PRIMARY_KEY = {column_name(s)}
 0248  *            KEYS = array({key_name} = array({key_type}, {column_name(s)})),
 0249  *
 0250  *    Column Types:
 0251  *    INT:x        => SIGNED int(x)
 0252  *    BINT        => BIGINT
 0253  *    UINT        => mediumint(8) UNSIGNED
 0254  *    UINT:x        => int(x) UNSIGNED
 0255  *    TINT:x        => tinyint(x)
 0256  *    USINT        => smallint(4) UNSIGNED (for _order columns)
 0257  *    BOOL        => tinyint(1) UNSIGNED
 0258  *    VCHAR        => varchar(255)
 0259  *    CHAR:x        => char(x)
 0260  *    XSTEXT_UNI    => text for storing 100 characters (topic_title for example)
 0261  *    STEXT_UNI    => text for storing 255 characters (normal input field with a max of 255 single-byte chars) - same as VCHAR_UNI
 0262  *    TEXT_UNI    => text for storing 3000 characters (short text, descriptions, comments, etc.)
 0263  *    MTEXT_UNI    => mediumtext (post text, large text)
 0264  *    VCHAR:x        => varchar(x)
 0265  *    TIMESTAMP    => int(11) UNSIGNED
 0266  *    DECIMAL        => decimal number (5,2)
 0267  *    DECIMAL:    => decimal number (x,2)
 0268  *    PDECIMAL    => precision decimal number (6,3)
 0269  *    PDECIMAL:    => precision decimal number (x,3)
 0270  *    VCHAR_UNI    => varchar(255) BINARY
 0271  *    VCHAR_CI    => varchar_ci for postgresql, others VCHAR
 0272  */
 0273  function get_schema_struct()
 0274  {
 0275      $schema_data = array();
 0276   
 0277      $schema_data['phpbb_attachments'] = array(
 0278          'COLUMNS'        => array(
 0279              'attach_id'            => array('UINT', NULL, 'auto_increment'),
 0280              'post_msg_id'        => array('UINT', 0),
 0281              'topic_id'            => array('UINT', 0),
 0282              'in_message'        => array('BOOL', 0),
 0283              'poster_id'            => array('UINT', 0),
 0284              'is_orphan'            => array('BOOL', 1),
 0285              'physical_filename'    => array('VCHAR', ''),
 0286              'real_filename'        => array('VCHAR', ''),
 0287              'download_count'    => array('UINT', 0),
 0288              'attach_comment'    => array('TEXT_UNI', ''),
 0289              'extension'            => array('VCHAR:100', ''),
 0290              'mimetype'            => array('VCHAR:100', ''),
 0291              'filesize'            => array('UINT:20', 0),
 0292              'filetime'            => array('TIMESTAMP', 0),
 0293              'thumbnail'            => array('BOOL', 0),
 0294          ),
 0295          'PRIMARY_KEY'    => 'attach_id',
 0296          'KEYS'            => array(
 0297              'filetime'            => array('INDEX', 'filetime'),
 0298              'post_msg_id'        => array('INDEX', 'post_msg_id'),
 0299              'topic_id'            => array('INDEX', 'topic_id'),
 0300              'poster_id'            => array('INDEX', 'poster_id'),
 0301              'is_orphan'            => array('INDEX', 'is_orphan'),
 0302          ),
 0303      );
 0304   
 0305      $schema_data['phpbb_acl_groups'] = array(
 0306          'COLUMNS'        => array(
 0307              'group_id'            => array('UINT', 0),
 0308              'forum_id'            => array('UINT', 0),
 0309              'auth_option_id'    => array('UINT', 0),
 0310              'auth_role_id'        => array('UINT', 0),
 0311              'auth_setting'        => array('TINT:2', 0),
 0312          ),
 0313          'KEYS'            => array(
 0314              'group_id'        => array('INDEX', 'group_id'),
 0315              'auth_opt_id'    => array('INDEX', 'auth_option_id'),
 0316              'auth_role_id'    => array('INDEX', 'auth_role_id'),
 0317          ),
 0318      );
 0319   
 0320      $schema_data['phpbb_acl_options'] = array(
 0321          'COLUMNS'        => array(
 0322              'auth_option_id'    => array('UINT', NULL, 'auto_increment'),
 0323              'auth_option'        => array('VCHAR:50', ''),
 0324              'is_global'            => array('BOOL', 0),
 0325              'is_local'            => array('BOOL', 0),
 0326              'founder_only'        => array('BOOL', 0),
 0327          ),
 0328          'PRIMARY_KEY'    => 'auth_option_id',
 0329          'KEYS'            => array(
 0330              'auth_option'        => array('INDEX', 'auth_option'),
 0331          ),
 0332      );
 0333   
 0334      $schema_data['phpbb_acl_roles'] = array(
 0335          'COLUMNS'        => array(
 0336              'role_id'            => array('UINT', NULL, 'auto_increment'),
 0337              'role_name'            => array('VCHAR_UNI', ''),
 0338              'role_description'    => array('TEXT_UNI', ''),
 0339              'role_type'            => array('VCHAR:10', ''),
 0340              'role_order'        => array('USINT', 0),
 0341          ),
 0342          'PRIMARY_KEY'    => 'role_id',
 0343          'KEYS'            => array(
 0344              'role_type'            => array('INDEX', 'role_type'),
 0345              'role_order'        => array('INDEX', 'role_order'),
 0346          ),
 0347      );
 0348   
 0349      $schema_data['phpbb_acl_roles_data'] = array(
 0350          'COLUMNS'        => array(
 0351              'role_id'            => array('UINT', 0),
 0352              'auth_option_id'    => array('UINT', 0),
 0353              'auth_setting'        => array('TINT:2', 0),
 0354          ),
 0355          'PRIMARY_KEY'    => array('role_id', 'auth_option_id'),
 0356          'KEYS'            => array(
 0357              'ath_op_id'            => array('INDEX', 'auth_option_id'),
 0358          ),
 0359      );
 0360   
 0361      $schema_data['phpbb_acl_users'] = array(
 0362          'COLUMNS'        => array(
 0363              'user_id'            => array('UINT', 0),
 0364              'forum_id'            => array('UINT', 0),
 0365              'auth_option_id'    => array('UINT', 0),
 0366              'auth_role_id'        => array('UINT', 0),
 0367              'auth_setting'        => array('TINT:2', 0),
 0368          ),
 0369          'KEYS'            => array(
 0370              'user_id'            => array('INDEX', 'user_id'),
 0371              'auth_option_id'    => array('INDEX', 'auth_option_id'),
 0372              'auth_role_id'        => array('INDEX', 'auth_role_id'),
 0373          ),
 0374      );
 0375   
 0376      $schema_data['phpbb_banlist'] = array(
 0377          'COLUMNS'        => array(
 0378              'ban_id'            => array('UINT', NULL, 'auto_increment'),
 0379              'ban_userid'        => array('UINT', 0),
 0380              'ban_ip'            => array('VCHAR:40', ''),
 0381              'ban_email'            => array('VCHAR_UNI:100', ''),
 0382              'ban_start'            => array('TIMESTAMP', 0),
 0383              'ban_end'            => array('TIMESTAMP', 0),
 0384              'ban_exclude'        => array('BOOL', 0),
 0385              'ban_reason'        => array('VCHAR_UNI', ''),
 0386              'ban_give_reason'    => array('VCHAR_UNI', ''),
 0387          ),
 0388          'PRIMARY_KEY'            => 'ban_id',
 0389          'KEYS'            => array(
 0390              'ban_end'            => array('INDEX', 'ban_end'),
 0391              'ban_user'            => array('INDEX', array('ban_userid', 'ban_exclude')),
 0392              'ban_email'            => array('INDEX', array('ban_email', 'ban_exclude')),
 0393              'ban_ip'            => array('INDEX', array('ban_ip', 'ban_exclude')),
 0394          ),
 0395      );
 0396   
 0397      $schema_data['phpbb_bbcodes'] = array(
 0398          'COLUMNS'        => array(
 0399              'bbcode_id'                => array('TINT:3', 0),
 0400              'bbcode_tag'            => array('VCHAR:16', ''),
 0401              'bbcode_helpline'        => array('VCHAR_UNI', ''),
 0402              'display_on_posting'    => array('BOOL', 0),
 0403              'bbcode_match'            => array('TEXT_UNI', ''),
 0404              'bbcode_tpl'            => array('MTEXT_UNI', ''),
 0405              'first_pass_match'        => array('MTEXT_UNI', ''),
 0406              'first_pass_replace'    => array('MTEXT_UNI', ''),
 0407              'second_pass_match'        => array('MTEXT_UNI', ''),
 0408              'second_pass_replace'    => array('MTEXT_UNI', ''),
 0409          ),
 0410          'PRIMARY_KEY'    => 'bbcode_id',
 0411          'KEYS'            => array(
 0412              'display_on_post'        => array('INDEX', 'display_on_posting'),
 0413          ),
 0414      );
 0415   
 0416      $schema_data['phpbb_bookmarks'] = array(
 0417          'COLUMNS'        => array(
 0418              'topic_id'            => array('UINT', 0),
 0419              'user_id'            => array('UINT', 0),
 0420          ),
 0421          'PRIMARY_KEY'            => array('topic_id', 'user_id'),
 0422      );
 0423   
 0424      $schema_data['phpbb_bots'] = array(
 0425          'COLUMNS'        => array(
 0426              'bot_id'            => array('UINT', NULL, 'auto_increment'),
 0427              'bot_active'        => array('BOOL', 1),
 0428              'bot_name'            => array('STEXT_UNI', ''),
 0429              'user_id'            => array('UINT', 0),
 0430              'bot_agent'            => array('VCHAR', ''),
 0431              'bot_ip'            => array('VCHAR', ''),
 0432          ),
 0433          'PRIMARY_KEY'    => 'bot_id',
 0434          'KEYS'            => array(
 0435              'bot_active'        => array('INDEX', 'bot_active'),
 0436          ),
 0437      );
 0438   
 0439      $schema_data['phpbb_config'] = array(
 0440          'COLUMNS'        => array(
 0441              'config_name'        => array('VCHAR', ''),
 0442              'config_value'        => array('VCHAR_UNI', ''),
 0443              'is_dynamic'        => array('BOOL', 0),
 0444          ),
 0445          'PRIMARY_KEY'    => 'config_name',
 0446          'KEYS'            => array(
 0447              'is_dynamic'        => array('INDEX', 'is_dynamic'),
 0448          ),
 0449      );
 0450   
 0451      $schema_data['phpbb_confirm'] = array(
 0452          'COLUMNS'        => array(
 0453              'confirm_id'        => array('CHAR:32', ''),
 0454              'session_id'        => array('CHAR:32', ''),
 0455              'confirm_type'        => array('TINT:3', 0),
 0456              'code'                => array('VCHAR:8', ''),
 0457              'seed'                => array('UINT:10', 0),
 0458          ),
 0459          'PRIMARY_KEY'    => array('session_id', 'confirm_id'),
 0460          'KEYS'            => array(
 0461              'confirm_type'        => array('INDEX', 'confirm_type'),
 0462          ),
 0463      );
 0464   
 0465      $schema_data['phpbb_disallow'] = array(
 0466          'COLUMNS'        => array(
 0467              'disallow_id'        => array('UINT', NULL, 'auto_increment'),
 0468              'disallow_username'    => array('VCHAR_UNI:255', ''),
 0469          ),
 0470          'PRIMARY_KEY'    => 'disallow_id',
 0471      );
 0472   
 0473      $schema_data['phpbb_drafts'] = array(
 0474          'COLUMNS'        => array(
 0475              'draft_id'            => array('UINT', NULL, 'auto_increment'),
 0476              'user_id'            => array('UINT', 0),
 0477              'topic_id'            => array('UINT', 0),
 0478              'forum_id'            => array('UINT', 0),
 0479              'save_time'            => array('TIMESTAMP', 0),
 0480              'draft_subject'        => array('XSTEXT_UNI', ''),
 0481              'draft_message'        => array('MTEXT_UNI', ''),
 0482          ),
 0483          'PRIMARY_KEY'    => 'draft_id',
 0484          'KEYS'            => array(
 0485              'save_time'            => array('INDEX', 'save_time'),
 0486          ),
 0487      );
 0488   
 0489      $schema_data['phpbb_extensions'] = array(
 0490          'COLUMNS'        => array(
 0491              'extension_id'        => array('UINT', NULL, 'auto_increment'),
 0492              'group_id'            => array('UINT', 0),
 0493              'extension'            => array('VCHAR:100', ''),
 0494          ),
 0495          'PRIMARY_KEY'    => 'extension_id',
 0496      );
 0497   
 0498      $schema_data['phpbb_extension_groups'] = array(
 0499          'COLUMNS'        => array(
 0500              'group_id'            => array('UINT', NULL, 'auto_increment'),
 0501              'group_name'        => array('VCHAR_UNI', ''),
 0502              'cat_id'            => array('TINT:2', 0),
 0503              'allow_group'        => array('BOOL', 0),
 0504              'download_mode'        => array('BOOL', 1),
 0505              'upload_icon'        => array('VCHAR', ''),
 0506              'max_filesize'        => array('UINT:20', 0),
 0507              'allowed_forums'    => array('TEXT', ''),
 0508              'allow_in_pm'        => array('BOOL', 0),
 0509          ),
 0510          'PRIMARY_KEY'    => 'group_id',
 0511      );
 0512   
 0513      $schema_data['phpbb_forums'] = array(
 0514          'COLUMNS'        => array(
 0515              'forum_id'                => array('UINT', NULL, 'auto_increment'),
 0516              'parent_id'                => array('UINT', 0),
 0517              'left_id'                => array('UINT', 0),
 0518              'right_id'                => array('UINT', 0),
 0519              'forum_parents'            => array('MTEXT', ''),
 0520              'forum_name'            => array('STEXT_UNI', ''),
 0521              'forum_desc'            => array('TEXT_UNI', ''),
 0522              'forum_desc_bitfield'    => array('VCHAR:255', ''),
 0523              'forum_desc_options'    => array('UINT:11', 7),
 0524              'forum_desc_uid'        => array('VCHAR:8', ''),
 0525              'forum_link'            => array('VCHAR_UNI', ''),
 0526              'forum_password'        => array('VCHAR_UNI:40', ''),
 0527              'forum_style'            => array('USINT', 0),
 0528              'forum_image'            => array('VCHAR', ''),
 0529              'forum_rules'            => array('TEXT_UNI', ''),
 0530              'forum_rules_link'        => array('VCHAR_UNI', ''),
 0531              'forum_rules_bitfield'    => array('VCHAR:255', ''),
 0532              'forum_rules_options'    => array('UINT:11', 7),
 0533              'forum_rules_uid'        => array('VCHAR:8', ''),
 0534              'forum_topics_per_page'    => array('TINT:4', 0),
 0535              'forum_type'            => array('TINT:4', 0),
 0536              'forum_status'            => array('TINT:4', 0),
 0537              'forum_posts'            => array('UINT', 0),
 0538              'forum_topics'            => array('UINT', 0),
 0539              'forum_topics_real'        => array('UINT', 0),
 0540              'forum_last_post_id'    => array('UINT', 0),
 0541              'forum_last_poster_id'    => array('UINT', 0),
 0542              'forum_last_post_subject' => array('XSTEXT_UNI', ''),
 0543              'forum_last_post_time'    => array('TIMESTAMP', 0),
 0544              'forum_last_poster_name'=> array('VCHAR_UNI', ''),
 0545              'forum_last_poster_colour'=> array('VCHAR:6', ''),
 0546              'forum_flags'            => array('TINT:4', 32),
 0547              'display_on_index'        => array('BOOL', 1),
 0548              'enable_indexing'        => array('BOOL', 1),
 0549              'enable_icons'            => array('BOOL', 1),
 0550              'enable_prune'            => array('BOOL', 0),
 0551              'prune_next'            => array('TIMESTAMP', 0),
 0552              'prune_days'            => array('UINT', 0),
 0553              'prune_viewed'            => array('UINT', 0),
 0554              'prune_freq'            => array('UINT', 0),
 0555          ),
 0556          'PRIMARY_KEY'    => 'forum_id',
 0557          'KEYS'            => array(
 0558              'left_right_id'            => array('INDEX', array('left_id', 'right_id')),
 0559              'forum_lastpost_id'        => array('INDEX', 'forum_last_post_id'),
 0560          ),
 0561      );
 0562   
 0563      $schema_data['phpbb_forums_access'] = array(
 0564          'COLUMNS'        => array(
 0565              'forum_id'                => array('UINT', 0),
 0566              'user_id'                => array('UINT', 0),
 0567              'session_id'            => array('CHAR:32', ''),
 0568          ),
 0569          'PRIMARY_KEY'    => array('forum_id', 'user_id', 'session_id'),
 0570      );
 0571   
 0572      $schema_data['phpbb_forums_track'] = array(
 0573          'COLUMNS'        => array(
 0574              'user_id'                => array('UINT', 0),
 0575              'forum_id'                => array('UINT', 0),
 0576              'mark_time'                => array('TIMESTAMP', 0),
 0577          ),
 0578          'PRIMARY_KEY'    => array('user_id', 'forum_id'),
 0579      );
 0580   
 0581      $schema_data['phpbb_forums_watch'] = array(
 0582          'COLUMNS'        => array(
 0583              'forum_id'                => array('UINT', 0),
 0584              'user_id'                => array('UINT', 0),
 0585              'notify_status'            => array('BOOL', 0),
 0586          ),
 0587          'KEYS'            => array(
 0588              'forum_id'                => array('INDEX', 'forum_id'),
 0589              'user_id'                => array('INDEX', 'user_id'),
 0590              'notify_stat'            => array('INDEX', 'notify_status'),
 0591          ),
 0592      );
 0593   
 0594      $schema_data['phpbb_groups'] = array(
 0595          'COLUMNS'        => array(
 0596              'group_id'                => array('UINT', NULL, 'auto_increment'),
 0597              'group_type'            => array('TINT:4', 1),
 0598              'group_founder_manage'    => array('BOOL', 0),
 0599              'group_name'            => array('VCHAR_CI', ''),
 0600              'group_desc'            => array('TEXT_UNI', ''),
 0601              'group_desc_bitfield'    => array('VCHAR:255', ''),
 0602              'group_desc_options'    => array('UINT:11', 7),
 0603              'group_desc_uid'        => array('VCHAR:8', ''),
 0604              'group_display'            => array('BOOL', 0),
 0605              'group_avatar'            => array('VCHAR', ''),
 0606              'group_avatar_type'        => array('TINT:2', 0),
 0607              'group_avatar_width'    => array('USINT', 0),
 0608              'group_avatar_height'    => array('USINT', 0),
 0609              'group_rank'            => array('UINT', 0),
 0610              'group_colour'            => array('VCHAR:6', ''),
 0611              'group_sig_chars'        => array('UINT', 0),
 0612              'group_receive_pm'        => array('BOOL', 0),
 0613              'group_message_limit'    => array('UINT', 0),
 0614              'group_legend'            => array('BOOL', 1),
 0615          ),
 0616          'PRIMARY_KEY'    => 'group_id',
 0617          'KEYS'            => array(
 0618              'group_legend'            => array('INDEX', 'group_legend'),
 0619          ),
 0620      );
 0621   
 0622      $schema_data['phpbb_icons'] = array(
 0623          'COLUMNS'        => array(
 0624              'icons_id'                => array('UINT', NULL, 'auto_increment'),
 0625              'icons_url'                => array('VCHAR', ''),
 0626              'icons_width'            => array('TINT:4', 0),
 0627              'icons_height'            => array('TINT:4', 0),
 0628              'icons_order'            => array('UINT', 0),
 0629              'display_on_posting'    => array('BOOL', 1),
 0630          ),
 0631          'PRIMARY_KEY'    => 'icons_id',
 0632          'KEYS'            => array(
 0633              'display_on_posting'    => array('INDEX', 'display_on_posting'),
 0634          ),
 0635      );
 0636   
 0637      $schema_data['phpbb_lang'] = array(
 0638          'COLUMNS'        => array(
 0639              'lang_id'                => array('TINT:4', NULL, 'auto_increment'),
 0640              'lang_iso'                => array('VCHAR:30', ''),
 0641              'lang_dir'                => array('VCHAR:30', ''),
 0642              'lang_english_name'        => array('VCHAR_UNI:100', ''),
 0643              'lang_local_name'        => array('VCHAR_UNI:255', ''),
 0644              'lang_author'            => array('VCHAR_UNI:255', ''),
 0645          ),
 0646          'PRIMARY_KEY'    => 'lang_id',
 0647          'KEYS'            => array(
 0648              'lang_iso'                => array('INDEX', 'lang_iso'),
 0649          ),
 0650      );
 0651   
 0652      $schema_data['phpbb_log'] = array(
 0653          'COLUMNS'        => array(
 0654              'log_id'                => array('UINT', NULL, 'auto_increment'),
 0655              'log_type'                => array('TINT:4', 0),
 0656              'user_id'                => array('UINT', 0),
 0657              'forum_id'                => array('UINT', 0),
 0658              'topic_id'                => array('UINT', 0),
 0659              'reportee_id'            => array('UINT', 0),
 0660              'log_ip'                => array('VCHAR:40', ''),
 0661              'log_time'                => array('TIMESTAMP', 0),
 0662              'log_operation'            => array('TEXT_UNI', ''),
 0663              'log_data'                => array('MTEXT_UNI', ''),
 0664          ),
 0665          'PRIMARY_KEY'    => 'log_id',
 0666          'KEYS'            => array(
 0667              'log_type'                => array('INDEX', 'log_type'),
 0668              'forum_id'                => array('INDEX', 'forum_id'),
 0669              'topic_id'                => array('INDEX', 'topic_id'),
 0670              'reportee_id'            => array('INDEX', 'reportee_id'),
 0671              'user_id'                => array('INDEX', 'user_id'),
 0672          ),
 0673      );
 0674   
 0675      $schema_data['phpbb_moderator_cache'] = array(
 0676          'COLUMNS'        => array(
 0677              'forum_id'                => array('UINT', 0),
 0678              'user_id'                => array('UINT', 0),
 0679              'username'                => array('VCHAR_UNI:255', ''),
 0680              'group_id'                => array('UINT', 0),
 0681              'group_name'            => array('VCHAR_UNI', ''),
 0682              'display_on_index'        => array('BOOL', 1),
 0683          ),
 0684          'KEYS'            => array(
 0685              'disp_idx'                => array('INDEX', 'display_on_index'),
 0686              'forum_id'                => array('INDEX', 'forum_id'),
 0687          ),
 0688      );
 0689   
 0690      $schema_data['phpbb_modules'] = array(
 0691          'COLUMNS'        => array(
 0692              'module_id'                => array('UINT', NULL, 'auto_increment'),
 0693              'module_enabled'        => array('BOOL', 1),
 0694              'module_display'        => array('BOOL', 1),
 0695              'module_basename'        => array('VCHAR', ''),
 0696              'module_class'            => array('VCHAR:10', ''),
 0697              'parent_id'                => array('UINT', 0),
 0698              'left_id'                => array('UINT', 0),
 0699              'right_id'                => array('UINT', 0),
 0700              'module_langname'        => array('VCHAR', ''),
 0701              'module_mode'            => array('VCHAR', ''),
 0702              'module_auth'            => array('VCHAR', ''),
 0703          ),
 0704          'PRIMARY_KEY'    => 'module_id',
 0705          'KEYS'            => array(
 0706              'left_right_id'            => array('INDEX', array('left_id', 'right_id')),
 0707              'module_enabled'        => array('INDEX', 'module_enabled'),
 0708              'class_left_id'            => array('INDEX', array('module_class', 'left_id')),
 0709          ),
 0710      );
 0711   
 0712      $schema_data['phpbb_poll_options'] = array(
 0713          'COLUMNS'        => array(
 0714              'poll_option_id'        => array('TINT:4', 0),
 0715              'topic_id'                => array('UINT', 0),
 0716              'poll_option_text'        => array('TEXT_UNI', ''),
 0717              'poll_option_total'        => array('UINT', 0),
 0718          ),
 0719          'KEYS'            => array(
 0720              'poll_opt_id'            => array('INDEX', 'poll_option_id'),
 0721              'topic_id'                => array('INDEX', 'topic_id'),
 0722          ),
 0723      );
 0724   
 0725      $schema_data['phpbb_poll_votes'] = array(
 0726          'COLUMNS'        => array(
 0727              'topic_id'                => array('UINT', 0),
 0728              'poll_option_id'        => array('TINT:4', 0),
 0729              'vote_user_id'            => array('UINT', 0),
 0730              'vote_user_ip'            => array('VCHAR:40', ''),
 0731          ),
 0732          'KEYS'            => array(
 0733              'topic_id'                => array('INDEX', 'topic_id'),
 0734              'vote_user_id'            => array('INDEX', 'vote_user_id'),
 0735              'vote_user_ip'            => array('INDEX', 'vote_user_ip'),
 0736          ),
 0737      );
 0738   
 0739      $schema_data['phpbb_posts'] = array(
 0740          'COLUMNS'        => array(
 0741              'post_id'                => array('UINT', NULL, 'auto_increment'),
 0742              'topic_id'                => array('UINT', 0),
 0743              'forum_id'                => array('UINT', 0),
 0744              'poster_id'                => array('UINT', 0),
 0745              'icon_id'                => array('UINT', 0),
 0746              'poster_ip'                => array('VCHAR:40', ''),
 0747              'post_time'                => array('TIMESTAMP', 0),
 0748              'post_approved'            => array('BOOL', 1),
 0749              'post_reported'            => array('BOOL', 0),
 0750              'enable_bbcode'            => array('BOOL', 1),
 0751              'enable_smilies'        => array('BOOL', 1),
 0752              'enable_magic_url'        => array('BOOL', 1),
 0753              'enable_sig'            => array('BOOL', 1),
 0754              'post_username'            => array('VCHAR_UNI:255', ''),
 0755              'post_subject'            => array('XSTEXT_UNI', '', 'true_sort'),
 0756              'post_text'                => array('MTEXT_UNI', '', ($GLOBALS['mysql_indexer']) ? 'true_sort' : 'no_sort'),
 0757              'post_checksum'            => array('VCHAR:32', ''),
 0758              'post_attachment'        => array('BOOL', 0),
 0759              'bbcode_bitfield'        => array('VCHAR:255', ''),
 0760              'bbcode_uid'            => array('VCHAR:8', ''),
 0761              'post_postcount'        => array('BOOL', 1),
 0762              'post_edit_time'        => array('TIMESTAMP', 0),
 0763              'post_edit_reason'        => array('STEXT_UNI', ''),
 0764              'post_edit_user'        => array('UINT', 0),
 0765              'post_edit_count'        => array('USINT', 0),
 0766              'post_edit_locked'        => array('BOOL', 0),
 0767          ),
 0768          'PRIMARY_KEY'    => 'post_id',
 0769          'KEYS'            => array(
 0770              'forum_id'                => array('INDEX', 'forum_id'),
 0771              'topic_id'                => array('INDEX', 'topic_id'),
 0772              'poster_ip'                => array('INDEX', 'poster_ip'),
 0773              'poster_id'                => array('INDEX', 'poster_id'),
 0774              'post_approved'            => array('INDEX', 'post_approved'),
 0775              'tid_post_time'            => array('INDEX', array('topic_id', 'post_time')),
 0776          ),
 0777      );
 0778   
 0779      $schema_data['phpbb_privmsgs'] = array(
 0780          'COLUMNS'        => array(
 0781              'msg_id'                => array('UINT', NULL, 'auto_increment'),
 0782              'root_level'            => array('UINT', 0),
 0783              'author_id'                => array('UINT', 0),
 0784              'icon_id'                => array('UINT', 0),
 0785              'author_ip'                => array('VCHAR:40', ''),
 0786              'message_time'            => array('TIMESTAMP', 0),
 0787              'enable_bbcode'            => array('BOOL', 1),
 0788              'enable_smilies'        => array('BOOL', 1),
 0789              'enable_magic_url'        => array('BOOL', 1),
 0790              'enable_sig'            => array('BOOL', 1),
 0791              'message_subject'        => array('XSTEXT_UNI', ''),
 0792              'message_text'            => array('MTEXT_UNI', ''),
 0793              'message_edit_reason'    => array('STEXT_UNI', ''),
 0794              'message_edit_user'        => array('UINT', 0),
 0795              'message_attachment'    => array('BOOL', 0),
 0796              'bbcode_bitfield'        => array('VCHAR:255', ''),
 0797              'bbcode_uid'            => array('VCHAR:8', ''),
 0798              'message_edit_time'        => array('TIMESTAMP', 0),
 0799              'message_edit_count'    => array('USINT', 0),
 0800              'to_address'            => array('TEXT_UNI', ''),
 0801              'bcc_address'            => array('TEXT_UNI', ''),
 0802          ),
 0803          'PRIMARY_KEY'    => 'msg_id',
 0804          'KEYS'            => array(
 0805              'author_ip'                => array('INDEX', 'author_ip'),
 0806              'message_time'            => array('INDEX', 'message_time'),
 0807              'author_id'                => array('INDEX', 'author_id'),
 0808              'root_level'            => array('INDEX', 'root_level'),
 0809          ),
 0810      );
 0811   
 0812      $schema_data['phpbb_privmsgs_folder'] = array(
 0813          'COLUMNS'        => array(
 0814              'folder_id'                => array('UINT', NULL, 'auto_increment'),
 0815              'user_id'                => array('UINT', 0),
 0816              'folder_name'            => array('VCHAR_UNI', ''),
 0817              'pm_count'                => array('UINT', 0),
 0818          ),
 0819          'PRIMARY_KEY'    => 'folder_id',
 0820          'KEYS'            => array(
 0821              'user_id'                => array('INDEX', 'user_id'),
 0822          ),
 0823      );
 0824   
 0825      $schema_data['phpbb_privmsgs_rules'] = array(
 0826          'COLUMNS'        => array(
 0827              'rule_id'                => array('UINT', NULL, 'auto_increment'),
 0828              'user_id'                => array('UINT', 0),
 0829              'rule_check'            => array('UINT', 0),
 0830              'rule_connection'        => array('UINT', 0),
 0831              'rule_string'            => array('VCHAR_UNI', ''),
 0832              'rule_user_id'            => array('UINT', 0),
 0833              'rule_group_id'            => array('UINT', 0),
 0834              'rule_action'            => array('UINT', 0),
 0835              'rule_folder_id'        => array('INT:11', 0),
 0836          ),
 0837          'PRIMARY_KEY'    => 'rule_id',
 0838          'KEYS'            => array(
 0839              'user_id'                => array('INDEX', 'user_id'),
 0840          ),
 0841      );
 0842   
 0843      $schema_data['phpbb_privmsgs_to'] = array(
 0844          'COLUMNS'        => array(
 0845              'msg_id'                => array('UINT', 0),
 0846              'user_id'                => array('UINT', 0),
 0847              'author_id'                => array('UINT', 0),
 0848              'pm_deleted'            => array('BOOL', 0),
 0849              'pm_new'                => array('BOOL', 1),
 0850              'pm_unread'                => array('BOOL', 1),
 0851              'pm_replied'            => array('BOOL', 0),
 0852              'pm_marked'                => array('BOOL', 0),
 0853              'pm_forwarded'            => array('BOOL', 0),
 0854              'folder_id'                => array('INT:11', 0),
 0855          ),
 0856          'KEYS'            => array(
 0857              'msg_id'                => array('INDEX', 'msg_id'),
 0858              'author_id'                => array('INDEX', 'author_id'),
 0859              'usr_flder_id'            => array('INDEX', array('user_id', 'folder_id')),
 0860          ),
 0861      );
 0862   
 0863      $schema_data['phpbb_profile_fields'] = array(
 0864          'COLUMNS'        => array(
 0865              'field_id'                => array('UINT', NULL, 'auto_increment'),
 0866              'field_name'            => array('VCHAR_UNI', ''),
 0867              'field_type'            => array('TINT:4', 0),
 0868              'field_ident'            => array('VCHAR:20', ''),
 0869              'field_length'            => array('VCHAR:20', ''),
 0870              'field_minlen'            => array('VCHAR', ''),
 0871              'field_maxlen'            => array('VCHAR', ''),
 0872              'field_novalue'            => array('VCHAR_UNI', ''),
 0873              'field_default_value'    => array('VCHAR_UNI', ''),
 0874              'field_validation'        => array('VCHAR_UNI:20', ''),
 0875              'field_required'        => array('BOOL', 0),
 0876              'field_show_on_reg'        => array('BOOL', 0),
 0877              'field_hide'            => array('BOOL', 0),
 0878              'field_no_view'            => array('BOOL', 0),
 0879              'field_active'            => array('BOOL', 0),
 0880              'field_order'            => array('UINT', 0),
 0881          ),
 0882          'PRIMARY_KEY'    => 'field_id',
 0883          'KEYS'            => array(
 0884              'fld_type'            => array('INDEX', 'field_type'),
 0885              'fld_ordr'            => array('INDEX', 'field_order'),
 0886          ),
 0887      );
 0888   
 0889      $schema_data['phpbb_profile_fields_data'] = array(
 0890          'COLUMNS'        => array(
 0891              'user_id'                => array('UINT', 0),
 0892          ),
 0893          'PRIMARY_KEY'    => 'user_id',
 0894      );
 0895   
 0896      $schema_data['phpbb_profile_fields_lang'] = array(
 0897          'COLUMNS'        => array(
 0898              'field_id'                => array('UINT', 0),
 0899              'lang_id'                => array('UINT', 0),
 0900              'option_id'                => array('UINT', 0),
 0901              'field_type'            => array('TINT:4', 0),
 0902              'lang_value'            => array('VCHAR_UNI', ''),
 0903          ),
 0904          'PRIMARY_KEY'    => array('field_id', 'lang_id', 'option_id'),
 0905      );
 0906   
 0907      $schema_data['phpbb_profile_lang'] = array(
 0908          'COLUMNS'        => array(
 0909              'field_id'                => array('UINT', 0),
 0910              'lang_id'                => array('UINT', 0),
 0911              'lang_name'                => array('VCHAR_UNI', ''),
 0912              'lang_explain'            => array('TEXT_UNI', ''),
 0913              'lang_default_value'    => array('VCHAR_UNI', ''),
 0914          ),
 0915          'PRIMARY_KEY'    => array('field_id', 'lang_id'),
 0916      );
 0917   
 0918      $schema_data['phpbb_ranks'] = array(
 0919          'COLUMNS'        => array(
 0920              'rank_id'                => array('UINT', NULL, 'auto_increment'),
 0921              'rank_title'            => array('VCHAR_UNI', ''),
 0922              'rank_min'                => array('UINT', 0),
 0923              'rank_special'            => array('BOOL', 0),
 0924              'rank_image'            => array('VCHAR', ''),
 0925          ),
 0926          'PRIMARY_KEY'    => 'rank_id',
 0927      );
 0928   
 0929      $schema_data['phpbb_reports'] = array(
 0930          'COLUMNS'        => array(
 0931              'report_id'                => array('UINT', NULL, 'auto_increment'),
 0932              'reason_id'                => array('USINT', 0),
 0933              'post_id'                => array('UINT', 0),
 0934              'user_id'                => array('UINT', 0),
 0935              'user_notify'            => array('BOOL', 0),
 0936              'report_closed'            => array('BOOL', 0),
 0937              'report_time'            => array('TIMESTAMP', 0),
 0938              'report_text'            => array('MTEXT_UNI', ''),
 0939          ),
 0940          'PRIMARY_KEY'    => 'report_id',
 0941      );
 0942   
 0943      $schema_data['phpbb_reports_reasons'] = array(
 0944          'COLUMNS'        => array(
 0945              'reason_id'                => array('USINT', NULL, 'auto_increment'),
 0946              'reason_title'            => array('VCHAR_UNI', ''),
 0947              'reason_description'    => array('MTEXT_UNI', ''),
 0948              'reason_order'            => array('USINT', 0),
 0949          ),
 0950          'PRIMARY_KEY'    => 'reason_id',
 0951      );
 0952   
 0953      $schema_data['phpbb_search_results'] = array(
 0954          'COLUMNS'        => array(
 0955              'search_key'            => array('VCHAR:32', ''),
 0956              'search_time'            => array('TIMESTAMP', 0),
 0957              'search_keywords'        => array('MTEXT_UNI', ''),
 0958              'search_authors'        => array('MTEXT', ''),
 0959          ),
 0960          'PRIMARY_KEY'    => 'search_key',
 0961      );
 0962   
 0963      $schema_data['phpbb_search_wordlist'] = array(
 0964          'COLUMNS'        => array(
 0965              'word_id'            => array('UINT', NULL, 'auto_increment'),
 0966              'word_text'            => array('VCHAR_UNI', ''),
 0967              'word_common'        => array('BOOL', 0),
 0968              'word_count'        => array('UINT', 0),
 0969          ),
 0970          'PRIMARY_KEY'    => 'word_id',
 0971          'KEYS'            => array(
 0972              'wrd_txt'            => array('UNIQUE', 'word_text'),
 0973              'wrd_cnt'            => array('INDEX', 'word_count'),
 0974          ),
 0975      );
 0976   
 0977      $schema_data['phpbb_search_wordmatch'] = array(
 0978          'COLUMNS'        => array(
 0979              'post_id'            => array('UINT', 0),
 0980              'word_id'            => array('UINT', 0),
 0981              'title_match'        => array('BOOL', 0),
 0982          ),
 0983          'KEYS'            => array(
 0984              'unq_mtch'            => array('UNIQUE', array('word_id', 'post_id', 'title_match')),
 0985              'word_id'            => array('INDEX', 'word_id'),
 0986              'post_id'            => array('INDEX', 'post_id'),
 0987          ),
 0988      );
 0989   
 0990      $schema_data['phpbb_sessions'] = array(
 0991          'COLUMNS'        => array(
 0992              'session_id'            => array('CHAR:32', ''),
 0993              'session_user_id'        => array('UINT', 0),
 0994              'session_last_visit'    => array('TIMESTAMP', 0),
 0995              'session_start'            => array('TIMESTAMP', 0),
 0996              'session_time'            => array('TIMESTAMP', 0),
 0997              'session_ip'            => array('VCHAR:40', ''),
 0998              'session_browser'        => array('VCHAR:150', ''),
 0999              'session_forwarded_for'    => array('VCHAR:255', ''),
 1000              'session_page'            => array('VCHAR_UNI', ''),
 1001              'session_viewonline'    => array('BOOL', 1),
 1002              'session_autologin'        => array('BOOL', 0),
 1003              'session_admin'            => array('BOOL', 0),
 1004          ),
 1005          'PRIMARY_KEY'    => 'session_id',
 1006          'KEYS'            => array(
 1007              'session_time'        => array('INDEX', 'session_time'),
 1008              'session_user_id'    => array('INDEX', 'session_user_id'),
 1009          ),
 1010      );
 1011   
 1012      $schema_data['phpbb_sessions_keys'] = array(
 1013          'COLUMNS'        => array(
 1014              'key_id'            => array('CHAR:32', ''),
 1015              'user_id'            => array('UINT', 0),
 1016              'last_ip'            => array('VCHAR:40', ''),
 1017              'last_login'        => array('TIMESTAMP', 0),
 1018          ),
 1019          'PRIMARY_KEY'    => array('key_id', 'user_id'),
 1020          'KEYS'            => array(
 1021              'last_login'        => array('INDEX', 'last_login'),
 1022          ),
 1023      );
 1024   
 1025      $schema_data['phpbb_sitelist'] = array(
 1026          'COLUMNS'        => array(
 1027              'site_id'        => array('UINT', NULL, 'auto_increment'),
 1028              'site_ip'        => array('VCHAR:40', ''),
 1029              'site_hostname'    => array('VCHAR', ''),
 1030              'ip_exclude'    => array('BOOL', 0),
 1031          ),
 1032          'PRIMARY_KEY'        => 'site_id',
 1033      );
 1034   
 1035      $schema_data['phpbb_smilies'] = array(
 1036          'COLUMNS'        => array(
 1037              'smiley_id'            => array('UINT', NULL, 'auto_increment'),
 1038              // We may want to set 'code' to VCHAR:50 or check if unicode support is possible... at the moment only ASCII characters are allowed.
 1039              'code'                => array('VCHAR_UNI:50', ''),
 1040              'emotion'            => array('VCHAR_UNI:50', ''),
 1041              'smiley_url'        => array('VCHAR:50', ''),
 1042              'smiley_width'        => array('USINT', 0),
 1043              'smiley_height'        => array('USINT', 0),
 1044              'smiley_order'        => array('UINT', 0),
 1045              'display_on_posting'=> array('BOOL', 1),
 1046          ),
 1047          'PRIMARY_KEY'    => 'smiley_id',
 1048          'KEYS'            => array(
 1049              'display_on_post'        => array('INDEX', 'display_on_posting'),
 1050          ),
 1051      );
 1052   
 1053      $schema_data['phpbb_styles'] = array(
 1054          'COLUMNS'        => array(
 1055              'style_id'                => array('USINT', NULL, 'auto_increment'),
 1056              'style_name'            => array('VCHAR_UNI:255', ''),
 1057              'style_copyright'        => array('VCHAR_UNI', ''),
 1058              'style_active'            => array('BOOL', 1),
 1059              'template_id'            => array('USINT', 0),
 1060              'theme_id'                => array('USINT', 0),
 1061              'imageset_id'            => array('USINT', 0),
 1062          ),
 1063          'PRIMARY_KEY'    => 'style_id',
 1064          'KEYS'            => array(
 1065              'style_name'        => array('UNIQUE', 'style_name'),
 1066              'template_id'        => array('INDEX', 'template_id'),
 1067              'theme_id'            => array('INDEX', 'theme_id'),
 1068              'imageset_id'        => array('INDEX', 'imageset_id'),
 1069          ),
 1070      );
 1071   
 1072      $schema_data['phpbb_styles_template'] = array(
 1073          'COLUMNS'        => array(
 1074              'template_id'            => array('USINT', NULL, 'auto_increment'),
 1075              'template_name'            => array('VCHAR_UNI:255', ''),
 1076              'template_copyright'    => array('VCHAR_UNI', ''),
 1077              'template_path'            => array('VCHAR:100', ''),
 1078              'bbcode_bitfield'        => array('VCHAR:255', 'kNg='),
 1079              'template_storedb'        => array('BOOL', 0),
 1080          ),
 1081          'PRIMARY_KEY'    => 'template_id',
 1082          'KEYS'            => array(
 1083              'tmplte_nm'                => array('UNIQUE', 'template_name'),
 1084          ),
 1085      );
 1086   
 1087      $schema_data['phpbb_styles_template_data'] = array(
 1088          'COLUMNS'        => array(
 1089              'template_id'            => array('USINT', 0),
 1090              'template_filename'        => array('VCHAR:100', ''),
 1091              'template_included'        => array('TEXT', ''),
 1092              'template_mtime'        => array('TIMESTAMP', 0),
 1093              'template_data'            => array('MTEXT_UNI', ''),
 1094          ),
 1095          'KEYS'            => array(
 1096              'tid'                    => array('INDEX', 'template_id'),
 1097              'tfn'                    => array('INDEX', 'template_filename'),
 1098          ),
 1099      );
 1100   
 1101      $schema_data['phpbb_styles_theme'] = array(
 1102          'COLUMNS'        => array(
 1103              'theme_id'                => array('USINT', NULL, 'auto_increment'),
 1104              'theme_name'            => array('VCHAR_UNI:255', ''),
 1105              'theme_copyright'        => array('VCHAR_UNI', ''),
 1106              'theme_path'            => array('VCHAR:100', ''),
 1107              'theme_storedb'            => array('BOOL', 0),
 1108              'theme_mtime'            => array('TIMESTAMP', 0),
 1109              'theme_data'            => array('MTEXT_UNI', ''),
 1110          ),
 1111          'PRIMARY_KEY'    => 'theme_id',
 1112          'KEYS'            => array(
 1113              'theme_name'        => array('UNIQUE', 'theme_name'),
 1114          ),
 1115      );
 1116   
 1117      $schema_data['phpbb_styles_imageset'] = array(
 1118          'COLUMNS'        => array(
 1119              'imageset_id'                => array('USINT', NULL, 'auto_increment'),
 1120              'imageset_name'                => array('VCHAR_UNI:255', ''),
 1121              'imageset_copyright'        => array('VCHAR_UNI', ''),
 1122              'imageset_path'                => array('VCHAR:100', ''),
 1123          ),
 1124          'PRIMARY_KEY'        => 'imageset_id',
 1125          'KEYS'                => array(
 1126              'imgset_nm'            => array('UNIQUE', 'imageset_name'),
 1127          ),
 1128      );
 1129   
 1130      $schema_data['phpbb_styles_imageset_data'] = array(
 1131          'COLUMNS'        => array(
 1132              'image_id'                => array('USINT', NULL, 'auto_increment'),
 1133              'image_name'            => array('VCHAR:200', ''),
 1134              'image_filename'        => array('VCHAR:200', ''),
 1135              'image_lang'            => array('VCHAR:30', ''),
 1136              'image_height'            => array('USINT', 0),
 1137              'image_width'            => array('USINT', 0),
 1138              'imageset_id'            => array('USINT', 0),
 1139          ),
 1140          'PRIMARY_KEY'        => 'image_id',
 1141          'KEYS'                => array(
 1142              'i_d'            => array('INDEX', 'imageset_id'),
 1143          ),
 1144      );
 1145   
 1146      $schema_data['phpbb_topics'] = array(
 1147          'COLUMNS'        => array(
 1148              'topic_id'                    => array('UINT', NULL, 'auto_increment'),
 1149              'forum_id'                    => array('UINT', 0),
 1150              'icon_id'                    => array('UINT', 0),
 1151              'topic_attachment'            => array('BOOL', 0),
 1152              'topic_approved'            => array('BOOL', 1),
 1153              'topic_reported'            => array('BOOL', 0),
 1154              'topic_title'                => array('XSTEXT_UNI', '', 'true_sort'),
 1155              'topic_poster'                => array('UINT', 0),
 1156              'topic_time'                => array('TIMESTAMP', 0),
 1157              'topic_time_limit'            => array('TIMESTAMP', 0),
 1158              'topic_views'                => array('UINT', 0),
 1159              'topic_replies'                => array('UINT', 0),
 1160              'topic_replies_real'        => array('UINT', 0),
 1161              'topic_status'                => array('TINT:3', 0),
 1162              'topic_type'                => array('TINT:3', 0),
 1163              'topic_first_post_id'        => array('UINT', 0),
 1164              'topic_first_poster_name'    => array('VCHAR_UNI', ''),
 1165              'topic_first_poster_colour'    => array('VCHAR:6', ''),
 1166              'topic_last_post_id'        => array('UINT', 0),
 1167              'topic_last_poster_id'        => array('UINT', 0),
 1168              'topic_last_poster_name'    => array('VCHAR_UNI', ''),
 1169              'topic_last_poster_colour'    => array('VCHAR:6', ''),
 1170              'topic_last_post_subject'    => array('XSTEXT_UNI', ''),
 1171              'topic_last_post_time'        => array('TIMESTAMP', 0),
 1172              'topic_last_view_time'        => array('TIMESTAMP', 0),
 1173              'topic_moved_id'            => array('UINT', 0),
 1174              'topic_bumped'                => array('BOOL', 0),
 1175              'topic_bumper'                => array('UINT', 0),
 1176              'poll_title'                => array('STEXT_UNI', ''),
 1177              'poll_start'                => array('TIMESTAMP', 0),
 1178              'poll_length'                => array('TIMESTAMP', 0),
 1179              'poll_max_options'            => array('TINT:4', 1),
 1180              'poll_last_vote'            => array('TIMESTAMP', 0),
 1181              'poll_vote_change'            => array('BOOL', 0),
 1182          ),
 1183          'PRIMARY_KEY'    => 'topic_id',
 1184          'KEYS'            => array(
 1185              'forum_id'            => array('INDEX', 'forum_id'),
 1186              'forum_id_type'        => array('INDEX', array('forum_id', 'topic_type')),
 1187              'last_post_time'    => array('INDEX', 'topic_last_post_time'),
 1188              'topic_approved'    => array('INDEX', 'topic_approved'),
 1189              'forum_appr_last'    => array('INDEX', array('forum_id', 'topic_approved', 'topic_last_post_id')),
 1190              'fid_time_moved'    => array('INDEX', array('forum_id', 'topic_last_post_time', 'topic_moved_id')),
 1191          ),
 1192      );
 1193   
 1194      $schema_data['phpbb_topics_track'] = array(
 1195          'COLUMNS'        => array(
 1196              'user_id'            => array('UINT', 0),
 1197              'topic_id'            => array('UINT', 0),
 1198              'forum_id'            => array('UINT', 0),
 1199              'mark_time'            => array('TIMESTAMP', 0),
 1200          ),
 1201          'PRIMARY_KEY'    => array('user_id', 'topic_id'),
 1202          'KEYS'            => array(
 1203              'forum_id'            => array('INDEX', 'forum_id'),
 1204          ),
 1205      );
 1206   
 1207      $schema_data['phpbb_topics_posted'] = array(
 1208          'COLUMNS'        => array(
 1209              'user_id'            => array('UINT', 0),
 1210              'topic_id'            => array('UINT', 0),
 1211              'topic_posted'        => array('BOOL', 0),
 1212          ),
 1213          'PRIMARY_KEY'    => array('user_id', 'topic_id'),
 1214      );
 1215   
 1216      $schema_data['phpbb_topics_watch'] = array(
 1217          'COLUMNS'        => array(
 1218              'topic_id'            => array('UINT', 0),
 1219              'user_id'            => array('UINT', 0),
 1220              'notify_status'        => array('BOOL', 0),
 1221          ),
 1222          'KEYS'            => array(
 1223              'topic_id'            => array('INDEX', 'topic_id'),
 1224              'user_id'            => array('INDEX', 'user_id'),
 1225              'notify_stat'        => array('INDEX', 'notify_status'),
 1226          ),
 1227      );
 1228   
 1229      $schema_data['phpbb_user_group'] = array(
 1230          'COLUMNS'        => array(
 1231              'group_id'            => array('UINT', 0),
 1232              'user_id'            => array('UINT', 0),
 1233              'group_leader'        => array('BOOL', 0),
 1234              'user_pending'        => array('BOOL', 1),
 1235          ),
 1236          'KEYS'            => array(
 1237              'group_id'            => array('INDEX', 'group_id'),
 1238              'user_id'            => array('INDEX', 'user_id'),
 1239              'group_leader'        => array('INDEX', 'group_leader'),
 1240          ),
 1241      );
 1242   
 1243      $schema_data['phpbb_users'] = array(
 1244          'COLUMNS'        => array(
 1245              'user_id'                    => array('UINT', NULL, 'auto_increment'),
 1246              'user_type'                    => array('TINT:2', 0),
 1247              'group_id'                    => array('UINT', 3),
 1248              'user_permissions'            => array('MTEXT', ''),
 1249              'user_perm_from'            => array('UINT', 0),
 1250              'user_ip'                    => array('VCHAR:40', ''),
 1251              'user_regdate'                => array('TIMESTAMP', 0),
 1252              'username'                    => array('VCHAR_CI', ''),
 1253              'username_clean'            => array('VCHAR_CI', ''),
 1254              'user_password'                => array('VCHAR_UNI:40', ''),
 1255              'user_passchg'                => array('TIMESTAMP', 0),
 1256              'user_pass_convert'            => array('BOOL', 0),
 1257              'user_email'                => array('VCHAR_UNI:100', ''),
 1258              'user_email_hash'            => array('BINT', 0),
 1259              'user_birthday'                => array('VCHAR:10', ''),
 1260              'user_lastvisit'            => array('TIMESTAMP', 0),
 1261              'user_lastmark'                => array('TIMESTAMP', 0),
 1262              'user_lastpost_time'        => array('TIMESTAMP', 0),
 1263              'user_lastpage'                => array('VCHAR_UNI:200', ''),
 1264              'user_last_confirm_key'        => array('VCHAR:10', ''),
 1265              'user_last_search'            => array('TIMESTAMP', 0),
 1266              'user_warnings'                => array('TINT:4', 0),
 1267              'user_last_warning'            => array('TIMESTAMP', 0),
 1268              'user_login_attempts'        => array('TINT:4', 0),
 1269              'user_inactive_reason'        => array('TINT:2', 0),
 1270              'user_inactive_time'        => array('TIMESTAMP', 0),
 1271              'user_posts'                => array('UINT', 0),
 1272              'user_lang'                    => array('VCHAR:30', ''),
 1273              'user_timezone'                => array('DECIMAL', 0),
 1274              'user_dst'                    => array('BOOL', 0),
 1275              'user_dateformat'            => array('VCHAR_UNI:30', 'd M Y H:i'),
 1276              'user_style'                => array('USINT', 0),
 1277              'user_rank'                    => array('UINT', 0),
 1278              'user_colour'                => array('VCHAR:6', ''),
 1279              'user_new_privmsg'            => array('INT:4', 0),
 1280              'user_unread_privmsg'        => array('INT:4', 0),
 1281              'user_last_privmsg'            => array('TIMESTAMP', 0),
 1282              'user_message_rules'        => array('BOOL', 0),
 1283              'user_full_folder'            => array('INT:11', -3),
 1284              'user_emailtime'            => array('TIMESTAMP', 0),
 1285              'user_topic_show_days'        => array('USINT', 0),
 1286              'user_topic_sortby_type'    => array('VCHAR:1', 't'),
 1287              'user_topic_sortby_dir'        => array('VCHAR:1', 'd'),
 1288              'user_post_show_days'        => array('USINT', 0),
 1289              'user_post_sortby_type'        => array('VCHAR:1', 't'),
 1290              'user_post_sortby_dir'        => array('VCHAR:1', 'a'),
 1291              'user_notify'                => array('BOOL', 0),
 1292              'user_notify_pm'            => array('BOOL', 1),
 1293              'user_notify_type'            => array('TINT:4', 0),
 1294              'user_allow_pm'                => array('BOOL', 1),
 1295              'user_allow_viewonline'        => array('BOOL', 1),
 1296              'user_allow_viewemail'        => array('BOOL', 1),
 1297              'user_allow_massemail'        => array('BOOL', 1),
 1298              'user_options'                => array('UINT:11', 895),
 1299              'user_avatar'                => array('VCHAR', ''),
 1300              'user_avatar_type'            => array('TINT:2', 0),
 1301              'user_avatar_width'            => array('USINT', 0),
 1302              'user_avatar_height'        => array('USINT', 0),
 1303              'user_sig'                    => array('MTEXT_UNI', ''),
 1304              'user_sig_bbcode_uid'        => array('VCHAR:8', ''),
 1305              'user_sig_bbcode_bitfield'    => array('VCHAR:255', ''),
 1306              'user_from'                    => array('VCHAR_UNI:100', ''),
 1307              'user_icq'                    => array('VCHAR:15', ''),
 1308              'user_aim'                    => array('VCHAR_UNI', ''),
 1309              'user_yim'                    => array('VCHAR_UNI', ''),
 1310              'user_msnm'                    => array('VCHAR_UNI', ''),
 1311              'user_jabber'                => array('VCHAR_UNI', ''),
 1312              'user_website'                => array('VCHAR_UNI:200', ''),
 1313              'user_occ'                    => array('TEXT_UNI', ''),
 1314              'user_interests'            => array('TEXT_UNI', ''),
 1315              'user_actkey'                => array('VCHAR:32', ''),
 1316              'user_newpasswd'            => array('VCHAR_UNI:40', ''),
 1317              'user_form_salt'            => array('VCHAR_UNI:32', ''),
 1318   
 1319          ),
 1320          'PRIMARY_KEY'    => 'user_id',
 1321          'KEYS'            => array(
 1322              'user_birthday'                => array('INDEX', 'user_birthday'),
 1323              'user_email_hash'            => array('INDEX', 'user_email_hash'),
 1324              'user_type'                    => array('INDEX', 'user_type'),
 1325              'username_clean'            => array('UNIQUE', 'username_clean'),
 1326          ),
 1327      );
 1328   
 1329      $schema_data['phpbb_warnings'] = array(
 1330          'COLUMNS'        => array(
 1331              'warning_id'            => array('UINT', NULL, 'auto_increment'),
 1332              'user_id'                => array('UINT', 0),
 1333              'post_id'                => array('UINT', 0),
 1334              'log_id'                => array('UINT', 0),
 1335              'warning_time'            => array('TIMESTAMP', 0),
 1336          ),
 1337          'PRIMARY_KEY'    => 'warning_id',
 1338      );
 1339   
 1340      $schema_data['phpbb_words'] = array(
 1341          'COLUMNS'        => array(
 1342              'word_id'                => array('UINT', NULL, 'auto_increment'),
 1343              'word'                    => array('VCHAR_UNI', ''),
 1344              'replacement'            => array('VCHAR_UNI', ''),
 1345          ),
 1346          'PRIMARY_KEY'    => 'word_id',
 1347      );
 1348   
 1349      $schema_data['phpbb_zebra'] = array(
 1350          'COLUMNS'        => array(
 1351              'user_id'                => array('UINT', 0),
 1352              'zebra_id'                => array('UINT', 0),
 1353              'friend'                => array('BOOL', 0),
 1354              'foe'                    => array('BOOL', 0),
 1355          ),
 1356          'PRIMARY_KEY'    => array('user_id', 'zebra_id'),
 1357      );
 1358   
 1359      return $schema_data;
 1360  }
 1361   
 1362  ?>