- make viewforum work again

- remove the lower case functions, they were stupid anyway
- added some indexes
- added a group_name_clean column


git-svn-id: file:///svn/phpbb/trunk@8315 89ea8834-ac86-4346-8a33-228a782c2dd0
This commit is contained in:
David M 2008-01-08 06:44:05 +00:00
parent b4e64655af
commit 370e189f15
23 changed files with 197 additions and 460 deletions

View file

@ -208,7 +208,7 @@ $dbms_type_map = array(
'UINT' => 'INT4', // unsigned 'UINT' => 'INT4', // unsigned
'UINT:' => 'INT4', // unsigned 'UINT:' => 'INT4', // unsigned
'USINT' => 'INT2', // unsigned 'USINT' => 'INT2', // unsigned
'BOOL' => 'INT2', // unsigned 'BOOL' => 'boolean', // unsigned
'TINT:' => 'INT2', 'TINT:' => 'INT2',
'VCHAR' => 'varchar(255)', 'VCHAR' => 'varchar(255)',
'VCHAR:' => 'varchar(%d)', 'VCHAR:' => 'varchar(%d)',
@ -228,7 +228,7 @@ $dbms_type_map = array(
'PDECIMAL:' => 'decimal(%d,3)', 'PDECIMAL:' => 'decimal(%d,3)',
'VCHAR_UNI' => 'varchar(255)', 'VCHAR_UNI' => 'varchar(255)',
'VCHAR_UNI:'=> 'varchar(%d)', 'VCHAR_UNI:'=> 'varchar(%d)',
'VCHAR_CI' => 'varchar_ci', 'VCHAR_CI' => 'varchar(255)',
'VARBINARY' => 'bytea', 'VARBINARY' => 'bytea',
), ),
); );
@ -239,7 +239,7 @@ $supported_dbms = array('firebird', 'mssql', 'mysql', 'db2', 'oracle', 'postgres
foreach ($supported_dbms as $dbms) foreach ($supported_dbms as $dbms)
{ {
$fp = fopen($schema_path . '_' . $dbms . '_schema.sql', 'wt'); $fp = fopen($schema_path . '' . $dbms . '_schema.sql', 'wt');
$line = ''; $line = '';
@ -999,6 +999,7 @@ function get_schema_struct()
'PRIMARY_KEY' => 'config_name', 'PRIMARY_KEY' => 'config_name',
'KEYS' => array( 'KEYS' => array(
'is_dynamic' => array('INDEX', 'is_dynamic'), 'is_dynamic' => array('INDEX', 'is_dynamic'),
'config_name' => array('INDEX', 'config_name'),
), ),
); );
@ -1150,7 +1151,8 @@ function get_schema_struct()
'group_id' => array('UINT', NULL, 'auto_increment'), 'group_id' => array('UINT', NULL, 'auto_increment'),
'group_type' => array('TINT:4', 1), 'group_type' => array('TINT:4', 1),
'group_founder_manage' => array('BOOL', 0), 'group_founder_manage' => array('BOOL', 0),
'group_name' => array('VCHAR_CI', ''), 'group_name' => array('VCHAR_UNI', ''),
'group_name_clean' => array('VCHAR_UNI', ''),
'group_desc' => array('TEXT_UNI', ''), 'group_desc' => array('TEXT_UNI', ''),
'group_desc_bitfield' => array('VCHAR:255', ''), 'group_desc_bitfield' => array('VCHAR:255', ''),
'group_desc_options' => array('UINT:11', 7), 'group_desc_options' => array('UINT:11', 7),
@ -1803,8 +1805,8 @@ function get_schema_struct()
'user_perm_from' => array('UINT', 0), 'user_perm_from' => array('UINT', 0),
'user_ip' => array('VCHAR:40', ''), 'user_ip' => array('VCHAR:40', ''),
'user_regdate' => array('TIMESTAMP', 0), 'user_regdate' => array('TIMESTAMP', 0),
'username' => array('VCHAR_CI', ''), 'username' => array('VCHAR_UNI', ''),
'username_clean' => array('VCHAR_CI', ''), 'username_clean' => array('VCHAR_UNI', ''),
'user_password' => array('VCHAR_UNI:40', ''), 'user_password' => array('VCHAR_UNI:40', ''),
'user_passchg' => array('TIMESTAMP', 0), 'user_passchg' => array('TIMESTAMP', 0),
'user_pass_convert' => array('BOOL', 0), 'user_pass_convert' => array('BOOL', 0),
@ -1908,6 +1910,9 @@ function get_schema_struct()
'foe' => array('BOOL', 0), 'foe' => array('BOOL', 0),
), ),
'PRIMARY_KEY' => array('user_id', 'zebra_id'), 'PRIMARY_KEY' => array('user_id', 'zebra_id'),
'KEYS' => array(
'zebra_user' => array('INDEX', array('zebra_id', 'user_id')),
),
); );
return $schema_data; return $schema_data;
@ -1963,86 +1968,6 @@ CONNECT phpbb/phpbb_password;
EOF; EOF;
break; break;
case 'postgres':
return <<<EOF
/*
Domain definition
*/
CREATE DOMAIN varchar_ci AS varchar(255) NOT NULL DEFAULT ''::character varying;
/*
Operation Functions
*/
CREATE FUNCTION _varchar_ci_equal(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) = LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_not_equal(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) != LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_less_than(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) < LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_less_equal(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) <= LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_greater_than(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) > LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_greater_equals(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) >= LOWER($2)' LANGUAGE SQL STRICT;
/*
Operators
*/
CREATE OPERATOR <(
PROCEDURE = _varchar_ci_less_than,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <=(
PROCEDURE = _varchar_ci_less_equal,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR >(
PROCEDURE = _varchar_ci_greater_than,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR >=(
PROCEDURE = _varchar_ci_greater_equals,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR <>(
PROCEDURE = _varchar_ci_not_equal,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR =(
PROCEDURE = _varchar_ci_equal,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES,
MERGES,
SORT1= <);
EOF;
break;
} }
return ''; return '';

View file

@ -479,14 +479,21 @@ class acp_attachments
// Check New Group Name // Check New Group Name
if ($new_group_name) if ($new_group_name)
{ {
$sql = 'SELECT group_id $sql = 'SELECT group_name
FROM ' . EXTENSION_GROUPS_TABLE . " FROM ' . EXTENSION_GROUPS_TABLE;
WHERE LOWER(group_name) = '" . $db->sql_escape(utf8_strtolower($new_group_name)) . "'";
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$ext_row = $db->sql_fetchrow($result);
$db->sql_freeresult($result);
if ($db->sql_fetchrow($result)) $clean_group_name = utf8_clean_string($new_group_name);
while ($row = $db->sql_fetchrow($result))
{
if (utf8_clean_string($row['group_name']) === $clean_group_name)
{ {
$error[] = sprintf($user->lang['EXTENSION_GROUP_EXIST'], $new_group_name); $error[] = sprintf($user->lang['EXTENSION_GROUP_EXIST'], $new_group_name);
break;
}
} }
$db->sql_freeresult($result); $db->sql_freeresult($result);
} }

View file

@ -210,7 +210,7 @@ class acp_bots
{ {
$sql = 'SELECT group_id, group_colour $sql = 'SELECT group_id, group_colour
FROM ' . GROUPS_TABLE . " FROM ' . GROUPS_TABLE . "
WHERE group_name = 'BOTS' WHERE group_name_clean = 'bots'
AND group_type = " . GROUP_SPECIAL; AND group_type = " . GROUP_SPECIAL;
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$group_row = $db->sql_fetchrow($result); $group_row = $db->sql_fetchrow($result);

View file

@ -227,7 +227,7 @@ class acp_email
// Exclude bots and guests... // Exclude bots and guests...
$sql = 'SELECT group_id $sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . " FROM ' . GROUPS_TABLE . "
WHERE group_name IN ('BOTS', 'GUESTS')"; WHERE group_name_clean IN ('bots', 'guests')";
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$exclude = array(); $exclude = array();

View file

@ -188,7 +188,7 @@ function user_row_apache($username, $password)
// first retrieve default group id // first retrieve default group id
$sql = 'SELECT group_id $sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . " FROM ' . GROUPS_TABLE . "
WHERE group_name = '" . $db->sql_escape('REGISTERED') . "' WHERE group_name_clean = '" . $db->sql_escape('registered') . "'
AND group_type = " . GROUP_SPECIAL; AND group_type = " . GROUP_SPECIAL;
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result); $row = $db->sql_fetchrow($result);

View file

@ -198,7 +198,7 @@ function login_ldap(&$username, &$password)
// retrieve default group id // retrieve default group id
$sql = 'SELECT group_id $sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . " FROM ' . GROUPS_TABLE . "
WHERE group_name = '" . $db->sql_escape('REGISTERED') . "' WHERE group_name_clean = '" . $db->sql_escape('registered') . "'
AND group_type = " . GROUP_SPECIAL; AND group_type = " . GROUP_SPECIAL;
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result); $row = $db->sql_fetchrow($result);

View file

@ -214,7 +214,7 @@ class phpbb_db_tools
'UINT' => 'INT4', // unsigned 'UINT' => 'INT4', // unsigned
'UINT:' => 'INT4', // unsigned 'UINT:' => 'INT4', // unsigned
'USINT' => 'INT2', // unsigned 'USINT' => 'INT2', // unsigned
'BOOL' => 'INT2', // unsigned 'BOOL' => 'boolean', // unsigned
'TINT:' => 'INT2', 'TINT:' => 'INT2',
'VCHAR' => 'varchar(255)', 'VCHAR' => 'varchar(255)',
'VCHAR:' => 'varchar(%d)', 'VCHAR:' => 'varchar(%d)',
@ -234,7 +234,7 @@ class phpbb_db_tools
'PDECIMAL:' => 'decimal(%d,3)', 'PDECIMAL:' => 'decimal(%d,3)',
'VCHAR_UNI' => 'varchar(255)', 'VCHAR_UNI' => 'varchar(255)',
'VCHAR_UNI:'=> 'varchar(%d)', 'VCHAR_UNI:'=> 'varchar(%d)',
'VCHAR_CI' => 'varchar_ci', 'VCHAR_CI' => 'varchar(255)',
'VARBINARY' => 'bytea', 'VARBINARY' => 'bytea',
), ),
); );

View file

