Index: trunk/phase3/maintenance/sqlite/archives/initial-indexes.sql |
— | — | @@ -3,7 +3,7 @@ |
4 | 4 | -- Unique indexes need to be handled with INSERT SELECT since just running |
5 | 5 | -- the CREATE INDEX statement will fail if there are duplicate values. |
6 | 6 | -- |
| 7 | +-- Ignore duplicates, several tables will have them (e.g. bug 16966) but in |
7 | 8 | -- most cases it's harmless to discard them. |
8 | 9 | |
9 | 10 | -------------------------------------------------------------------------------- |
— | — | @@ -41,7 +41,6 @@ |
42 | 42 | user_newpassword tinyblob NOT NULL, |
43 | 43 | user_newpass_time binary(14), |
44 | 44 | user_email tinytext NOT NULL, |
45 | | - user_options blob NOT NULL, |
46 | 45 | user_touched binary(14) NOT NULL default '', |
47 | 46 | user_token binary(32) NOT NULL default '', |
48 | 47 | user_email_authenticated binary(14), |
— | — | @@ -218,7 +217,7 @@ |
219 | 218 | math_outputhash varbinary(16) NOT NULL, |
220 | 219 | math_html_conservativeness tinyint NOT NULL, |
221 | 220 | math_html text, |
222 | | - math_mathml text |
| 221 | + math_mathml text |
223 | 222 | ); |
224 | 223 | |
225 | 224 | CREATE UNIQUE INDEX /*i*/math_inputhash ON /*_*/math_tmp (math_inputhash); |
Index: trunk/phase3/tests/phpunit/includes/db/DatabaseSqliteTest.php |
— | — | @@ -98,7 +98,7 @@ |
99 | 99 | $this->assertEquals( 'sqlite_master', $db->tableName( 'sqlite_master' ) ); |
100 | 100 | $this->assertEquals( 'foobar', $db->tableName( 'bar' ) ); |
101 | 101 | } |
102 | | - |
| 102 | + |
103 | 103 | public function testDuplicateTableStructure() { |
104 | 104 | $db = new DatabaseSqliteStandalone( ':memory:' ); |
105 | 105 | $db->query( 'CREATE TABLE foo(foo, barfoo)' ); |
— | — | @@ -119,7 +119,7 @@ |
120 | 120 | 'Create a temporary duplicate only' |
121 | 121 | ); |
122 | 122 | } |
123 | | - |
| 123 | + |
124 | 124 | public function testDuplicateTableStructureVirtual() { |
125 | 125 | $db = new DatabaseSqliteStandalone( ':memory:' ); |
126 | 126 | if ( $db->getFulltextSearchModule() != 'FTS3' ) { |
— | — | @@ -196,8 +196,9 @@ |
197 | 197 | // Mismatches for these columns we can safely ignore |
198 | 198 | $ignoredColumns = array( |
199 | 199 | 'user_newtalk.user_last_timestamp', // r84185 |
| 200 | + 'user.user_options', |
200 | 201 | ); |
201 | | - |
| 202 | + |
202 | 203 | $currentDB = new DatabaseSqliteStandalone( ':memory:' ); |
203 | 204 | $currentDB->sourceFile( "$IP/maintenance/tables.sql" ); |
204 | 205 | $currentTables = $this->getTables( $currentDB ); |
— | — | @@ -254,7 +255,7 @@ |
255 | 256 | $maint = new FakeMaintenance(); |
256 | 257 | $maint->loadParamsAndArgs( null, array( 'quiet' => 1 ) ); |
257 | 258 | } |
258 | | - |
| 259 | + |
259 | 260 | $db = new DatabaseSqliteStandalone( ':memory:' ); |
260 | 261 | $db->sourceFile( dirname( __FILE__ ) . "/sqlite/tables-$version.sql" ); |
261 | 262 | $updater = DatabaseUpdater::newForDB( $db, false, $maint ); |
Index: trunk/phase3/includes/installer/SqliteUpdater.php |
— | — | @@ -67,7 +67,6 @@ |
68 | 68 | array( 'addTable', 'globalnamespaces', 'patch-globalnamespaces.sql' ), |
69 | 69 | array( 'addTable', 'globalinterwiki', 'patch-globalinterwiki.sql' ), |
70 | 70 | array( 'doMigrateUserOptions' ), |
71 | | - array( 'dropField', 'user', 'user_options', 'patch-drop-user_options.sql' ), |
72 | 71 | ); |
73 | 72 | } |
74 | 73 | |