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  ?>