@ -1141,7 +1141,7 @@ function user_group_auth($group, $select_query, $use_src_db)
$sql = 'SELECT group_id $sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . " FROM ' . GROUPS_TABLE . "
WHERE group_name = '" . $db->sql_escape(strtoupper($group)) . "'"; WHERE group_name_clean = '" . $db->sql_escape(utf8_clean_string($group)) . "'";
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$group_id = (int) $db->sql_fetchfield('group_id'); $group_id = (int) $db->sql_fetchfield('group_id');
$db->sql_freeresult($result); $db->sql_freeresult($result);
@ -1474,7 +1474,7 @@ function mass_auth($ug_type, $forum_id, $ug_id, $acl_list, $setting = ACL_NO)
{ {
$sql = 'SELECT group_id $sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . " FROM ' . GROUPS_TABLE . "
WHERE group_name = '" . $db->sql_escape(strtoupper($ug_id)) . "'"; WHERE group_name_clean = '" . $db->sql_escape(utf8_clean_string($ug_id)) . "'";
$result = $db->sql_query_limit($sql, 1); $result = $db->sql_query_limit($sql, 1);
$id = (int) $db->sql_fetchfield('group_id'); $id = (int) $db->sql_fetchfield('group_id');
$db->sql_freeresult($result); $db->sql_freeresult($result);
@ -1702,7 +1702,7 @@ function add_default_groups()
$sql = 'SELECT * $sql = 'SELECT *
FROM ' . GROUPS_TABLE . ' FROM ' . GROUPS_TABLE . '
WHERE ' . $db->sql_in_set('group_name', array_keys($default_groups)); WHERE ' . $db->sql_in_set('group_name_clean', array_map('utf8_clean_string', array_keys($default_groups));
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result)) while ($row = $db->sql_fetchrow($result))
@ -1717,6 +1717,7 @@ function add_default_groups()
{ {
$sql_ary[] = array( $sql_ary[] = array(
'group_name' => (string) $name, 'group_name' => (string) $name,
'group_name_clean' => (string) utf8_clean_string($name),
'group_desc' => '', 'group_desc' => '',
'group_desc_uid' => '', 'group_desc_uid' => '',
'group_desc_bitfield' => '', 'group_desc_bitfield' => '',
@ -1766,7 +1767,7 @@ function add_bots()
$db->sql_query($convert->truncate_statement . BOTS_TABLE); $db->sql_query($convert->truncate_statement . BOTS_TABLE);
$sql = 'SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name = 'BOTS'"; $sql = 'SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name_clean = 'bots'";
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$group_id = (int) $db->sql_fetchfield('group_id', false, $result); $group_id = (int) $db->sql_fetchfield('group_id', false, $result);
$db->sql_freeresult($result); $db->sql_freeresult($result);
@ -1775,7 +1776,7 @@ function add_bots()
{ {
add_default_groups(); add_default_groups();
$sql = 'SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name = 'BOTS'"; $sql = 'SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name_clean = 'bots'";
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$group_id = (int) $db->sql_fetchfield('group_id', false, $result); $group_id = (int) $db->sql_fetchfield('group_id', false, $result);
$db->sql_freeresult($result); $db->sql_freeresult($result);

View file

@ -1405,7 +1405,7 @@ function validate_username($username, $allowed_username = false)
$sql = 'SELECT group_name $sql = 'SELECT group_name
FROM ' . GROUPS_TABLE . " FROM ' . GROUPS_TABLE . "
WHERE LOWER(group_name) = '" . $db->sql_escape(utf8_strtolower($username)) . "'"; WHERE group_name = '" . $db->sql_escape($clean_username) . "'";
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result); $row = $db->sql_fetchrow($result);
$db->sql_freeresult($result); $db->sql_freeresult($result);
@ -2297,6 +2297,7 @@ function group_create(&$group_id, $type, $name, $desc, $group_attributes, $allow
$user_ary = array(); $user_ary = array();
$sql_ary = array( $sql_ary = array(
'group_name' => (string) $name, 'group_name' => (string) $name,
'group_name_clean' => (string) utf8_clean_string($name),
'group_desc' => (string) $desc, 'group_desc' => (string) $desc,
'group_desc_uid' => '', 'group_desc_uid' => '',
'group_desc_bitfield' => '', 'group_desc_bitfield' => '',
@ -2637,9 +2638,11 @@ function group_user_del($group_id, $user_id_ary = false, $username_ary = false,
return 'NO_USER'; return 'NO_USER';
} }
$clean_group_order = array_map('utf8_clean_string', $group_order);
$sql = 'SELECT * $sql = 'SELECT *
FROM ' . GROUPS_TABLE . ' FROM ' . GROUPS_TABLE . '
WHERE ' . $db->sql_in_set('group_name', $group_order); WHERE ' . $db->sql_in_set('group_name_clean', $clean_group_order);
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$group_order_id = $special_group_data = array(); $group_order_id = $special_group_data = array();
@ -2679,7 +2682,7 @@ function group_user_del($group_id, $user_id_ary = false, $username_ary = false,
$db->sql_freeresult($result); $db->sql_freeresult($result);
// What special group memberships exist for these users? // What special group memberships exist for these users?
$sql = 'SELECT g.group_id, g.group_name, ug.user_id $sql = 'SELECT g.group_id, g.group_name_clean, ug.user_id
FROM ' . USER_GROUP_TABLE . ' ug, ' . GROUPS_TABLE . ' g FROM ' . USER_GROUP_TABLE . ' ug, ' . GROUPS_TABLE . ' g
WHERE ' . $db->sql_in_set('ug.user_id', $user_id_ary) . " WHERE ' . $db->sql_in_set('ug.user_id', $user_id_ary) . "
AND g.group_id = ug.group_id AND g.group_id = ug.group_id
@ -2691,7 +2694,7 @@ function group_user_del($group_id, $user_id_ary = false, $username_ary = false,
$temp_ary = array(); $temp_ary = array();
while ($row = $db->sql_fetchrow($result)) while ($row = $db->sql_fetchrow($result))
{ {
if ($default_groups[$row['user_id']] == $group_id && (!isset($temp_ary[$row['user_id']]) || array_search($row['group_name'], $group_order) < $temp_ary[$row['user_id']])) if ($default_groups[$row['user_id']] == $group_id && (!isset($temp_ary[$row['user_id']]) || array_search($row['group_name_clean'], $clean_group_order) < $temp_ary[$row['user_id']]))
{ {
$temp_ary[$row['user_id']] = $row['group_id']; $temp_ary[$row['user_id']] = $row['group_id'];
} }
@ -2953,7 +2956,7 @@ function group_validate_groupname($group_id, $group_name)
if (!empty($group_id)) if (!empty($group_id))
{ {
$sql = 'SELECT group_name $sql = 'SELECT group_name_clean
FROM ' . GROUPS_TABLE . ' FROM ' . GROUPS_TABLE . '
WHERE group_id = ' . (int) $group_id; WHERE group_id = ' . (int) $group_id;
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
@ -2975,7 +2978,7 @@ function group_validate_groupname($group_id, $group_name)
$sql = 'SELECT group_name $sql = 'SELECT group_name
FROM ' . GROUPS_TABLE . " FROM ' . GROUPS_TABLE . "
WHERE LOWER(group_name) = '" . $db->sql_escape(utf8_strtolower($group_name)) . "'"; WHERE group_name_clean = '" . $db->sql_escape(utf8_clean_string($group_name)) . "'";
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$row = $db->sql_fetchrow($result); $row = $db->sql_fetchrow($result);
$db->sql_freeresult($result); $db->sql_freeresult($result);

View file

@ -192,24 +192,6 @@ if (extension_loaded('mbstring'))
} }
} }
/**
* UTF-8 aware alternative to strtolower
* @ignore
*/
function utf8_strtolower($str)
{
return mb_strtolower($str);
}
/**
* UTF-8 aware alternative to strtoupper
* @ignore
*/
function utf8_strtoupper($str)
{
return mb_strtoupper($str);
}
/** /**
* UTF-8 aware alternative to substr * UTF-8 aware alternative to substr
* @ignore * @ignore
@ -322,136 +304,6 @@ else
} }
} }
/**
* UTF-8 aware alternative to strtolower
* Make a string lowercase
* Note: The concept of a characters "case" only exists is some alphabets
* such as Latin, Greek, Cyrillic, Armenian and archaic Georgian - it does
* not exist in the Chinese alphabet, for example. See Unicode Standard
* Annex #21: Case Mappings
*
* @param string
* @return string string in lowercase
*/
function utf8_strtolower($string)
{
static $utf8_upper_to_lower = array(
"\xC3\x80" => "\xC3\xA0", "\xC3\x81" => "\xC3\xA1",
"\xC3\x82" => "\xC3\xA2", "\xC3\x83" => "\xC3\xA3", "\xC3\x84" => "\xC3\xA4", "\xC3\x85" => "\xC3\xA5",
"\xC3\x86" => "\xC3\xA6", "\xC3\x87" => "\xC3\xA7", "\xC3\x88" => "\xC3\xA8", "\xC3\x89" => "\xC3\xA9",
"\xC3\x8A" => "\xC3\xAA", "\xC3\x8B" => "\xC3\xAB", "\xC3\x8C" => "\xC3\xAC", "\xC3\x8D" => "\xC3\xAD",
"\xC3\x8E" => "\xC3\xAE", "\xC3\x8F" => "\xC3\xAF", "\xC3\x90" => "\xC3\xB0", "\xC3\x91" => "\xC3\xB1",
"\xC3\x92" => "\xC3\xB2", "\xC3\x93" => "\xC3\xB3", "\xC3\x94" => "\xC3\xB4", "\xC3\x95" => "\xC3\xB5",
"\xC3\x96" => "\xC3\xB6", "\xC3\x98" => "\xC3\xB8", "\xC3\x99" => "\xC3\xB9", "\xC3\x9A" => "\xC3\xBA",
"\xC3\x9B" => "\xC3\xBB", "\xC3\x9C" => "\xC3\xBC", "\xC3\x9D" => "\xC3\xBD", "\xC3\x9E" => "\xC3\xBE",
"\xC4\x80" => "\xC4\x81", "\xC4\x82" => "\xC4\x83", "\xC4\x84" => "\xC4\x85", "\xC4\x86" => "\xC4\x87",
"\xC4\x88" => "\xC4\x89", "\xC4\x8A" => "\xC4\x8B", "\xC4\x8C" => "\xC4\x8D", "\xC4\x8E" => "\xC4\x8F",
"\xC4\x90" => "\xC4\x91", "\xC4\x92" => "\xC4\x93", "\xC4\x96" => "\xC4\x97", "\xC4\x98" => "\xC4\x99",
"\xC4\x9A" => "\xC4\x9B", "\xC4\x9C" => "\xC4\x9D", "\xC4\x9E" => "\xC4\x9F", "\xC4\xA0" => "\xC4\xA1",
"\xC4\xA2" => "\xC4\xA3", "\xC4\xA4" => "\xC4\xA5", "\xC4\xA6" => "\xC4\xA7", "\xC4\xA8" => "\xC4\xA9",
"\xC4\xAA" => "\xC4\xAB", "\xC4\xAE" => "\xC4\xAF", "\xC4\xB4" => "\xC4\xB5", "\xC4\xB6" => "\xC4\xB7",
"\xC4\xB9" => "\xC4\xBA", "\xC4\xBB" => "\xC4\xBC", "\xC4\xBD" => "\xC4\xBE", "\xC5\x81" => "\xC5\x82",
"\xC5\x83" => "\xC5\x84", "\xC5\x85" => "\xC5\x86", "\xC5\x87" => "\xC5\x88", "\xC5\x8A" => "\xC5\x8B",
"\xC5\x8C" => "\xC5\x8D", "\xC5\x90" => "\xC5\x91", "\xC5\x94" => "\xC5\x95", "\xC5\x96" => "\xC5\x97",
"\xC5\x98" => "\xC5\x99", "\xC5\x9A" => "\xC5\x9B", "\xC5\x9C" => "\xC5\x9D", "\xC5\x9E" => "\xC5\x9F",
"\xC5\xA0" => "\xC5\xA1", "\xC5\xA2" => "\xC5\xA3", "\xC5\xA4" => "\xC5\xA5", "\xC5\xA6" => "\xC5\xA7",
"\xC5\xA8" => "\xC5\xA9", "\xC5\xAA" => "\xC5\xAB", "\xC5\xAC" => "\xC5\xAD", "\xC5\xAE" => "\xC5\xAF",
"\xC5\xB0" => "\xC5\xB1", "\xC5\xB2" => "\xC5\xB3", "\xC5\xB4" => "\xC5\xB5", "\xC5\xB6" => "\xC5\xB7",
"\xC5\xB8" => "\xC3\xBF", "\xC5\xB9" => "\xC5\xBA", "\xC5\xBB" => "\xC5\xBC", "\xC5\xBD" => "\xC5\xBE",
"\xC6\xA0" => "\xC6\xA1", "\xC6\xAF" => "\xC6\xB0", "\xC8\x98" => "\xC8\x99", "\xC8\x9A" => "\xC8\x9B",
"\xCE\x86" => "\xCE\xAC", "\xCE\x88" => "\xCE\xAD", "\xCE\x89" => "\xCE\xAE", "\xCE\x8A" => "\xCE\xAF",
"\xCE\x8C" => "\xCF\x8C", "\xCE\x8E" => "\xCF\x8D", "\xCE\x8F" => "\xCF\x8E", "\xCE\x91" => "\xCE\xB1",
"\xCE\x92" => "\xCE\xB2", "\xCE\x93" => "\xCE\xB3", "\xCE\x94" => "\xCE\xB4", "\xCE\x95" => "\xCE\xB5",
"\xCE\x96" => "\xCE\xB6", "\xCE\x97" => "\xCE\xB7", "\xCE\x98" => "\xCE\xB8", "\xCE\x99" => "\xCE\xB9",
"\xCE\x9A" => "\xCE\xBA", "\xCE\x9B" => "\xCE\xBB", "\xCE\x9C" => "\xCE\xBC", "\xCE\x9D" => "\xCE\xBD",
"\xCE\x9E" => "\xCE\xBE", "\xCE\x9F" => "\xCE\xBF", "\xCE\xA0" => "\xCF\x80", "\xCE\xA1" => "\xCF\x81",
"\xCE\xA3" => "\xCF\x83", "\xCE\xA4" => "\xCF\x84", "\xCE\xA5" => "\xCF\x85", "\xCE\xA6" => "\xCF\x86",
"\xCE\xA7" => "\xCF\x87", "\xCE\xA8" => "\xCF\x88", "\xCE\xA9" => "\xCF\x89", "\xCE\xAA" => "\xCF\x8A",
"\xCE\xAB" => "\xCF\x8B", "\xD0\x81" => "\xD1\x91", "\xD0\x82" => "\xD1\x92", "\xD0\x83" => "\xD1\x93",
"\xD0\x84" => "\xD1\x94", "\xD0\x85" => "\xD1\x95", "\xD0\x86" => "\xD1\x96", "\xD0\x87" => "\xD1\x97",
"\xD0\x88" => "\xD1\x98", "\xD0\x89" => "\xD1\x99", "\xD0\x8A" => "\xD1\x9A", "\xD0\x8B" => "\xD1\x9B",
"\xD0\x8C" => "\xD1\x9C", "\xD0\x8E" => "\xD1\x9E", "\xD0\x8F" => "\xD1\x9F", "\xD0\x90" => "\xD0\xB0",
"\xD0\x91" => "\xD0\xB1", "\xD0\x92" => "\xD0\xB2", "\xD0\x93" => "\xD0\xB3", "\xD0\x94" => "\xD0\xB4",
"\xD0\x95" => "\xD0\xB5", "\xD0\x96" => "\xD0\xB6", "\xD0\x97" => "\xD0\xB7", "\xD0\x98" => "\xD0\xB8",
"\xD0\x99" => "\xD0\xB9", "\xD0\x9A" => "\xD0\xBA", "\xD0\x9B" => "\xD0\xBB", "\xD0\x9C" => "\xD0\xBC",
"\xD0\x9D" => "\xD0\xBD", "\xD0\x9E" => "\xD0\xBE", "\xD0\x9F" => "\xD0\xBF", "\xD0\xA0" => "\xD1\x80",
"\xD0\xA1" => "\xD1\x81", "\xD0\xA2" => "\xD1\x82", "\xD0\xA3" => "\xD1\x83", "\xD0\xA4" => "\xD1\x84",
"\xD0\xA5" => "\xD1\x85", "\xD0\xA6" => "\xD1\x86", "\xD0\xA7" => "\xD1\x87", "\xD0\xA8" => "\xD1\x88",
"\xD0\xA9" => "\xD1\x89", "\xD0\xAA" => "\xD1\x8A", "\xD0\xAB" => "\xD1\x8B", "\xD0\xAC" => "\xD1\x8C",
"\xD0\xAD" => "\xD1\x8D", "\xD0\xAE" => "\xD1\x8E", "\xD0\xAF" => "\xD1\x8F", "\xD2\x90" => "\xD2\x91",
"\xE1\xB8\x82" => "\xE1\xB8\x83", "\xE1\xB8\x8A" => "\xE1\xB8\x8B", "\xE1\xB8\x9E" => "\xE1\xB8\x9F", "\xE1\xB9\x80" => "\xE1\xB9\x81",
"\xE1\xB9\x96" => "\xE1\xB9\x97", "\xE1\xB9\xA0" => "\xE1\xB9\xA1", "\xE1\xB9\xAA" => "\xE1\xB9\xAB", "\xE1\xBA\x80" => "\xE1\xBA\x81",
"\xE1\xBA\x82" => "\xE1\xBA\x83", "\xE1\xBA\x84" => "\xE1\xBA\x85", "\xE1\xBB\xB2" => "\xE1\xBB\xB3"
);
return strtr(strtolower($string), $utf8_upper_to_lower);
}
/**
* UTF-8 aware alternative to strtoupper
* Make a string uppercase
* Note: The concept of a characters "case" only exists is some alphabets
* such as Latin, Greek, Cyrillic, Armenian and archaic Georgian - it does
* not exist in the Chinese alphabet, for example. See Unicode Standard
* Annex #21: Case Mappings
*
* @param string
* @return string string in uppercase
*/
function utf8_strtoupper($string)
{
static $utf8_lower_to_upper = array(
"\xC3\xA0" => "\xC3\x80", "\xC3\xA1" => "\xC3\x81",
"\xC3\xA2" => "\xC3\x82", "\xC3\xA3" => "\xC3\x83", "\xC3\xA4" => "\xC3\x84", "\xC3\xA5" => "\xC3\x85",
"\xC3\xA6" => "\xC3\x86", "\xC3\xA7" => "\xC3\x87", "\xC3\xA8" => "\xC3\x88", "\xC3\xA9" => "\xC3\x89",
"\xC3\xAA" => "\xC3\x8A", "\xC3\xAB" => "\xC3\x8B", "\xC3\xAC" => "\xC3\x8C", "\xC3\xAD" => "\xC3\x8D",
"\xC3\xAE" => "\xC3\x8E", "\xC3\xAF" => "\xC3\x8F", "\xC3\xB0" => "\xC3\x90", "\xC3\xB1" => "\xC3\x91",
"\xC3\xB2" => "\xC3\x92", "\xC3\xB3" => "\xC3\x93", "\xC3\xB4" => "\xC3\x94", "\xC3\xB5" => "\xC3\x95",
"\xC3\xB6" => "\xC3\x96", "\xC3\xB8" => "\xC3\x98", "\xC3\xB9" => "\xC3\x99", "\xC3\xBA" => "\xC3\x9A",
"\xC3\xBB" => "\xC3\x9B", "\xC3\xBC" => "\xC3\x9C", "\xC3\xBD" => "\xC3\x9D", "\xC3\xBE" => "\xC3\x9E",
"\xC3\xBF" => "\xC5\xB8", "\xC4\x81" => "\xC4\x80", "\xC4\x83" => "\xC4\x82", "\xC4\x85" => "\xC4\x84",
"\xC4\x87" => "\xC4\x86", "\xC4\x89" => "\xC4\x88", "\xC4\x8B" => "\xC4\x8A", "\xC4\x8D" => "\xC4\x8C",
"\xC4\x8F" => "\xC4\x8E", "\xC4\x91" => "\xC4\x90", "\xC4\x93" => "\xC4\x92", "\xC4\x97" => "\xC4\x96",
"\xC4\x99" => "\xC4\x98", "\xC4\x9B" => "\xC4\x9A", "\xC4\x9D" => "\xC4\x9C", "\xC4\x9F" => "\xC4\x9E",
"\xC4\xA1" => "\xC4\xA0", "\xC4\xA3" => "\xC4\xA2", "\xC4\xA5" => "\xC4\xA4", "\xC4\xA7" => "\xC4\xA6",
"\xC4\xA9" => "\xC4\xA8", "\xC4\xAB" => "\xC4\xAA", "\xC4\xAF" => "\xC4\xAE", "\xC4\xB5" => "\xC4\xB4",
"\xC4\xB7" => "\xC4\xB6", "\xC4\xBA" => "\xC4\xB9", "\xC4\xBC" => "\xC4\xBB", "\xC4\xBE" => "\xC4\xBD",
"\xC5\x82" => "\xC5\x81", "\xC5\x84" => "\xC5\x83", "\xC5\x86" => "\xC5\x85", "\xC5\x88" => "\xC5\x87",
"\xC5\x8B" => "\xC5\x8A", "\xC5\x8D" => "\xC5\x8C", "\xC5\x91" => "\xC5\x90", "\xC5\x95" => "\xC5\x94",
"\xC5\x97" => "\xC5\x96", "\xC5\x99" => "\xC5\x98", "\xC5\x9B" => "\xC5\x9A", "\xC5\x9D" => "\xC5\x9C",
"\xC5\x9F" => "\xC5\x9E", "\xC5\xA1" => "\xC5\xA0", "\xC5\xA3" => "\xC5\xA2", "\xC5\xA5" => "\xC5\xA4",
"\xC5\xA7" => "\xC5\xA6", "\xC5\xA9" => "\xC5\xA8", "\xC5\xAB" => "\xC5\xAA", "\xC5\xAD" => "\xC5\xAC",
"\xC5\xAF" => "\xC5\xAE", "\xC5\xB1" => "\xC5\xB0", "\xC5\xB3" => "\xC5\xB2", "\xC5\xB5" => "\xC5\xB4",
"\xC5\xB7" => "\xC5\xB6", "\xC5\xBA" => "\xC5\xB9", "\xC5\xBC" => "\xC5\xBB", "\xC5\xBE" => "\xC5\xBD",
"\xC6\xA1" => "\xC6\xA0", "\xC6\xB0" => "\xC6\xAF", "\xC8\x99" => "\xC8\x98", "\xC8\x9B" => "\xC8\x9A",
"\xCE\xAC" => "\xCE\x86", "\xCE\xAD" => "\xCE\x88", "\xCE\xAE" => "\xCE\x89", "\xCE\xAF" => "\xCE\x8A",
"\xCE\xB1" => "\xCE\x91", "\xCE\xB2" => "\xCE\x92", "\xCE\xB3" => "\xCE\x93", "\xCE\xB4" => "\xCE\x94",
"\xCE\xB5" => "\xCE\x95", "\xCE\xB6" => "\xCE\x96", "\xCE\xB7" => "\xCE\x97", "\xCE\xB8" => "\xCE\x98",
"\xCE\xB9" => "\xCE\x99", "\xCE\xBA" => "\xCE\x9A", "\xCE\xBB" => "\xCE\x9B", "\xCE\xBC" => "\xCE\x9C",
"\xCE\xBD" => "\xCE\x9D", "\xCE\xBE" => "\xCE\x9E", "\xCE\xBF" => "\xCE\x9F", "\xCF\x80" => "\xCE\xA0",
"\xCF\x81" => "\xCE\xA1", "\xCF\x83" => "\xCE\xA3", "\xCF\x84" => "\xCE\xA4", "\xCF\x85" => "\xCE\xA5",
"\xCF\x86" => "\xCE\xA6", "\xCF\x87" => "\xCE\xA7", "\xCF\x88" => "\xCE\xA8", "\xCF\x89" => "\xCE\xA9",
"\xCF\x8A" => "\xCE\xAA", "\xCF\x8B" => "\xCE\xAB", "\xCF\x8C" => "\xCE\x8C", "\xCF\x8D" => "\xCE\x8E",
"\xCF\x8E" => "\xCE\x8F", "\xD0\xB0" => "\xD0\x90", "\xD0\xB1" => "\xD0\x91", "\xD0\xB2" => "\xD0\x92",
"\xD0\xB3" => "\xD0\x93", "\xD0\xB4" => "\xD0\x94", "\xD0\xB5" => "\xD0\x95", "\xD0\xB6" => "\xD0\x96",
"\xD0\xB7" => "\xD0\x97", "\xD0\xB8" => "\xD0\x98", "\xD0\xB9" => "\xD0\x99", "\xD0\xBA" => "\xD0\x9A",
"\xD0\xBB" => "\xD0\x9B", "\xD0\xBC" => "\xD0\x9C", "\xD0\xBD" => "\xD0\x9D", "\xD0\xBE" => "\xD0\x9E",
"\xD0\xBF" => "\xD0\x9F", "\xD1\x80" => "\xD0\xA0", "\xD1\x81" => "\xD0\xA1", "\xD1\x82" => "\xD0\xA2",
"\xD1\x83" => "\xD0\xA3", "\xD1\x84" => "\xD0\xA4", "\xD1\x85" => "\xD0\xA5", "\xD1\x86" => "\xD0\xA6",
"\xD1\x87" => "\xD0\xA7", "\xD1\x88" => "\xD0\xA8", "\xD1\x89" => "\xD0\xA9", "\xD1\x8A" => "\xD0\xAA",
"\xD1\x8B" => "\xD0\xAB", "\xD1\x8C" => "\xD0\xAC", "\xD1\x8D" => "\xD0\xAD", "\xD1\x8E" => "\xD0\xAE",
"\xD1\x8F" => "\xD0\xAF", "\xD1\x91" => "\xD0\x81", "\xD1\x92" => "\xD0\x82", "\xD1\x93" => "\xD0\x83",
"\xD1\x94" => "\xD0\x84", "\xD1\x95" => "\xD0\x85", "\xD1\x96" => "\xD0\x86", "\xD1\x97" => "\xD0\x87",
"\xD1\x98" => "\xD0\x88", "\xD1\x99" => "\xD0\x89", "\xD1\x9A" => "\xD0\x8A", "\xD1\x9B" => "\xD0\x8B",
"\xD1\x9C" => "\xD0\x8C", "\xD1\x9E" => "\xD0\x8E", "\xD1\x9F" => "\xD0\x8F", "\xD2\x91" => "\xD2\x90",
"\xE1\xB8\x83" => "\xE1\xB8\x82", "\xE1\xB8\x8B" => "\xE1\xB8\x8A", "\xE1\xB8\x9F" => "\xE1\xB8\x9E", "\xE1\xB9\x81" => "\xE1\xB9\x80",
"\xE1\xB9\x97" => "\xE1\xB9\x96", "\xE1\xB9\xA1" => "\xE1\xB9\xA0", "\xE1\xB9\xAB" => "\xE1\xB9\xAA", "\xE1\xBA\x81" => "\xE1\xBA\x80",
"\xE1\xBA\x83" => "\xE1\xBA\x82", "\xE1\xBA\x85" => "\xE1\xBA\x84", "\xE1\xBB\xB3" => "\xE1\xBB\xB2"
);
return strtr(strtoupper($string), $utf8_lower_to_upper);
}
/** /**
* UTF-8 aware alternative to substr * UTF-8 aware alternative to substr
* Return part of a string given character offset (and optionally length) * Return part of a string given character offset (and optionally length)
@ -660,33 +512,6 @@ function utf8_strspn($str, $mask, $start = null, $length = null)
return 0; return 0;
} }
/**
* UTF-8 aware alternative to ucfirst
* Make a string's first character uppercase
*
* @author Harry Fuecks
* @param string
* @return string with first character as upper case (if applicable)
*/
function utf8_ucfirst($str)
{
switch (utf8_strlen($str))
{
case 0:
return '';
break;
case 1:
return utf8_strtoupper($str);
break;
default:
preg_match('/^(.{1})(.*)$/us', $str, $matches);
return utf8_strtoupper($matches[1]) . $matches[2];
break;
}
}
/** /**
* Replace all UTF-8 chars that are not in ASCII with their NCR * Replace all UTF-8 chars that are not in ASCII with their NCR
* *

View file

@ -800,6 +800,7 @@ if (!$get_info)
array('group_display', 0, ''), array('group_display', 0, ''),
array('group_legend', 0, ''), array('group_legend', 0, ''),
array('group_name', 'groups.group_name', 'phpbb_convert_group_name'), // phpbb_set_encoding called in phpbb_convert_group_name array('group_name', 'groups.group_name', 'phpbb_convert_group_name'), // phpbb_set_encoding called in phpbb_convert_group_name
array('group_name_clean', 'groups.group_name', 'phpbb_convert_group_name_clean'), // phpbb_set_encoding called in phpbb_convert_group_name
array('group_desc', 'groups.group_description', 'phpbb_set_encoding'), array('group_desc', 'groups.group_description', 'phpbb_set_encoding'),
'where' => 'groups.group_single_user = 0', 'where' => 'groups.group_single_user = 0',

View file

@ -574,7 +574,7 @@ function phpbb_convert_authentication($mode)
$sql = 'SELECT group_id $sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . " FROM ' . GROUPS_TABLE . "
WHERE group_name = '" . $db->sql_escape('BOTS') . "'"; WHERE group_name_clean = '" . $db->sql_escape('bots') . "'";
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$bot_group_id = (int) $db->sql_fetchfield('group_id'); $bot_group_id = (int) $db->sql_fetchfield('group_id');
$db->sql_freeresult($result); $db->sql_freeresult($result);
@ -1139,6 +1139,28 @@ function phpbb_convert_group_name($group_name)
return phpbb_set_default_encoding($group_name); return phpbb_set_default_encoding($group_name);
} }
/**
* Convert the group name, making sure to avoid conflicts with 3.0 special groups
*/
function phpbb_convert_group_name_clean($group_name)
{
$default_groups = array(
'GUESTS',
'REGISTERED',
'REGISTERED_COPPA',
'GLOBAL_MODERATORS',
'ADMINISTRATORS',
'BOTS',
);
if (in_array(strtoupper($group_name), $default_groups))
{
return utf8_clean_string('phpBB2 - ' . $group_name);
}
return utf8_clean_string(phpbb_set_default_encoding($group_name));
}
/** /**
* Convert the group type constants * Convert the group type constants
*/ */

View file

@ -310,7 +310,7 @@ $dbms_type_map = array(
'UINT' => 'INT4', // unsigned 'UINT' => 'INT4', // unsigned
'UINT:' => 'INT4', // unsigned 'UINT:' => 'INT4', // unsigned
'USINT' => 'INT2', // unsigned 'USINT' => 'INT2', // unsigned
'BOOL' => 'INT2', // unsigned 'BOOL' => 'boolean', // unsigned
'TINT:' => 'INT2', 'TINT:' => 'INT2',
'VCHAR' => 'varchar(255)', 'VCHAR' => 'varchar(255)',
'VCHAR:' => 'varchar(%d)', 'VCHAR:' => 'varchar(%d)',
@ -327,7 +327,7 @@ $dbms_type_map = array(
'DECIMAL' => 'decimal(5,2)', 'DECIMAL' => 'decimal(5,2)',
'VCHAR_UNI' => 'varchar(255)', 'VCHAR_UNI' => 'varchar(255)',
'VCHAR_UNI:'=> 'varchar(%d)', 'VCHAR_UNI:'=> 'varchar(%d)',
'VCHAR_CI' => 'varchar_ci', 'VCHAR_CI' => 'varchar(255)',
'VARBINARY' => 'bytea', 'VARBINARY' => 'bytea',
), ),
); );

View file

@ -1817,7 +1817,7 @@ class install_install extends module
$sql = 'SELECT group_id $sql = 'SELECT group_id
FROM ' . GROUPS_TABLE . " FROM ' . GROUPS_TABLE . "
WHERE group_name = 'BOTS'"; WHERE group_name_clean = 'bots'";
$result = $db->sql_query($sql); $result = $db->sql_query($sql);
$group_id = (int) $db->sql_fetchfield('group_id'); $group_id = (int) $db->sql_fetchfield('group_id');
$db->sql_freeresult($result); $db->sql_freeresult($result);

View file

@ -179,6 +179,7 @@ CREATE TABLE phpbb_config (
); );
CREATE INDEX phpbb_config_is_dynamic ON phpbb_config (is_dynamic) PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS; CREATE INDEX phpbb_config_is_dynamic ON phpbb_config (is_dynamic) PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS;
CREATE INDEX phpbb_config_config_name ON phpbb_config (config_name) PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS;
/* /*
Table: 'phpbb_confirm' Table: 'phpbb_confirm'
@ -341,6 +342,7 @@ CREATE TABLE phpbb_groups (
group_type smallint NOT NULL DEFAULT 1, group_type smallint NOT NULL DEFAULT 1,
group_founder_manage smallint NOT NULL DEFAULT 0, group_founder_manage smallint NOT NULL DEFAULT 0,
group_name varchar(255) NOT NULL DEFAULT '', group_name varchar(255) NOT NULL DEFAULT '',
group_name_clean varchar(255) NOT NULL DEFAULT '',
group_desc clob(65K) NOT NULL DEFAULT '', group_desc clob(65K) NOT NULL DEFAULT '',
group_desc_bitfield varchar(255) NOT NULL DEFAULT '', group_desc_bitfield varchar(255) NOT NULL DEFAULT '',
group_desc_options integer NOT NULL DEFAULT 7, group_desc_options integer NOT NULL DEFAULT 7,
@ -1119,4 +1121,5 @@ CREATE TABLE phpbb_zebra (
PRIMARY KEY (user_id, zebra_id) PRIMARY KEY (user_id, zebra_id)
); );
CREATE INDEX phpbb_zebra_zebra_user ON phpbb_zebra (zebra_id, user_id) PCTFREE 10 MINPCTUSED 10 ALLOW REVERSE SCANS PAGE SPLIT SYMMETRIC COLLECT SAMPLED DETAILED STATISTICS;

View file

@ -220,6 +220,7 @@ CREATE TABLE phpbb_config (
ALTER TABLE phpbb_config ADD PRIMARY KEY (config_name);; ALTER TABLE phpbb_config ADD PRIMARY KEY (config_name);;
CREATE INDEX phpbb_config_is_dynamic ON phpbb_config(is_dynamic);; CREATE INDEX phpbb_config_is_dynamic ON phpbb_config(is_dynamic);;
CREATE INDEX phpbb_config_config_name ON phpbb_config(config_name);;
# Table: 'phpbb_confirm' # Table: 'phpbb_confirm'
CREATE TABLE phpbb_confirm ( CREATE TABLE phpbb_confirm (
@ -425,6 +426,7 @@ CREATE TABLE phpbb_groups (
group_type INTEGER DEFAULT 1 NOT NULL, group_type INTEGER DEFAULT 1 NOT NULL,
group_founder_manage INTEGER DEFAULT 0 NOT NULL, group_founder_manage INTEGER DEFAULT 0 NOT NULL,
group_name VARCHAR(255) CHARACTER SET UTF8 DEFAULT '' NOT NULL COLLATE UNICODE, group_name VARCHAR(255) CHARACTER SET UTF8 DEFAULT '' NOT NULL COLLATE UNICODE,
group_name_clean VARCHAR(255) CHARACTER SET UTF8 DEFAULT '' NOT NULL COLLATE UNICODE,
group_desc BLOB SUB_TYPE TEXT CHARACTER SET UTF8 DEFAULT '' NOT NULL, group_desc BLOB SUB_TYPE TEXT CHARACTER SET UTF8 DEFAULT '' NOT NULL,
group_desc_bitfield VARCHAR(255) CHARACTER SET NONE DEFAULT '' NOT NULL, group_desc_bitfield VARCHAR(255) CHARACTER SET NONE DEFAULT '' NOT NULL,
group_desc_options INTEGER DEFAULT 7 NOT NULL, group_desc_options INTEGER DEFAULT 7 NOT NULL,
@ -1430,4 +1432,5 @@ CREATE TABLE phpbb_zebra (
ALTER TABLE phpbb_zebra ADD PRIMARY KEY (user_id, zebra_id);; ALTER TABLE phpbb_zebra ADD PRIMARY KEY (user_id, zebra_id);;
CREATE INDEX phpbb_zebra_zebra_user ON phpbb_zebra(zebra_id, user_id);;

View file

@ -293,6 +293,9 @@ GO
CREATE INDEX [is_dynamic] ON [phpbb_config]([is_dynamic]) ON [PRIMARY] CREATE INDEX [is_dynamic] ON [phpbb_config]([is_dynamic]) ON [PRIMARY]
GO GO
CREATE INDEX [config_name] ON [phpbb_config]([config_name]) ON [PRIMARY]
GO
/* /*
Table: 'phpbb_confirm' Table: 'phpbb_confirm'
@ -530,6 +533,7 @@ CREATE TABLE [phpbb_groups] (
[group_type] [int] DEFAULT (1) NOT NULL , [group_type] [int] DEFAULT (1) NOT NULL ,
[group_founder_manage] [int] DEFAULT (0) NOT NULL , [group_founder_manage] [int] DEFAULT (0) NOT NULL ,
[group_name] [varchar] (255) DEFAULT ('') NOT NULL , [group_name] [varchar] (255) DEFAULT ('') NOT NULL ,
[group_name_clean] [varchar] (255) DEFAULT ('') NOT NULL ,
[group_desc] [varchar] (4000) DEFAULT ('') NOT NULL , [group_desc] [varchar] (4000) DEFAULT ('') NOT NULL ,
[group_desc_bitfield] [varchar] (255) DEFAULT ('') NOT NULL , [group_desc_bitfield] [varchar] (255) DEFAULT ('') NOT NULL ,
[group_desc_options] [int] DEFAULT (7) NOT NULL , [group_desc_options] [int] DEFAULT (7) NOT NULL ,
@ -1703,6 +1707,9 @@ ALTER TABLE [phpbb_zebra] WITH NOCHECK ADD
) ON [PRIMARY] ) ON [PRIMARY]
GO GO
CREATE INDEX [zebra_user] ON [phpbb_zebra]([zebra_id], [user_id]) ON [PRIMARY]
GO
COMMIT COMMIT

View file

@ -152,7 +152,8 @@ CREATE TABLE phpbb_config (
config_value varchar(255) DEFAULT '' NOT NULL, config_value varchar(255) DEFAULT '' NOT NULL,
is_dynamic tinyint(1) UNSIGNED DEFAULT '0' NOT NULL, is_dynamic tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
PRIMARY KEY (config_name), PRIMARY KEY (config_name),
KEY is_dynamic (is_dynamic) KEY is_dynamic (is_dynamic),
KEY config_name (config_name)
) CHARACTER SET `utf8` COLLATE `utf8_bin`; ) CHARACTER SET `utf8` COLLATE `utf8_bin`;
@ -297,6 +298,7 @@ CREATE TABLE phpbb_groups (
group_type tinyint(4) DEFAULT '1' NOT NULL, group_type tinyint(4) DEFAULT '1' NOT NULL,
group_founder_manage tinyint(1) UNSIGNED DEFAULT '0' NOT NULL, group_founder_manage tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
group_name varchar(255) DEFAULT '' NOT NULL, group_name varchar(255) DEFAULT '' NOT NULL,
group_name_clean varchar(255) DEFAULT '' NOT NULL,
group_desc text NOT NULL, group_desc text NOT NULL,
group_desc_bitfield varchar(255) DEFAULT '' NOT NULL, group_desc_bitfield varchar(255) DEFAULT '' NOT NULL,
group_desc_options int(11) UNSIGNED DEFAULT '7' NOT NULL, group_desc_options int(11) UNSIGNED DEFAULT '7' NOT NULL,
@ -990,7 +992,8 @@ CREATE TABLE phpbb_zebra (
zebra_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL, zebra_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
friend tinyint(1) UNSIGNED DEFAULT '0' NOT NULL, friend tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
foe tinyint(1) UNSIGNED DEFAULT '0' NOT NULL, foe tinyint(1) UNSIGNED DEFAULT '0' NOT NULL,
PRIMARY KEY (user_id, zebra_id) PRIMARY KEY (user_id, zebra_id),
KEY zebra_user (zebra_id, user_id)
) CHARACTER SET `utf8` COLLATE `utf8_bin`; ) CHARACTER SET `utf8` COLLATE `utf8_bin`;

View file

@ -329,6 +329,8 @@ CREATE TABLE phpbb_config (
CREATE INDEX phpbb_config_is_dynamic ON phpbb_config (is_dynamic) CREATE INDEX phpbb_config_is_dynamic ON phpbb_config (is_dynamic)
/ /
CREATE INDEX phpbb_config_config_name ON phpbb_config (config_name)
/
/* /*
Table: 'phpbb_confirm' Table: 'phpbb_confirm'
@ -586,7 +588,8 @@ CREATE TABLE phpbb_groups (
group_id number(8) NOT NULL, group_id number(8) NOT NULL,
group_type number(4) DEFAULT '1' NOT NULL, group_type number(4) DEFAULT '1' NOT NULL,
group_founder_manage number(1) DEFAULT '0' NOT NULL, group_founder_manage number(1) DEFAULT '0' NOT NULL,
group_name varchar2(255) DEFAULT '' , group_name varchar2(765) DEFAULT '' ,
group_name_clean varchar2(765) DEFAULT '' ,
group_desc clob DEFAULT '' , group_desc clob DEFAULT '' ,
group_desc_bitfield varchar2(255) DEFAULT '' , group_desc_bitfield varchar2(255) DEFAULT '' ,
group_desc_options number(11) DEFAULT '7' NOT NULL, group_desc_options number(11) DEFAULT '7' NOT NULL,
@ -1707,8 +1710,8 @@ CREATE TABLE phpbb_users (
user_perm_from number(8) DEFAULT '0' NOT NULL, user_perm_from number(8) DEFAULT '0' NOT NULL,
user_ip varchar2(40) DEFAULT '' , user_ip varchar2(40) DEFAULT '' ,
user_regdate number(11) DEFAULT '0' NOT NULL, user_regdate number(11) DEFAULT '0' NOT NULL,
username varchar2(255) DEFAULT '' , username varchar2(765) DEFAULT '' ,
username_clean varchar2(255) DEFAULT '' , username_clean varchar2(765) DEFAULT '' ,
user_password varchar2(120) DEFAULT '' , user_password varchar2(120) DEFAULT '' ,
user_passchg number(11) DEFAULT '0' NOT NULL, user_passchg number(11) DEFAULT '0' NOT NULL,
user_pass_convert number(1) DEFAULT '0' NOT NULL, user_pass_convert number(1) DEFAULT '0' NOT NULL,
@ -1871,4 +1874,6 @@ CREATE TABLE phpbb_zebra (
) )
/ /
CREATE INDEX phpbb_zebra_zebra_user ON phpbb_zebra (zebra_id, user_id)
/

View file

@ -6,80 +6,6 @@
BEGIN; BEGIN;
/*
Domain definition
*/
CREATE DOMAIN varchar_ci AS varchar(255) NOT NULL DEFAULT ''::character varying;
/*
Operation Functions
*/
CREATE FUNCTION _varchar_ci_equal(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) = LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_not_equal(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) != LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_less_than(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) < LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_less_equal(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) <= LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_greater_than(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) > LOWER($2)' LANGUAGE SQL STRICT;
CREATE FUNCTION _varchar_ci_greater_equals(varchar_ci, varchar_ci) RETURNS boolean AS 'SELECT LOWER($1) >= LOWER($2)' LANGUAGE SQL STRICT;
/*
Operators
*/
CREATE OPERATOR <(
PROCEDURE = _varchar_ci_less_than,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = >,
NEGATOR = >=,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR <=(
PROCEDURE = _varchar_ci_less_equal,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = >=,
NEGATOR = >,
RESTRICT = scalarltsel,
JOIN = scalarltjoinsel);
CREATE OPERATOR >(
PROCEDURE = _varchar_ci_greater_than,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = <,
NEGATOR = <=,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR >=(
PROCEDURE = _varchar_ci_greater_equals,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = <=,
NEGATOR = <,
RESTRICT = scalargtsel,
JOIN = scalargtjoinsel);
CREATE OPERATOR <>(
PROCEDURE = _varchar_ci_not_equal,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = <>,
NEGATOR = =,
RESTRICT = neqsel,
JOIN = neqjoinsel);
CREATE OPERATOR =(
PROCEDURE = _varchar_ci_equal,
LEFTARG = varchar_ci,
RIGHTARG = varchar_ci,
COMMUTATOR = =,
NEGATOR = <>,
RESTRICT = eqsel,
JOIN = eqjoinsel,
HASHES,
MERGES,
SORT1= <);
/* /*
Table: 'phpbb_attachments' Table: 'phpbb_attachments'
@ -90,9 +16,9 @@ CREATE TABLE phpbb_attachments (
attach_id INT4 DEFAULT nextval('phpbb_attachments_seq'), attach_id INT4 DEFAULT nextval('phpbb_attachments_seq'),
post_msg_id INT4 DEFAULT '0' NOT NULL CHECK (post_msg_id >= 0), post_msg_id INT4 DEFAULT '0' NOT NULL CHECK (post_msg_id >= 0),
topic_id INT4 DEFAULT '0' NOT NULL CHECK (topic_id >= 0), topic_id INT4 DEFAULT '0' NOT NULL CHECK (topic_id >= 0),
in_message INT2 DEFAULT '0' NOT NULL CHECK (in_message >= 0), in_message boolean DEFAULT '0' NOT NULL CHECK (in_message >= 0),
poster_id INT4 DEFAULT '0' NOT NULL CHECK (poster_id >= 0), poster_id INT4 DEFAULT '0' NOT NULL CHECK (poster_id >= 0),
is_orphan INT2 DEFAULT '1' NOT NULL CHECK (is_orphan >= 0), is_orphan boolean DEFAULT '1' NOT NULL CHECK (is_orphan >= 0),
physical_filename varchar(255) DEFAULT '' NOT NULL, physical_filename varchar(255) DEFAULT '' NOT NULL,
real_filename varchar(255) DEFAULT '' NOT NULL, real_filename varchar(255) DEFAULT '' NOT NULL,
download_count INT4 DEFAULT '0' NOT NULL CHECK (download_count >= 0), download_count INT4 DEFAULT '0' NOT NULL CHECK (download_count >= 0),
@ -101,7 +27,7 @@ CREATE TABLE phpbb_attachments (
mimetype varchar(100) DEFAULT '' NOT NULL, mimetype varchar(100) DEFAULT '' NOT NULL,
filesize INT4 DEFAULT '0' NOT NULL CHECK (filesize >= 0), filesize INT4 DEFAULT '0' NOT NULL CHECK (filesize >= 0),
filetime INT4 DEFAULT '0' NOT NULL CHECK (filetime >= 0), filetime INT4 DEFAULT '0' NOT NULL CHECK (filetime >= 0),
thumbnail INT2 DEFAULT '0' NOT NULL CHECK (thumbnail >= 0), thumbnail boolean DEFAULT '0' NOT NULL CHECK (thumbnail >= 0),
PRIMARY KEY (attach_id) PRIMARY KEY (attach_id)
); );
@ -134,9 +60,9 @@ CREATE SEQUENCE phpbb_acl_options_seq;
CREATE TABLE phpbb_acl_options ( CREATE TABLE phpbb_acl_options (
auth_option_id INT4 DEFAULT nextval('phpbb_acl_options_seq'), auth_option_id INT4 DEFAULT nextval('phpbb_acl_options_seq'),
auth_option varchar(50) DEFAULT '' NOT NULL, auth_option varchar(50) DEFAULT '' NOT NULL,
is_global INT2 DEFAULT '0' NOT NULL CHECK (is_global >= 0), is_global boolean DEFAULT '0' NOT NULL CHECK (is_global >= 0),
is_local INT2 DEFAULT '0' NOT NULL CHECK (is_local >= 0), is_local boolean DEFAULT '0' NOT NULL CHECK (is_local >= 0),
founder_only INT2 DEFAULT '0' NOT NULL CHECK (founder_only >= 0), founder_only boolean DEFAULT '0' NOT NULL CHECK (founder_only >= 0),
PRIMARY KEY (auth_option_id) PRIMARY KEY (auth_option_id)
); );
@ -198,7 +124,7 @@ CREATE TABLE phpbb_banlist (
ban_email varchar(100) DEFAULT '' NOT NULL, ban_email varchar(100) DEFAULT '' NOT NULL,
ban_start INT4 DEFAULT '0' NOT NULL CHECK (ban_start >= 0), ban_start INT4 DEFAULT '0' NOT NULL CHECK (ban_start >= 0),
ban_end INT4 DEFAULT '0' NOT NULL CHECK (ban_end >= 0), ban_end INT4 DEFAULT '0' NOT NULL CHECK (ban_end >= 0),
ban_exclude INT2 DEFAULT '0' NOT NULL CHECK (ban_exclude >= 0), ban_exclude boolean DEFAULT '0' NOT NULL CHECK (ban_exclude >= 0),
ban_reason varchar(255) DEFAULT '' NOT NULL, ban_reason varchar(255) DEFAULT '' NOT NULL,
ban_give_reason varchar(255) DEFAULT '' NOT NULL, ban_give_reason varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (ban_id) PRIMARY KEY (ban_id)
@ -216,7 +142,7 @@ CREATE TABLE phpbb_bbcodes (
bbcode_id INT2 DEFAULT '0' NOT NULL, bbcode_id INT2 DEFAULT '0' NOT NULL,
bbcode_tag varchar(16) DEFAULT '' NOT NULL, bbcode_tag varchar(16) DEFAULT '' NOT NULL,
bbcode_helpline varchar(255) DEFAULT '' NOT NULL, bbcode_helpline varchar(255) DEFAULT '' NOT NULL,
display_on_posting INT2 DEFAULT '0' NOT NULL CHECK (display_on_posting >= 0), display_on_posting boolean DEFAULT '0' NOT NULL CHECK (display_on_posting >= 0),
bbcode_match varchar(4000) DEFAULT '' NOT NULL, bbcode_match varchar(4000) DEFAULT '' NOT NULL,
bbcode_tpl TEXT DEFAULT '' NOT NULL, bbcode_tpl TEXT DEFAULT '' NOT NULL,
first_pass_match TEXT DEFAULT '' NOT NULL, first_pass_match TEXT DEFAULT '' NOT NULL,
@ -245,7 +171,7 @@ CREATE SEQUENCE phpbb_bots_seq;
CREATE TABLE phpbb_bots ( CREATE TABLE phpbb_bots (
bot_id INT4 DEFAULT nextval('phpbb_bots_seq'), bot_id INT4 DEFAULT nextval('phpbb_bots_seq'),
bot_active INT2 DEFAULT '1' NOT NULL CHECK (bot_active >= 0), bot_active boolean DEFAULT '1' NOT NULL CHECK (bot_active >= 0),
bot_name varchar(255) DEFAULT '' NOT NULL, bot_name varchar(255) DEFAULT '' NOT NULL,
user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0), user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0),
bot_agent varchar(255) DEFAULT '' NOT NULL, bot_agent varchar(255) DEFAULT '' NOT NULL,
@ -261,11 +187,12 @@ CREATE INDEX phpbb_bots_bot_active ON phpbb_bots (bot_active);
CREATE TABLE phpbb_config ( CREATE TABLE phpbb_config (
config_name varchar(255) DEFAULT '' NOT NULL, config_name varchar(255) DEFAULT '' NOT NULL,
config_value varchar(255) DEFAULT '' NOT NULL, config_value varchar(255) DEFAULT '' NOT NULL,
is_dynamic INT2 DEFAULT '0' NOT NULL CHECK (is_dynamic >= 0), is_dynamic boolean DEFAULT '0' NOT NULL CHECK (is_dynamic >= 0),
PRIMARY KEY (config_name) PRIMARY KEY (config_name)
); );
CREATE INDEX phpbb_config_is_dynamic ON phpbb_config (is_dynamic); CREATE INDEX phpbb_config_is_dynamic ON phpbb_config (is_dynamic);
CREATE INDEX phpbb_config_config_name ON phpbb_config (config_name);
/* /*
Table: 'phpbb_confirm' Table: 'phpbb_confirm'
@ -333,12 +260,12 @@ CREATE TABLE phpbb_extension_groups (
group_id INT4 DEFAULT nextval('phpbb_extension_groups_seq'), group_id INT4 DEFAULT nextval('phpbb_extension_groups_seq'),
group_name varchar(255) DEFAULT '' NOT NULL, group_name varchar(255) DEFAULT '' NOT NULL,
cat_id INT2 DEFAULT '0' NOT NULL, cat_id INT2 DEFAULT '0' NOT NULL,
allow_group INT2 DEFAULT '0' NOT NULL CHECK (allow_group >= 0), allow_group boolean DEFAULT '0' NOT NULL CHECK (allow_group >= 0),
download_mode INT2 DEFAULT '1' NOT NULL CHECK (download_mode >= 0), download_mode boolean DEFAULT '1' NOT NULL CHECK (download_mode >= 0),
upload_icon varchar(255) DEFAULT '' NOT NULL, upload_icon varchar(255) DEFAULT '' NOT NULL,
max_filesize INT4 DEFAULT '0' NOT NULL CHECK (max_filesize >= 0), max_filesize INT4 DEFAULT '0' NOT NULL CHECK (max_filesize >= 0),
allowed_forums varchar(8000) DEFAULT '' NOT NULL, allowed_forums varchar(8000) DEFAULT '' NOT NULL,
allow_in_pm INT2 DEFAULT '0' NOT NULL CHECK (allow_in_pm >= 0), allow_in_pm boolean DEFAULT '0' NOT NULL CHECK (allow_in_pm >= 0),
PRIMARY KEY (group_id) PRIMARY KEY (group_id)
); );
@ -381,10 +308,10 @@ CREATE TABLE phpbb_forums (
forum_last_poster_name varchar(255) DEFAULT '' NOT NULL, forum_last_poster_name varchar(255) DEFAULT '' NOT NULL,
forum_last_poster_colour varchar(6) DEFAULT '' NOT NULL, forum_last_poster_colour varchar(6) DEFAULT '' NOT NULL,
forum_flags INT2 DEFAULT '32' NOT NULL, forum_flags INT2 DEFAULT '32' NOT NULL,
display_on_index INT2 DEFAULT '1' NOT NULL CHECK (display_on_index >= 0), display_on_index boolean DEFAULT '1' NOT NULL CHECK (display_on_index >= 0),
enable_indexing INT2 DEFAULT '1' NOT NULL CHECK (enable_indexing >= 0), enable_indexing boolean DEFAULT '1' NOT NULL CHECK (enable_indexing >= 0),
enable_icons INT2 DEFAULT '1' NOT NULL CHECK (enable_icons >= 0), enable_icons boolean DEFAULT '1' NOT NULL CHECK (enable_icons >= 0),
enable_prune INT2 DEFAULT '0' NOT NULL CHECK (enable_prune >= 0), enable_prune boolean DEFAULT '0' NOT NULL CHECK (enable_prune >= 0),
prune_next INT4 DEFAULT '0' NOT NULL CHECK (prune_next >= 0), prune_next INT4 DEFAULT '0' NOT NULL CHECK (prune_next >= 0),
prune_days INT4 DEFAULT '0' NOT NULL CHECK (prune_days >= 0), prune_days INT4 DEFAULT '0' NOT NULL CHECK (prune_days >= 0),
prune_viewed INT4 DEFAULT '0' NOT NULL CHECK (prune_viewed >= 0), prune_viewed INT4 DEFAULT '0' NOT NULL CHECK (prune_viewed >= 0),
@ -423,7 +350,7 @@ CREATE TABLE phpbb_forums_track (
CREATE TABLE phpbb_forums_watch ( CREATE TABLE phpbb_forums_watch (
forum_id INT4 DEFAULT '0' NOT NULL CHECK (forum_id >= 0), forum_id INT4 DEFAULT '0' NOT NULL CHECK (forum_id >= 0),
user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0), user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0),
notify_status INT2 DEFAULT '0' NOT NULL CHECK (notify_status >= 0) notify_status boolean DEFAULT '0' NOT NULL CHECK (notify_status >= 0)
); );
CREATE INDEX phpbb_forums_watch_forum_id ON phpbb_forums_watch (forum_id); CREATE INDEX phpbb_forums_watch_forum_id ON phpbb_forums_watch (forum_id);
@ -438,13 +365,14 @@ CREATE SEQUENCE phpbb_groups_seq;
CREATE TABLE phpbb_groups ( CREATE TABLE phpbb_groups (
group_id INT4 DEFAULT nextval('phpbb_groups_seq'), group_id INT4 DEFAULT nextval('phpbb_groups_seq'),
group_type INT2 DEFAULT '1' NOT NULL, group_type INT2 DEFAULT '1' NOT NULL,
group_founder_manage INT2 DEFAULT '0' NOT NULL CHECK (group_founder_manage >= 0), group_founder_manage boolean DEFAULT '0' NOT NULL CHECK (group_founder_manage >= 0),
group_name varchar_ci DEFAULT '' NOT NULL, group_name varchar(255) DEFAULT '' NOT NULL,
group_name_clean varchar(255) DEFAULT '' NOT NULL,
group_desc varchar(4000) DEFAULT '' NOT NULL, group_desc varchar(4000) DEFAULT '' NOT NULL,
group_desc_bitfield varchar(255) DEFAULT '' NOT NULL, group_desc_bitfield varchar(255) DEFAULT '' NOT NULL,
group_desc_options INT4 DEFAULT '7' NOT NULL CHECK (group_desc_options >= 0), group_desc_options INT4 DEFAULT '7' NOT NULL CHECK (group_desc_options >= 0),
group_desc_uid varchar(8) DEFAULT '' NOT NULL, group_desc_uid varchar(8) DEFAULT '' NOT NULL,
group_display INT2 DEFAULT '0' NOT NULL CHECK (group_display >= 0), group_display boolean DEFAULT '0' NOT NULL CHECK (group_display >= 0),
group_avatar varchar(255) DEFAULT '' NOT NULL, group_avatar varchar(255) DEFAULT '' NOT NULL,
group_avatar_type INT2 DEFAULT '0' NOT NULL, group_avatar_type INT2 DEFAULT '0' NOT NULL,
group_avatar_width INT2 DEFAULT '0' NOT NULL CHECK (group_avatar_width >= 0), group_avatar_width INT2 DEFAULT '0' NOT NULL CHECK (group_avatar_width >= 0),
@ -452,9 +380,9 @@ CREATE TABLE phpbb_groups (
group_rank INT4 DEFAULT '0' NOT NULL CHECK (group_rank >= 0), group_rank INT4 DEFAULT '0' NOT NULL CHECK (group_rank >= 0),
group_colour varchar(6) DEFAULT '' NOT NULL, group_colour varchar(6) DEFAULT '' NOT NULL,
group_sig_chars INT4 DEFAULT '0' NOT NULL CHECK (group_sig_chars >= 0), group_sig_chars INT4 DEFAULT '0' NOT NULL CHECK (group_sig_chars >= 0),
group_receive_pm INT2 DEFAULT '0' NOT NULL CHECK (group_receive_pm >= 0), group_receive_pm boolean DEFAULT '0' NOT NULL CHECK (group_receive_pm >= 0),
group_message_limit INT4 DEFAULT '0' NOT NULL CHECK (group_message_limit >= 0), group_message_limit INT4 DEFAULT '0' NOT NULL CHECK (group_message_limit >= 0),
group_legend INT2 DEFAULT '1' NOT NULL CHECK (group_legend >= 0), group_legend boolean DEFAULT '1' NOT NULL CHECK (group_legend >= 0),
PRIMARY KEY (group_id) PRIMARY KEY (group_id)
); );
@ -471,7 +399,7 @@ CREATE TABLE phpbb_icons (
icons_width INT2 DEFAULT '0' NOT NULL, icons_width INT2 DEFAULT '0' NOT NULL,
icons_height INT2 DEFAULT '0' NOT NULL, icons_height INT2 DEFAULT '0' NOT NULL,
icons_order INT4 DEFAULT '0' NOT NULL CHECK (icons_order >= 0), icons_order INT4 DEFAULT '0' NOT NULL CHECK (icons_order >= 0),
display_on_posting INT2 DEFAULT '1' NOT NULL CHECK (display_on_posting >= 0), display_on_posting boolean DEFAULT '1' NOT NULL CHECK (display_on_posting >= 0),
PRIMARY KEY (icons_id) PRIMARY KEY (icons_id)
); );
@ -528,7 +456,7 @@ CREATE TABLE phpbb_moderator_cache (
username varchar(255) DEFAULT '' NOT NULL, username varchar(255) DEFAULT '' NOT NULL,
group_id INT4 DEFAULT '0' NOT NULL CHECK (group_id >= 0), group_id INT4 DEFAULT '0' NOT NULL CHECK (group_id >= 0),
group_name varchar(255) DEFAULT '' NOT NULL, group_name varchar(255) DEFAULT '' NOT NULL,
display_on_index INT2 DEFAULT '1' NOT NULL CHECK (display_on_index >= 0) display_on_index boolean DEFAULT '1' NOT NULL CHECK (display_on_index >= 0)
); );
CREATE INDEX phpbb_moderator_cache_disp_idx ON phpbb_moderator_cache (display_on_index); CREATE INDEX phpbb_moderator_cache_disp_idx ON phpbb_moderator_cache (display_on_index);
@ -541,8 +469,8 @@ CREATE SEQUENCE phpbb_modules_seq;
CREATE TABLE phpbb_modules ( CREATE TABLE phpbb_modules (
module_id INT4 DEFAULT nextval('phpbb_modules_seq'), module_id INT4 DEFAULT nextval('phpbb_modules_seq'),
module_enabled INT2 DEFAULT '1' NOT NULL CHECK (module_enabled >= 0), module_enabled boolean DEFAULT '1' NOT NULL CHECK (module_enabled >= 0),
module_display INT2 DEFAULT '1' NOT NULL CHECK (module_display >= 0), module_display boolean DEFAULT '1' NOT NULL CHECK (module_display >= 0),
module_basename varchar(255) DEFAULT '' NOT NULL, module_basename varchar(255) DEFAULT '' NOT NULL,
module_class varchar(10) DEFAULT '' NOT NULL, module_class varchar(10) DEFAULT '' NOT NULL,
parent_id INT4 DEFAULT '0' NOT NULL CHECK (parent_id >= 0), parent_id INT4 DEFAULT '0' NOT NULL CHECK (parent_id >= 0),
@ -598,25 +526,25 @@ CREATE TABLE phpbb_posts (
icon_id INT4 DEFAULT '0' NOT NULL CHECK (icon_id >= 0), icon_id INT4 DEFAULT '0' NOT NULL CHECK (icon_id >= 0),
poster_ip varchar(40) DEFAULT '' NOT NULL, poster_ip varchar(40) DEFAULT '' NOT NULL,
post_time INT4 DEFAULT '0' NOT NULL CHECK (post_time >= 0), post_time INT4 DEFAULT '0' NOT NULL CHECK (post_time >= 0),
post_approved INT2 DEFAULT '1' NOT NULL CHECK (post_approved >= 0), post_approved boolean DEFAULT '1' NOT NULL CHECK (post_approved >= 0),
post_reported INT2 DEFAULT '0' NOT NULL CHECK (post_reported >= 0), post_reported boolean DEFAULT '0' NOT NULL CHECK (post_reported >= 0),
enable_bbcode INT2 DEFAULT '1' NOT NULL CHECK (enable_bbcode >= 0), enable_bbcode boolean DEFAULT '1' NOT NULL CHECK (enable_bbcode >= 0),
enable_smilies INT2 DEFAULT '1' NOT NULL CHECK (enable_smilies >= 0), enable_smilies boolean DEFAULT '1' NOT NULL CHECK (enable_smilies >= 0),
enable_magic_url INT2 DEFAULT '1' NOT NULL CHECK (enable_magic_url >= 0), enable_magic_url boolean DEFAULT '1' NOT NULL CHECK (enable_magic_url >= 0),
enable_sig INT2 DEFAULT '1' NOT NULL CHECK (enable_sig >= 0), enable_sig boolean DEFAULT '1' NOT NULL CHECK (enable_sig >= 0),
post_username varchar(255) DEFAULT '' NOT NULL, post_username varchar(255) DEFAULT '' NOT NULL,
post_subject varchar(100) DEFAULT '' NOT NULL, post_subject varchar(100) DEFAULT '' NOT NULL,
post_text TEXT DEFAULT '' NOT NULL, post_text TEXT DEFAULT '' NOT NULL,
post_checksum varchar(32) DEFAULT '' NOT NULL, post_checksum varchar(32) DEFAULT '' NOT NULL,
post_attachment INT2 DEFAULT '0' NOT NULL CHECK (post_attachment >= 0), post_attachment boolean DEFAULT '0' NOT NULL CHECK (post_attachment >= 0),
bbcode_bitfield varchar(255) DEFAULT '' NOT NULL, bbcode_bitfield varchar(255) DEFAULT '' NOT NULL,
bbcode_uid varchar(8) DEFAULT '' NOT NULL, bbcode_uid varchar(8) DEFAULT '' NOT NULL,
post_postcount INT2 DEFAULT '1' NOT NULL CHECK (post_postcount >= 0), post_postcount boolean DEFAULT '1' NOT NULL CHECK (post_postcount >= 0),
post_edit_time INT4 DEFAULT '0' NOT NULL CHECK (post_edit_time >= 0), post_edit_time INT4 DEFAULT '0' NOT NULL CHECK (post_edit_time >= 0),
post_edit_reason varchar(255) DEFAULT '' NOT NULL, post_edit_reason varchar(255) DEFAULT '' NOT NULL,
post_edit_user INT4 DEFAULT '0' NOT NULL CHECK (post_edit_user >= 0), post_edit_user INT4 DEFAULT '0' NOT NULL CHECK (post_edit_user >= 0),
post_edit_count INT2 DEFAULT '0' NOT NULL CHECK (post_edit_count >= 0), post_edit_count INT2 DEFAULT '0' NOT NULL CHECK (post_edit_count >= 0),
post_edit_locked INT2 DEFAULT '0' NOT NULL CHECK (post_edit_locked >= 0), post_edit_locked boolean DEFAULT '0' NOT NULL CHECK (post_edit_locked >= 0),
PRIMARY KEY (post_id) PRIMARY KEY (post_id)
); );
@ -639,15 +567,15 @@ CREATE TABLE phpbb_privmsgs (
icon_id INT4 DEFAULT '0' NOT NULL CHECK (icon_id >= 0), icon_id INT4 DEFAULT '0' NOT NULL CHECK (icon_id >= 0),
author_ip varchar(40) DEFAULT '' NOT NULL, author_ip varchar(40) DEFAULT '' NOT NULL,
message_time INT4 DEFAULT '0' NOT NULL CHECK (message_time >= 0), message_time INT4 DEFAULT '0' NOT NULL CHECK (message_time >= 0),
enable_bbcode INT2 DEFAULT '1' NOT NULL CHECK (enable_bbcode >= 0), enable_bbcode boolean DEFAULT '1' NOT NULL CHECK (enable_bbcode >= 0),
enable_smilies INT2 DEFAULT '1' NOT NULL CHECK (enable_smilies >= 0), enable_smilies boolean DEFAULT '1' NOT NULL CHECK (enable_smilies >= 0),
enable_magic_url INT2 DEFAULT '1' NOT NULL CHECK (enable_magic_url >= 0), enable_magic_url boolean DEFAULT '1' NOT NULL CHECK (enable_magic_url >= 0),
enable_sig INT2 DEFAULT '1' NOT NULL CHECK (enable_sig >= 0), enable_sig boolean DEFAULT '1' NOT NULL CHECK (enable_sig >= 0),
message_subject varchar(100) DEFAULT '' NOT NULL, message_subject varchar(100) DEFAULT '' NOT NULL,
message_text TEXT DEFAULT '' NOT NULL, message_text TEXT DEFAULT '' NOT NULL,
message_edit_reason varchar(255) DEFAULT '' NOT NULL, message_edit_reason varchar(255) DEFAULT '' NOT NULL,
message_edit_user INT4 DEFAULT '0' NOT NULL CHECK (message_edit_user >= 0), message_edit_user INT4 DEFAULT '0' NOT NULL CHECK (message_edit_user >= 0),
message_attachment INT2 DEFAULT '0' NOT NULL CHECK (message_attachment >= 0), message_attachment boolean DEFAULT '0' NOT NULL CHECK (message_attachment >= 0),
bbcode_bitfield varchar(255) DEFAULT '' NOT NULL, bbcode_bitfield varchar(255) DEFAULT '' NOT NULL,
bbcode_uid varchar(8) DEFAULT '' NOT NULL, bbcode_uid varchar(8) DEFAULT '' NOT NULL,
message_edit_time INT4 DEFAULT '0' NOT NULL CHECK (message_edit_time >= 0), message_edit_time INT4 DEFAULT '0' NOT NULL CHECK (message_edit_time >= 0),
@ -704,12 +632,12 @@ CREATE TABLE phpbb_privmsgs_to (
msg_id INT4 DEFAULT '0' NOT NULL CHECK (msg_id >= 0), msg_id INT4 DEFAULT '0' NOT NULL CHECK (msg_id >= 0),
user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0), user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0),
author_id INT4 DEFAULT '0' NOT NULL CHECK (author_id >= 0), author_id INT4 DEFAULT '0' NOT NULL CHECK (author_id >= 0),
pm_deleted INT2 DEFAULT '0' NOT NULL CHECK (pm_deleted >= 0), pm_deleted boolean DEFAULT '0' NOT NULL CHECK (pm_deleted >= 0),
pm_new INT2 DEFAULT '1' NOT NULL CHECK (pm_new >= 0), pm_new boolean DEFAULT '1' NOT NULL CHECK (pm_new >= 0),
pm_unread INT2 DEFAULT '1' NOT NULL CHECK (pm_unread >= 0), pm_unread boolean DEFAULT '1' NOT NULL CHECK (pm_unread >= 0),
pm_replied INT2 DEFAULT '0' NOT NULL CHECK (pm_replied >= 0), pm_replied boolean DEFAULT '0' NOT NULL CHECK (pm_replied >= 0),
pm_marked INT2 DEFAULT '0' NOT NULL CHECK (pm_marked >= 0), pm_marked boolean DEFAULT '0' NOT NULL CHECK (pm_marked >= 0),
pm_forwarded INT2 DEFAULT '0' NOT NULL CHECK (pm_forwarded >= 0), pm_forwarded boolean DEFAULT '0' NOT NULL CHECK (pm_forwarded >= 0),
folder_id INT4 DEFAULT '0' NOT NULL folder_id INT4 DEFAULT '0' NOT NULL
); );
@ -733,11 +661,11 @@ CREATE TABLE phpbb_profile_fields (
field_novalue varchar(255) DEFAULT '' NOT NULL, field_novalue varchar(255) DEFAULT '' NOT NULL,
field_default_value varchar(255) DEFAULT '' NOT NULL, field_default_value varchar(255) DEFAULT '' NOT NULL,
field_validation varchar(20) DEFAULT '' NOT NULL, field_validation varchar(20) DEFAULT '' NOT NULL,
field_required INT2 DEFAULT '0' NOT NULL CHECK (field_required >= 0), field_required boolean DEFAULT '0' NOT NULL CHECK (field_required >= 0),
field_show_on_reg INT2 DEFAULT '0' NOT NULL CHECK (field_show_on_reg >= 0), field_show_on_reg boolean DEFAULT '0' NOT NULL CHECK (field_show_on_reg >= 0),
field_hide INT2 DEFAULT '0' NOT NULL CHECK (field_hide >= 0), field_hide boolean DEFAULT '0' NOT NULL CHECK (field_hide >= 0),
field_no_view INT2 DEFAULT '0' NOT NULL CHECK (field_no_view >= 0), field_no_view boolean DEFAULT '0' NOT NULL CHECK (field_no_view >= 0),
field_active INT2 DEFAULT '0' NOT NULL CHECK (field_active >= 0), field_active boolean DEFAULT '0' NOT NULL CHECK (field_active >= 0),
field_order INT4 DEFAULT '0' NOT NULL CHECK (field_order >= 0), field_order INT4 DEFAULT '0' NOT NULL CHECK (field_order >= 0),
PRIMARY KEY (field_id) PRIMARY KEY (field_id)
); );
@ -789,7 +717,7 @@ CREATE TABLE phpbb_ranks (
rank_id INT4 DEFAULT nextval('phpbb_ranks_seq'), rank_id INT4 DEFAULT nextval('phpbb_ranks_seq'),
rank_title varchar(255) DEFAULT '' NOT NULL, rank_title varchar(255) DEFAULT '' NOT NULL,
rank_min INT4 DEFAULT '0' NOT NULL CHECK (rank_min >= 0), rank_min INT4 DEFAULT '0' NOT NULL CHECK (rank_min >= 0),
rank_special INT2 DEFAULT '0' NOT NULL CHECK (rank_special >= 0), rank_special boolean DEFAULT '0' NOT NULL CHECK (rank_special >= 0),
rank_image varchar(255) DEFAULT '' NOT NULL, rank_image varchar(255) DEFAULT '' NOT NULL,
PRIMARY KEY (rank_id) PRIMARY KEY (rank_id)
); );
@ -805,8 +733,8 @@ CREATE TABLE phpbb_reports (
reason_id INT2 DEFAULT '0' NOT NULL CHECK (reason_id >= 0), reason_id INT2 DEFAULT '0' NOT NULL CHECK (reason_id >= 0),
post_id INT4 DEFAULT '0' NOT NULL CHECK (post_id >= 0), post_id INT4 DEFAULT '0' NOT NULL CHECK (post_id >= 0),
user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0), user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0),
user_notify INT2 DEFAULT '0' NOT NULL CHECK (user_notify >= 0), user_notify boolean DEFAULT '0' NOT NULL CHECK (user_notify >= 0),
report_closed INT2 DEFAULT '0' NOT NULL CHECK (report_closed >= 0), report_closed boolean DEFAULT '0' NOT NULL CHECK (report_closed >= 0),
report_time INT4 DEFAULT '0' NOT NULL CHECK (report_time >= 0), report_time INT4 DEFAULT '0' NOT NULL CHECK (report_time >= 0),
report_text TEXT DEFAULT '' NOT NULL, report_text TEXT DEFAULT '' NOT NULL,
PRIMARY KEY (report_id) PRIMARY KEY (report_id)
@ -847,7 +775,7 @@ CREATE SEQUENCE phpbb_search_wordlist_seq;
CREATE TABLE phpbb_search_wordlist ( CREATE TABLE phpbb_search_wordlist (
word_id INT4 DEFAULT nextval('phpbb_search_wordlist_seq'), word_id INT4 DEFAULT nextval('phpbb_search_wordlist_seq'),
word_text varchar(255) DEFAULT '' NOT NULL, word_text varchar(255) DEFAULT '' NOT NULL,
word_common INT2 DEFAULT '0' NOT NULL CHECK (word_common >= 0), word_common boolean DEFAULT '0' NOT NULL CHECK (word_common >= 0),
word_count INT4 DEFAULT '0' NOT NULL CHECK (word_count >= 0), word_count INT4 DEFAULT '0' NOT NULL CHECK (word_count >= 0),
PRIMARY KEY (word_id) PRIMARY KEY (word_id)
); );
@ -861,7 +789,7 @@ CREATE INDEX phpbb_search_wordlist_wrd_cnt ON phpbb_search_wordlist (word_count)
CREATE TABLE phpbb_search_wordmatch ( CREATE TABLE phpbb_search_wordmatch (
post_id INT4 DEFAULT '0' NOT NULL CHECK (post_id >= 0), post_id INT4 DEFAULT '0' NOT NULL CHECK (post_id >= 0),
word_id INT4 DEFAULT '0' NOT NULL CHECK (word_id >= 0), word_id INT4 DEFAULT '0' NOT NULL CHECK (word_id >= 0),
title_match INT2 DEFAULT '0' NOT NULL CHECK (title_match >= 0) title_match boolean DEFAULT '0' NOT NULL CHECK (title_match >= 0)
); );
CREATE UNIQUE INDEX phpbb_search_wordmatch_unq_mtch ON phpbb_search_wordmatch (word_id, post_id, title_match); CREATE UNIQUE INDEX phpbb_search_wordmatch_unq_mtch ON phpbb_search_wordmatch (word_id, post_id, title_match);
@ -881,9 +809,9 @@ CREATE TABLE phpbb_sessions (
session_browser varchar(150) DEFAULT '' NOT NULL, session_browser varchar(150) DEFAULT '' NOT NULL,
session_forwarded_for varchar(255) DEFAULT '' NOT NULL, session_forwarded_for varchar(255) DEFAULT '' NOT NULL,
session_page varchar(255) DEFAULT '' NOT NULL, session_page varchar(255) DEFAULT '' NOT NULL,
session_viewonline INT2 DEFAULT '1' NOT NULL CHECK (session_viewonline >= 0), session_viewonline boolean DEFAULT '1' NOT NULL CHECK (session_viewonline >= 0),
session_autologin INT2 DEFAULT '0' NOT NULL CHECK (session_autologin >= 0), session_autologin boolean DEFAULT '0' NOT NULL CHECK (session_autologin >= 0),
session_admin INT2 DEFAULT '0' NOT NULL CHECK (session_admin >= 0), session_admin boolean DEFAULT '0' NOT NULL CHECK (session_admin >= 0),
PRIMARY KEY (session_id) PRIMARY KEY (session_id)
); );
@ -912,7 +840,7 @@ CREATE TABLE phpbb_sitelist (
site_id INT4 DEFAULT nextval('phpbb_sitelist_seq'), site_id INT4 DEFAULT nextval('phpbb_sitelist_seq'),
site_ip varchar(40) DEFAULT '' NOT NULL, site_ip varchar(40) DEFAULT '' NOT NULL,
site_hostname varchar(255) DEFAULT '' NOT NULL, site_hostname varchar(255) DEFAULT '' NOT NULL,
ip_exclude INT2 DEFAULT '0' NOT NULL CHECK (ip_exclude >= 0), ip_exclude boolean DEFAULT '0' NOT NULL CHECK (ip_exclude >= 0),
PRIMARY KEY (site_id) PRIMARY KEY (site_id)
); );
@ -930,7 +858,7 @@ CREATE TABLE phpbb_smilies (
smiley_width INT2 DEFAULT '0' NOT NULL CHECK (smiley_width >= 0), smiley_width INT2 DEFAULT '0' NOT NULL CHECK (smiley_width >= 0),
smiley_height INT2 DEFAULT '0' NOT NULL CHECK (smiley_height >= 0), smiley_height INT2 DEFAULT '0' NOT NULL CHECK (smiley_height >= 0),
smiley_order INT4 DEFAULT '0' NOT NULL CHECK (smiley_order >= 0), smiley_order INT4 DEFAULT '0' NOT NULL CHECK (smiley_order >= 0),
display_on_posting INT2 DEFAULT '1' NOT NULL CHECK (display_on_posting >= 0), display_on_posting boolean DEFAULT '1' NOT NULL CHECK (display_on_posting >= 0),
PRIMARY KEY (smiley_id) PRIMARY KEY (smiley_id)
); );
@ -945,7 +873,7 @@ CREATE TABLE phpbb_styles (
style_id INT2 DEFAULT nextval('phpbb_styles_seq'), style_id INT2 DEFAULT nextval('phpbb_styles_seq'),
style_name varchar(255) DEFAULT '' NOT NULL, style_name varchar(255) DEFAULT '' NOT NULL,
style_copyright varchar(255) DEFAULT '' NOT NULL, style_copyright varchar(255) DEFAULT '' NOT NULL,
style_active INT2 DEFAULT '1' NOT NULL CHECK (style_active >= 0), style_active boolean DEFAULT '1' NOT NULL CHECK (style_active >= 0),
template_id INT2 DEFAULT '0' NOT NULL CHECK (template_id >= 0), template_id INT2 DEFAULT '0' NOT NULL CHECK (template_id >= 0),
theme_id INT2 DEFAULT '0' NOT NULL CHECK (theme_id >= 0), theme_id INT2 DEFAULT '0' NOT NULL CHECK (theme_id >= 0),
imageset_id INT2 DEFAULT '0' NOT NULL CHECK (imageset_id >= 0), imageset_id INT2 DEFAULT '0' NOT NULL CHECK (imageset_id >= 0),
@ -968,7 +896,7 @@ CREATE TABLE phpbb_styles_template (
template_copyright varchar(255) DEFAULT '' NOT NULL, template_copyright varchar(255) DEFAULT '' NOT NULL,
template_path varchar(100) DEFAULT '' NOT NULL, template_path varchar(100) DEFAULT '' NOT NULL,
bbcode_bitfield varchar(255) DEFAULT 'kNg=' NOT NULL, bbcode_bitfield varchar(255) DEFAULT 'kNg=' NOT NULL,
template_storedb INT2 DEFAULT '0' NOT NULL CHECK (template_storedb >= 0), template_storedb boolean DEFAULT '0' NOT NULL CHECK (template_storedb >= 0),
PRIMARY KEY (template_id) PRIMARY KEY (template_id)
); );
@ -998,7 +926,7 @@ CREATE TABLE phpbb_styles_theme (
theme_name varchar(255) DEFAULT '' NOT NULL, theme_name varchar(255) DEFAULT '' NOT NULL,
theme_copyright varchar(255) DEFAULT '' NOT NULL, theme_copyright varchar(255) DEFAULT '' NOT NULL,
theme_path varchar(100) DEFAULT '' NOT NULL, theme_path varchar(100) DEFAULT '' NOT NULL,
theme_storedb INT2 DEFAULT '0' NOT NULL CHECK (theme_storedb >= 0), theme_storedb boolean DEFAULT '0' NOT NULL CHECK (theme_storedb >= 0),
theme_mtime INT4 DEFAULT '0' NOT NULL CHECK (theme_mtime >= 0), theme_mtime INT4 DEFAULT '0' NOT NULL CHECK (theme_mtime >= 0),
theme_data TEXT DEFAULT '' NOT NULL, theme_data TEXT DEFAULT '' NOT NULL,
PRIMARY KEY (theme_id) PRIMARY KEY (theme_id)
@ -1048,9 +976,9 @@ CREATE TABLE phpbb_topics (
topic_id INT4 DEFAULT nextval('phpbb_topics_seq'), topic_id INT4 DEFAULT nextval('phpbb_topics_seq'),
forum_id INT4 DEFAULT '0' NOT NULL CHECK (forum_id >= 0), forum_id INT4 DEFAULT '0' NOT NULL CHECK (forum_id >= 0),
icon_id INT4 DEFAULT '0' NOT NULL CHECK (icon_id >= 0), icon_id INT4 DEFAULT '0' NOT NULL CHECK (icon_id >= 0),
topic_attachment INT2 DEFAULT '0' NOT NULL CHECK (topic_attachment >= 0), topic_attachment boolean DEFAULT '0' NOT NULL CHECK (topic_attachment >= 0),
topic_approved INT2 DEFAULT '1' NOT NULL CHECK (topic_approved >= 0), topic_approved boolean DEFAULT '1' NOT NULL CHECK (topic_approved >= 0),
topic_reported INT2 DEFAULT '0' NOT NULL CHECK (topic_reported >= 0), topic_reported boolean DEFAULT '0' NOT NULL CHECK (topic_reported >= 0),
topic_title varchar(100) DEFAULT '' NOT NULL, topic_title varchar(100) DEFAULT '' NOT NULL,
topic_poster INT4 DEFAULT '0' NOT NULL CHECK (topic_poster >= 0), topic_poster INT4 DEFAULT '0' NOT NULL CHECK (topic_poster >= 0),
topic_time INT4 DEFAULT '0' NOT NULL CHECK (topic_time >= 0), topic_time INT4 DEFAULT '0' NOT NULL CHECK (topic_time >= 0),
@ -1071,14 +999,14 @@ CREATE TABLE phpbb_topics (
topic_last_post_time INT4 DEFAULT '0' NOT NULL CHECK (topic_last_post_time >= 0), topic_last_post_time INT4 DEFAULT '0' NOT NULL CHECK (topic_last_post_time >= 0),
topic_last_view_time INT4 DEFAULT '0' NOT NULL CHECK (topic_last_view_time >= 0), topic_last_view_time INT4 DEFAULT '0' NOT NULL CHECK (topic_last_view_time >= 0),
topic_moved_id INT4 DEFAULT '0' NOT NULL CHECK (topic_moved_id >= 0), topic_moved_id INT4 DEFAULT '0' NOT NULL CHECK (topic_moved_id >= 0),
topic_bumped INT2 DEFAULT '0' NOT NULL CHECK (topic_bumped >= 0), topic_bumped boolean DEFAULT '0' NOT NULL CHECK (topic_bumped >= 0),
topic_bumper INT4 DEFAULT '0' NOT NULL CHECK (topic_bumper >= 0), topic_bumper INT4 DEFAULT '0' NOT NULL CHECK (topic_bumper >= 0),
poll_title varchar(255) DEFAULT '' NOT NULL, poll_title varchar(255) DEFAULT '' NOT NULL,
poll_start INT4 DEFAULT '0' NOT NULL CHECK (poll_start >= 0), poll_start INT4 DEFAULT '0' NOT NULL CHECK (poll_start >= 0),
poll_length INT4 DEFAULT '0' NOT NULL CHECK (poll_length >= 0), poll_length INT4 DEFAULT '0' NOT NULL CHECK (poll_length >= 0),
poll_max_options INT2 DEFAULT '1' NOT NULL, poll_max_options INT2 DEFAULT '1' NOT NULL,
poll_last_vote INT4 DEFAULT '0' NOT NULL CHECK (poll_last_vote >= 0), poll_last_vote INT4 DEFAULT '0' NOT NULL CHECK (poll_last_vote >= 0),
poll_vote_change INT2 DEFAULT '0' NOT NULL CHECK (poll_vote_change >= 0), poll_vote_change boolean DEFAULT '0' NOT NULL CHECK (poll_vote_change >= 0),
PRIMARY KEY (topic_id) PRIMARY KEY (topic_id)
); );
@ -1108,7 +1036,7 @@ CREATE INDEX phpbb_topics_track_forum_id ON phpbb_topics_track (forum_id);
CREATE TABLE phpbb_topics_posted ( CREATE TABLE phpbb_topics_posted (
user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0), user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0),
topic_id INT4 DEFAULT '0' NOT NULL CHECK (topic_id >= 0), topic_id INT4 DEFAULT '0' NOT NULL CHECK (topic_id >= 0),
topic_posted INT2 DEFAULT '0' NOT NULL CHECK (topic_posted >= 0), topic_posted boolean DEFAULT '0' NOT NULL CHECK (topic_posted >= 0),
PRIMARY KEY (user_id, topic_id) PRIMARY KEY (user_id, topic_id)
); );
@ -1119,7 +1047,7 @@ CREATE TABLE phpbb_topics_posted (
CREATE TABLE phpbb_topics_watch ( CREATE TABLE phpbb_topics_watch (
topic_id INT4 DEFAULT '0' NOT NULL CHECK (topic_id >= 0), topic_id INT4 DEFAULT '0' NOT NULL CHECK (topic_id >= 0),
user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0), user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0),
notify_status INT2 DEFAULT '0' NOT NULL CHECK (notify_status >= 0) notify_status boolean DEFAULT '0' NOT NULL CHECK (notify_status >= 0)
); );
CREATE INDEX phpbb_topics_watch_topic_id ON phpbb_topics_watch (topic_id); CREATE INDEX phpbb_topics_watch_topic_id ON phpbb_topics_watch (topic_id);
@ -1132,8 +1060,8 @@ CREATE INDEX phpbb_topics_watch_notify_stat ON phpbb_topics_watch (notify_status
CREATE TABLE phpbb_user_group ( CREATE TABLE phpbb_user_group (
group_id INT4 DEFAULT '0' NOT NULL CHECK (group_id >= 0), group_id INT4 DEFAULT '0' NOT NULL CHECK (group_id >= 0),
user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0), user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0),
group_leader INT2 DEFAULT '0' NOT NULL CHECK (group_leader >= 0), group_leader boolean DEFAULT '0' NOT NULL CHECK (group_leader >= 0),
user_pending INT2 DEFAULT '1' NOT NULL CHECK (user_pending >= 0) user_pending boolean DEFAULT '1' NOT NULL CHECK (user_pending >= 0)
); );
CREATE INDEX phpbb_user_group_group_id ON phpbb_user_group (group_id); CREATE INDEX phpbb_user_group_group_id ON phpbb_user_group (group_id);
@ -1153,11 +1081,11 @@ CREATE TABLE phpbb_users (
user_perm_from INT4 DEFAULT '0' NOT NULL CHECK (user_perm_from >= 0), user_perm_from INT4 DEFAULT '0' NOT NULL CHECK (user_perm_from >= 0),
user_ip varchar(40) DEFAULT '' NOT NULL, user_ip varchar(40) DEFAULT '' NOT NULL,
user_regdate INT4 DEFAULT '0' NOT NULL CHECK (user_regdate >= 0), user_regdate INT4 DEFAULT '0' NOT NULL CHECK (user_regdate >= 0),
username varchar_ci DEFAULT '' NOT NULL, username varchar(255) DEFAULT '' NOT NULL,
username_clean varchar_ci DEFAULT '' NOT NULL, username_clean varchar(255) DEFAULT '' NOT NULL,
user_password varchar(40) DEFAULT '' NOT NULL, user_password varchar(40) DEFAULT '' NOT NULL,
user_passchg INT4 DEFAULT '0' NOT NULL CHECK (user_passchg >= 0), user_passchg INT4 DEFAULT '0' NOT NULL CHECK (user_passchg >= 0),
user_pass_convert INT2 DEFAULT '0' NOT NULL CHECK (user_pass_convert >= 0), user_pass_convert boolean DEFAULT '0' NOT NULL CHECK (user_pass_convert >= 0),
user_email varchar(100) DEFAULT '' NOT NULL, user_email varchar(100) DEFAULT '' NOT NULL,
user_email_hash INT8 DEFAULT '0' NOT NULL, user_email_hash INT8 DEFAULT '0' NOT NULL,
user_birthday varchar(10) DEFAULT '' NOT NULL, user_birthday varchar(10) DEFAULT '' NOT NULL,
@ -1175,7 +1103,7 @@ CREATE TABLE phpbb_users (
user_posts INT4 DEFAULT '0' NOT NULL CHECK (user_posts >= 0), user_posts INT4 DEFAULT '0' NOT NULL CHECK (user_posts >= 0),
user_lang varchar(30) DEFAULT '' NOT NULL, user_lang varchar(30) DEFAULT '' NOT NULL,
user_timezone decimal(5,2) DEFAULT '0' NOT NULL, user_timezone decimal(5,2) DEFAULT '0' NOT NULL,
user_dst INT2 DEFAULT '0' NOT NULL CHECK (user_dst >= 0), user_dst boolean DEFAULT '0' NOT NULL CHECK (user_dst >= 0),
user_dateformat varchar(30) DEFAULT 'd M Y H:i' NOT NULL, user_dateformat varchar(30) DEFAULT 'd M Y H:i' NOT NULL,
user_style INT2 DEFAULT '0' NOT NULL CHECK (user_style >= 0), user_style INT2 DEFAULT '0' NOT NULL CHECK (user_style >= 0),
user_rank INT4 DEFAULT '0' NOT NULL CHECK (user_rank >= 0), user_rank INT4 DEFAULT '0' NOT NULL CHECK (user_rank >= 0),
@ -1183,7 +1111,7 @@ CREATE TABLE phpbb_users (
user_new_privmsg INT4 DEFAULT '0' NOT NULL, user_new_privmsg INT4 DEFAULT '0' NOT NULL,
user_unread_privmsg INT4 DEFAULT '0' NOT NULL, user_unread_privmsg INT4 DEFAULT '0' NOT NULL,
user_last_privmsg INT4 DEFAULT '0' NOT NULL CHECK (user_last_privmsg >= 0), user_last_privmsg INT4 DEFAULT '0' NOT NULL CHECK (user_last_privmsg >= 0),
user_message_rules INT2 DEFAULT '0' NOT NULL CHECK (user_message_rules >= 0), user_message_rules boolean DEFAULT '0' NOT NULL CHECK (user_message_rules >= 0),
user_full_folder INT4 DEFAULT '-3' NOT NULL, user_full_folder INT4 DEFAULT '-3' NOT NULL,
user_emailtime INT4 DEFAULT '0' NOT NULL CHECK (user_emailtime >= 0), user_emailtime INT4 DEFAULT '0' NOT NULL CHECK (user_emailtime >= 0),
user_topic_show_days INT2 DEFAULT '0' NOT NULL CHECK (user_topic_show_days >= 0), user_topic_show_days INT2 DEFAULT '0' NOT NULL CHECK (user_topic_show_days >= 0),
@ -1192,13 +1120,13 @@ CREATE TABLE phpbb_users (
user_post_show_days INT2 DEFAULT '0' NOT NULL CHECK (user_post_show_days >= 0), user_post_show_days INT2 DEFAULT '0' NOT NULL CHECK (user_post_show_days >= 0),
user_post_sortby_type varchar(1) DEFAULT 't' NOT NULL, user_post_sortby_type varchar(1) DEFAULT 't' NOT NULL,
user_post_sortby_dir varchar(1) DEFAULT 'a' NOT NULL, user_post_sortby_dir varchar(1) DEFAULT 'a' NOT NULL,
user_notify INT2 DEFAULT '0' NOT NULL CHECK (user_notify >= 0), user_notify boolean DEFAULT '0' NOT NULL CHECK (user_notify >= 0),
user_notify_pm INT2 DEFAULT '1' NOT NULL CHECK (user_notify_pm >= 0), user_notify_pm boolean DEFAULT '1' NOT NULL CHECK (user_notify_pm >= 0),
user_notify_type INT2 DEFAULT '0' NOT NULL, user_notify_type INT2 DEFAULT '0' NOT NULL,
user_allow_pm INT2 DEFAULT '1' NOT NULL CHECK (user_allow_pm >= 0), user_allow_pm boolean DEFAULT '1' NOT NULL CHECK (user_allow_pm >= 0),
user_allow_viewonline INT2 DEFAULT '1' NOT NULL CHECK (user_allow_viewonline >= 0), user_allow_viewonline boolean DEFAULT '1' NOT NULL CHECK (user_allow_viewonline >= 0),
user_allow_viewemail INT2 DEFAULT '1' NOT NULL CHECK (user_allow_viewemail >= 0), user_allow_viewemail boolean DEFAULT '1' NOT NULL CHECK (user_allow_viewemail >= 0),
user_allow_massemail INT2 DEFAULT '1' NOT NULL CHECK (user_allow_massemail >= 0), user_allow_massemail boolean DEFAULT '1' NOT NULL CHECK (user_allow_massemail >= 0),
user_options INT4 DEFAULT '895' NOT NULL CHECK (user_options >= 0), user_options INT4 DEFAULT '895' NOT NULL CHECK (user_options >= 0),
user_avatar varchar(255) DEFAULT '' NOT NULL, user_avatar varchar(255) DEFAULT '' NOT NULL,
user_avatar_type INT2 DEFAULT '0' NOT NULL, user_avatar_type INT2 DEFAULT '0' NOT NULL,
@ -1261,11 +1189,12 @@ CREATE TABLE phpbb_words (
CREATE TABLE phpbb_zebra ( CREATE TABLE phpbb_zebra (
user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0), user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0),
zebra_id INT4 DEFAULT '0' NOT NULL CHECK (zebra_id >= 0), zebra_id INT4 DEFAULT '0' NOT NULL CHECK (zebra_id >= 0),
friend INT2 DEFAULT '0' NOT NULL CHECK (friend >= 0), friend boolean DEFAULT '0' NOT NULL CHECK (friend >= 0),
foe INT2 DEFAULT '0' NOT NULL CHECK (foe >= 0), foe boolean DEFAULT '0' NOT NULL CHECK (foe >= 0),
PRIMARY KEY (user_id, zebra_id) PRIMARY KEY (user_id, zebra_id)
); );
CREATE INDEX phpbb_zebra_zebra_user ON phpbb_zebra (zebra_id, user_id);
COMMIT; COMMIT;

View file

@ -483,12 +483,12 @@ INSERT INTO phpbb_users (user_type, group_id, username, username_clean, user_reg
INSERT INTO phpbb_users (user_type, group_id, username, username_clean, user_regdate, user_password, user_email, user_lang, user_style, user_rank, user_colour, user_posts, user_permissions, user_ip, user_birthday, user_lastpage, user_last_confirm_key, user_post_sortby_type, user_post_sortby_dir, user_topic_sortby_type, user_topic_sortby_dir, user_avatar, user_sig, user_sig_bbcode_uid, user_from, user_icq, user_aim, user_yim, user_msnm, user_jabber, user_website, user_occ, user_interests, user_actkey, user_newpasswd) VALUES (3, 5, 'Admin', 'admin', 0, '21232f297a57a5a743894a0e4a801fc3', 'admin@yourdomain.com', 'en', 1, 1, 'AA0000', 1, '', '', '', '', '', 't', 'a', 't', 'd', '', '', '', '', '', '', '', '', '', '', '', '', '', ''); INSERT INTO phpbb_users (user_type, group_id, username, username_clean, user_regdate, user_password, user_email, user_lang, user_style, user_rank, user_colour, user_posts, user_permissions, user_ip, user_birthday, user_lastpage, user_last_confirm_key, user_post_sortby_type, user_post_sortby_dir, user_topic_sortby_type, user_topic_sortby_dir, user_avatar, user_sig, user_sig_bbcode_uid, user_from, user_icq, user_aim, user_yim, user_msnm, user_jabber, user_website, user_occ, user_interests, user_actkey, user_newpasswd) VALUES (3, 5, 'Admin', 'admin', 0, '21232f297a57a5a743894a0e4a801fc3', 'admin@yourdomain.com', 'en', 1, 1, 'AA0000', 1, '', '', '', '', '', 't', 'a', 't', 'd', '', '', '', '', '', '', '', '', '', '', '', '', '', '');
# -- Groups # -- Groups
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('GUESTS', 3, 0, '', 0, '', '', ''); INSERT INTO phpbb_groups (group_name, group_name_clean, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('GUESTS', 'guests', 3, 0, '', 0, '', '', '');
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('REGISTERED', 3, 0, '', 0, '', '', ''); INSERT INTO phpbb_groups (group_name, group_name_clean, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('REGISTERED', 'registered', 3, 0, '', 0, '', '', '');
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('REGISTERED_COPPA', 3, 0, '', 0, '', '', ''); INSERT INTO phpbb_groups (group_name, group_name_clean, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('REGISTERED_COPPA', 'registered_coppa', 3, 0, '', 0, '', '', '');
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('GLOBAL_MODERATORS', 3, 0, '00AA00', 1, '', '', ''); INSERT INTO phpbb_groups (group_name, group_name_clean, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('GLOBAL_MODERATORS', 'global_moderators' 3, 0, '00AA00', 1, '', '', '');
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('ADMINISTRATORS', 3, 1, 'AA0000', 1, '', '', ''); INSERT INTO phpbb_groups (group_name, group_name_clean, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('ADMINISTRATORS', 'administrators', 3, 1, 'AA0000', 1, '', '', '');
INSERT INTO phpbb_groups (group_name, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('BOTS', 3, 0, '9E8DA7', 0, '', '', ''); INSERT INTO phpbb_groups (group_name, group_name_clean, group_type, group_founder_manage, group_colour, group_legend, group_avatar, group_desc, group_desc_uid) VALUES ('BOTS', 'bots', 3, 0, '9E8DA7', 0, '', '', '');
# -- User -> Group # -- User -> Group
INSERT INTO phpbb_user_group (group_id, user_id, user_pending, group_leader) VALUES (1, 1, 0, 0); INSERT INTO phpbb_user_group (group_id, user_id, user_pending, group_leader) VALUES (1, 1, 0, 0);

View file

@ -152,6 +152,7 @@ CREATE TABLE phpbb_config (
); );
CREATE INDEX phpbb_config_is_dynamic ON phpbb_config (is_dynamic); CREATE INDEX phpbb_config_is_dynamic ON phpbb_config (is_dynamic);
CREATE INDEX phpbb_config_config_name ON phpbb_config (config_name);
# Table: 'phpbb_confirm' # Table: 'phpbb_confirm'
CREATE TABLE phpbb_confirm ( CREATE TABLE phpbb_confirm (
@ -289,6 +290,7 @@ CREATE TABLE phpbb_groups (
group_type tinyint(4) NOT NULL DEFAULT '1', group_type tinyint(4) NOT NULL DEFAULT '1',
group_founder_manage INTEGER UNSIGNED NOT NULL DEFAULT '0', group_founder_manage INTEGER UNSIGNED NOT NULL DEFAULT '0',
group_name varchar(255) NOT NULL DEFAULT '', group_name varchar(255) NOT NULL DEFAULT '',
group_name_clean varchar(255) NOT NULL DEFAULT '',
group_desc text(65535) NOT NULL DEFAULT '', group_desc text(65535) NOT NULL DEFAULT '',
group_desc_bitfield varchar(255) NOT NULL DEFAULT '', group_desc_bitfield varchar(255) NOT NULL DEFAULT '',
group_desc_options INTEGER UNSIGNED NOT NULL DEFAULT '7', group_desc_options INTEGER UNSIGNED NOT NULL DEFAULT '7',
@ -960,6 +962,7 @@ CREATE TABLE phpbb_zebra (
PRIMARY KEY (user_id, zebra_id) PRIMARY KEY (user_id, zebra_id)
); );
CREATE INDEX phpbb_zebra_zebra_user ON phpbb_zebra (zebra_id, user_id);
COMMIT; COMMIT;

View file

@ -494,7 +494,7 @@ if (sizeof($shadow_topic_list))
$row = array_merge($row, array( $row = array_merge($row, array(
'topic_moved_id' => $rowset[$orig_topic_id]['topic_moved_id'], 'topic_moved_id' => $rowset[$orig_topic_id]['topic_moved_id'],
'topic_status' => $rowset[$orig_topic_id]['topic_status'], 'topic_status' => $rowset[$orig_topic_id]['topic_status'],
'topic_type' => $rowset[$orig_topic_id]['topic_type']) 'topic_type' => $rowset[$orig_topic_id]['topic_type'],
)); ));
$rowset[$orig_topic_id] = $row; $rowset[$orig_topic_id] = $row;