Merge remote-tracking branch 'naderman/ticket/10247' into prep-release-3.0.9

* naderman/ticket/10247:
  [ticket/10247] Removing attempt_id column from the 3.0.8 to 3.0.9-RC1 updater.
  [ticket/10247] Add a db_tools test for the removal of a primary key column.
  [ticket/10247] Add empty data section to database update for RC4
  [ticket/10247] Remove unecessary attempt_id primary key column
This commit is contained in:
Andreas Fischer 2011-07-05 00:27:04 +02:00
commit f5d86d0604
10 changed files with 26 additions and 56 deletions

View file

@ -1223,7 +1223,6 @@ function get_schema_struct()
$schema_data['phpbb_login_attempts'] = array( $schema_data['phpbb_login_attempts'] = array(
'COLUMNS' => array( 'COLUMNS' => array(
'attempt_id' => array('UINT', NULL, 'auto_increment'),
'attempt_ip' => array('VCHAR:40', ''), 'attempt_ip' => array('VCHAR:40', ''),
'attempt_browser' => array('VCHAR:150', ''), 'attempt_browser' => array('VCHAR:150', ''),
'attempt_forwarded_for' => array('VCHAR:255', ''), 'attempt_forwarded_for' => array('VCHAR:255', ''),
@ -1232,7 +1231,6 @@ function get_schema_struct()
'username' => array('VCHAR_UNI:255', 0), 'username' => array('VCHAR_UNI:255', 0),
'username_clean' => array('VCHAR_CI', 0), 'username_clean' => array('VCHAR_CI', 0),
), ),
'PRIMARY_KEY' => 'attempt_id',
'KEYS' => array( 'KEYS' => array(
'att_ip' => array('INDEX', array('attempt_ip', 'attempt_time')), 'att_ip' => array('INDEX', array('attempt_ip', 'attempt_time')),
'att_for' => array('INDEX', array('attempt_forwarded_for', 'attempt_time')), 'att_for' => array('INDEX', array('attempt_forwarded_for', 'attempt_time')),

View file

@ -8,7 +8,7 @@
* *
*/ */
define('UPDATES_TO_VERSION', '3.0.9-RC3'); define('UPDATES_TO_VERSION', '3.0.9-RC4');
// Enter any version to update from to test updates. The version within the db will not be updated. // Enter any version to update from to test updates. The version within the db will not be updated.
define('DEBUG_FROM_VERSION', false); define('DEBUG_FROM_VERSION', false);
@ -946,7 +946,12 @@ function database_update_info()
'add_tables' => array( 'add_tables' => array(
LOGIN_ATTEMPT_TABLE => array( LOGIN_ATTEMPT_TABLE => array(
'COLUMNS' => array( 'COLUMNS' => array(
'attempt_id' => array('UINT', NULL, 'auto_increment'), // this column was removed from the database updater
// after 3.0.9-RC3 was released. It might still exist
// in 3.0.9-RCX installations and has to be dropped in
// 3.0.10 after the db_tools class is capable of properly
// removing a primary key.
// 'attempt_id' => array('UINT', NULL, 'auto_increment'),
'attempt_ip' => array('VCHAR:40', ''), 'attempt_ip' => array('VCHAR:40', ''),
'attempt_browser' => array('VCHAR:150', ''), 'attempt_browser' => array('VCHAR:150', ''),
'attempt_forwarded_for' => array('VCHAR:255', ''), 'attempt_forwarded_for' => array('VCHAR:255', ''),
@ -974,6 +979,10 @@ function database_update_info()
'3.0.9-RC1' => array(), '3.0.9-RC1' => array(),
// No changes from 3.0.9-RC2 to 3.0.9-RC3 // No changes from 3.0.9-RC2 to 3.0.9-RC3
'3.0.9-RC2' => array(), '3.0.9-RC2' => array(),
// No changes from 3.0.9-RC3 to 3.0.9-RC4
'3.0.9-RC3' => array(),
/** @todo DROP LOGIN_ATTEMPT_TABLE.attempt_id in 3.0.10-RC1 */
); );
} }
@ -1973,6 +1982,10 @@ function change_database_data(&$no_updates, $version)
// No changes from 3.0.9-RC2 to 3.0.9-RC3 // No changes from 3.0.9-RC2 to 3.0.9-RC3
case '3.0.9-RC2': case '3.0.9-RC2':
break; break;
// No changes from 3.0.9-RC3 to 3.0.9-RC4
case '3.0.9-RC3':
break;
} }
} }

View file

@ -547,7 +547,6 @@ END;;
# Table: 'phpbb_login_attempts' # Table: 'phpbb_login_attempts'
CREATE TABLE phpbb_login_attempts ( CREATE TABLE phpbb_login_attempts (
attempt_id INTEGER NOT NULL,
attempt_ip VARCHAR(40) CHARACTER SET NONE DEFAULT '' NOT NULL, attempt_ip VARCHAR(40) CHARACTER SET NONE DEFAULT '' NOT NULL,
attempt_browser VARCHAR(150) CHARACTER SET NONE DEFAULT '' NOT NULL, attempt_browser VARCHAR(150) CHARACTER SET NONE DEFAULT '' NOT NULL,
attempt_forwarded_for VARCHAR(255) CHARACTER SET NONE DEFAULT '' NOT NULL, attempt_forwarded_for VARCHAR(255) CHARACTER SET NONE DEFAULT '' NOT NULL,
@ -557,24 +556,11 @@ CREATE TABLE phpbb_login_attempts (
username_clean VARCHAR(255) CHARACTER SET UTF8 DEFAULT 0 NOT NULL COLLATE UNICODE username_clean VARCHAR(255) CHARACTER SET UTF8 DEFAULT 0 NOT NULL COLLATE UNICODE
);; );;
ALTER TABLE phpbb_login_attempts ADD PRIMARY KEY (attempt_id);;
CREATE INDEX phpbb_login_attempts_att_ip ON phpbb_login_attempts(attempt_ip, attempt_time);; CREATE INDEX phpbb_login_attempts_att_ip ON phpbb_login_attempts(attempt_ip, attempt_time);;
CREATE INDEX phpbb_login_attempts_att_for ON phpbb_login_attempts(attempt_forwarded_for, attempt_time);; CREATE INDEX phpbb_login_attempts_att_for ON phpbb_login_attempts(attempt_forwarded_for, attempt_time);;
CREATE INDEX phpbb_login_attempts_att_time ON phpbb_login_attempts(attempt_time);; CREATE INDEX phpbb_login_attempts_att_time ON phpbb_login_attempts(attempt_time);;
CREATE INDEX phpbb_login_attempts_user_id ON phpbb_login_attempts(user_id);; CREATE INDEX phpbb_login_attempts_user_id ON phpbb_login_attempts(user_id);;
CREATE GENERATOR phpbb_login_attempts_gen;;
SET GENERATOR phpbb_login_attempts_gen TO 0;;
CREATE TRIGGER t_phpbb_login_attempts FOR phpbb_login_attempts
BEFORE INSERT
AS
BEGIN
NEW.attempt_id = GEN_ID(phpbb_login_attempts_gen, 1);
END;;
# Table: 'phpbb_moderator_cache' # Table: 'phpbb_moderator_cache'
CREATE TABLE phpbb_moderator_cache ( CREATE TABLE phpbb_moderator_cache (
forum_id INTEGER DEFAULT 0 NOT NULL, forum_id INTEGER DEFAULT 0 NOT NULL,

View file

@ -653,7 +653,6 @@ GO
Table: 'phpbb_login_attempts' Table: 'phpbb_login_attempts'
*/ */
CREATE TABLE [phpbb_login_attempts] ( CREATE TABLE [phpbb_login_attempts] (
[attempt_id] [int] IDENTITY (1, 1) NOT NULL ,
[attempt_ip] [varchar] (40) DEFAULT ('') NOT NULL , [attempt_ip] [varchar] (40) DEFAULT ('') NOT NULL ,
[attempt_browser] [varchar] (150) DEFAULT ('') NOT NULL , [attempt_browser] [varchar] (150) DEFAULT ('') NOT NULL ,
[attempt_forwarded_for] [varchar] (255) DEFAULT ('') NOT NULL , [attempt_forwarded_for] [varchar] (255) DEFAULT ('') NOT NULL ,
@ -664,13 +663,6 @@ CREATE TABLE [phpbb_login_attempts] (
) ON [PRIMARY] ) ON [PRIMARY]
GO GO
ALTER TABLE [phpbb_login_attempts] WITH NOCHECK ADD
CONSTRAINT [PK_phpbb_login_attempts] PRIMARY KEY CLUSTERED
(
[attempt_id]
) ON [PRIMARY]
GO
CREATE INDEX [att_ip] ON [phpbb_login_attempts]([attempt_ip], [attempt_time]) ON [PRIMARY] CREATE INDEX [att_ip] ON [phpbb_login_attempts]([attempt_ip], [attempt_time]) ON [PRIMARY]
GO GO

View file

@ -371,7 +371,6 @@ CREATE TABLE phpbb_log (
# Table: 'phpbb_login_attempts' # Table: 'phpbb_login_attempts'
CREATE TABLE phpbb_login_attempts ( CREATE TABLE phpbb_login_attempts (
attempt_id mediumint(8) UNSIGNED NOT NULL auto_increment,
attempt_ip varbinary(40) DEFAULT '' NOT NULL, attempt_ip varbinary(40) DEFAULT '' NOT NULL,
attempt_browser varbinary(150) DEFAULT '' NOT NULL, attempt_browser varbinary(150) DEFAULT '' NOT NULL,
attempt_forwarded_for varbinary(255) DEFAULT '' NOT NULL, attempt_forwarded_for varbinary(255) DEFAULT '' NOT NULL,
@ -379,7 +378,6 @@ CREATE TABLE phpbb_login_attempts (
user_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL, user_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
username blob NOT NULL, username blob NOT NULL,
username_clean blob NOT NULL, username_clean blob NOT NULL,
PRIMARY KEY (attempt_id),
KEY att_ip (attempt_ip, attempt_time), KEY att_ip (attempt_ip, attempt_time),
KEY att_for (attempt_forwarded_for, attempt_time), KEY att_for (attempt_forwarded_for, attempt_time),
KEY att_time (attempt_time), KEY att_time (attempt_time),

View file

@ -371,7 +371,6 @@ CREATE TABLE phpbb_log (
# Table: 'phpbb_login_attempts' # Table: 'phpbb_login_attempts'
CREATE TABLE phpbb_login_attempts ( CREATE TABLE phpbb_login_attempts (
attempt_id mediumint(8) UNSIGNED NOT NULL auto_increment,
attempt_ip varchar(40) DEFAULT '' NOT NULL, attempt_ip varchar(40) DEFAULT '' NOT NULL,
attempt_browser varchar(150) DEFAULT '' NOT NULL, attempt_browser varchar(150) DEFAULT '' NOT NULL,
attempt_forwarded_for varchar(255) DEFAULT '' NOT NULL, attempt_forwarded_for varchar(255) DEFAULT '' NOT NULL,
@ -379,7 +378,6 @@ CREATE TABLE phpbb_login_attempts (
user_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL, user_id mediumint(8) UNSIGNED DEFAULT '0' NOT NULL,
username varchar(255) DEFAULT '0' NOT NULL, username varchar(255) DEFAULT '0' NOT NULL,
username_clean varchar(255) DEFAULT '0' NOT NULL, username_clean varchar(255) DEFAULT '0' NOT NULL,
PRIMARY KEY (attempt_id),
KEY att_ip (attempt_ip, attempt_time), KEY att_ip (attempt_ip, attempt_time),
KEY att_for (attempt_forwarded_for, attempt_time), KEY att_for (attempt_forwarded_for, attempt_time),
KEY att_time (attempt_time), KEY att_time (attempt_time),

View file

@ -744,15 +744,13 @@ END;
Table: 'phpbb_login_attempts' Table: 'phpbb_login_attempts'
*/ */
CREATE TABLE phpbb_login_attempts ( CREATE TABLE phpbb_login_attempts (
attempt_id number(8) NOT NULL,
attempt_ip varchar2(40) DEFAULT '' , attempt_ip varchar2(40) DEFAULT '' ,
attempt_browser varchar2(150) DEFAULT '' , attempt_browser varchar2(150) DEFAULT '' ,
attempt_forwarded_for varchar2(255) DEFAULT '' , attempt_forwarded_for varchar2(255) DEFAULT '' ,
attempt_time number(11) DEFAULT '0' NOT NULL, attempt_time number(11) DEFAULT '0' NOT NULL,
user_id number(8) DEFAULT '0' NOT NULL, user_id number(8) DEFAULT '0' NOT NULL,
username varchar2(765) DEFAULT '0' NOT NULL, username varchar2(765) DEFAULT '0' NOT NULL,
username_clean varchar2(255) DEFAULT '0' NOT NULL, username_clean varchar2(255) DEFAULT '0' NOT NULL
CONSTRAINT pk_phpbb_login_attempts PRIMARY KEY (attempt_id)
) )
/ /
@ -765,22 +763,6 @@ CREATE INDEX phpbb_login_attempts_att_time ON phpbb_login_attempts (attempt_time
CREATE INDEX phpbb_login_attempts_user_id ON phpbb_login_attempts (user_id) CREATE INDEX phpbb_login_attempts_user_id ON phpbb_login_attempts (user_id)
/ /
CREATE SEQUENCE phpbb_login_attempts_seq
/
CREATE OR REPLACE TRIGGER t_phpbb_login_attempts
BEFORE INSERT ON phpbb_login_attempts
FOR EACH ROW WHEN (
new.attempt_id IS NULL OR new.attempt_id = 0
)
BEGIN
SELECT phpbb_login_attempts_seq.nextval
INTO :new.attempt_id
FROM dual;
END;
/
/* /*
Table: 'phpbb_moderator_cache' Table: 'phpbb_moderator_cache'
*/ */

View file

@ -527,18 +527,14 @@ CREATE INDEX phpbb_log_user_id ON phpbb_log (user_id);
/* /*
Table: 'phpbb_login_attempts' Table: 'phpbb_login_attempts'
*/ */
CREATE SEQUENCE phpbb_login_attempts_seq;
CREATE TABLE phpbb_login_attempts ( CREATE TABLE phpbb_login_attempts (
attempt_id INT4 DEFAULT nextval('phpbb_login_attempts_seq'),
attempt_ip varchar(40) DEFAULT '' NOT NULL, attempt_ip varchar(40) DEFAULT '' NOT NULL,
attempt_browser varchar(150) DEFAULT '' NOT NULL, attempt_browser varchar(150) DEFAULT '' NOT NULL,
attempt_forwarded_for varchar(255) DEFAULT '' NOT NULL, attempt_forwarded_for varchar(255) DEFAULT '' NOT NULL,
attempt_time INT4 DEFAULT '0' NOT NULL CHECK (attempt_time >= 0), attempt_time INT4 DEFAULT '0' NOT NULL CHECK (attempt_time >= 0),
user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0), user_id INT4 DEFAULT '0' NOT NULL CHECK (user_id >= 0),
username varchar(255) DEFAULT '0' NOT NULL, username varchar(255) DEFAULT '0' NOT NULL,
username_clean varchar_ci DEFAULT '0' NOT NULL, username_clean varchar_ci DEFAULT '0' NOT NULL
PRIMARY KEY (attempt_id)
); );
CREATE INDEX phpbb_login_attempts_att_ip ON phpbb_login_attempts (attempt_ip, attempt_time); CREATE INDEX phpbb_login_attempts_att_ip ON phpbb_login_attempts (attempt_ip, attempt_time);

View file

@ -359,7 +359,6 @@ CREATE INDEX phpbb_log_user_id ON phpbb_log (user_id);
# Table: 'phpbb_login_attempts' # Table: 'phpbb_login_attempts'
CREATE TABLE phpbb_login_attempts ( CREATE TABLE phpbb_login_attempts (
attempt_id INTEGER PRIMARY KEY NOT NULL ,
attempt_ip varchar(40) NOT NULL DEFAULT '', attempt_ip varchar(40) NOT NULL DEFAULT '',
attempt_browser varchar(150) NOT NULL DEFAULT '', attempt_browser varchar(150) NOT NULL DEFAULT '',
attempt_forwarded_for varchar(255) NOT NULL DEFAULT '', attempt_forwarded_for varchar(255) NOT NULL DEFAULT '',

View file

@ -241,6 +241,15 @@ class phpbb_dbal_db_tools_test extends phpbb_database_test_case
} }
public function test_column_remove() public function test_column_remove()
{
$this->assertTrue($this->tools->sql_column_exists('prefix_table_name', 'c_int_size'));
$this->assertTrue($this->tools->sql_column_remove('prefix_table_name', 'c_int_size'));
$this->assertFalse($this->tools->sql_column_exists('prefix_table_name', 'c_int_size'));
}
public function test_column_remove_primary()
{ {
$this->assertTrue($this->tools->sql_column_exists('prefix_table_name', 'c_id')); $this->assertTrue($this->tools->sql_column_exists('prefix_table_name', 'c_id'));
@ -264,5 +273,4 @@ class phpbb_dbal_db_tools_test extends phpbb_database_test_case
$this->tools->sql_table_drop('prefix_test_table'); $this->tools->sql_table_drop('prefix_test_table');
} }
} }