From: Max Semenik Date: Wed, 23 Jun 2010 18:59:46 +0000 (+0000) Subject: Converting MySQL's ENUM to SQLite BLOB doesn't make sense, changed it to TEXT. Also... X-Git-Tag: 1.31.0-rc.0~36408 X-Git-Url: http://git.cyclocoop.org/%7B%24admin_url%7Dcompta/comptes/journal.php?a=commitdiff_plain;h=ab4cad44d57a333aaf6c368d073aeccecd2f50b1;p=lhc%2Fweb%2Fwiklou.git Converting MySQL's ENUM to SQLite BLOB doesn't make sense, changed it to TEXT. Also fixed a bug in conversion regex --- diff --git a/includes/db/DatabaseSqlite.php b/includes/db/DatabaseSqlite.php index cfd2a37534..7e399fbe61 100644 --- a/includes/db/DatabaseSqlite.php +++ b/includes/db/DatabaseSqlite.php @@ -562,7 +562,7 @@ class DatabaseSqlite extends DatabaseBase { // DATETIME -> TEXT $s = preg_replace( '/\b(datetime|timestamp)\b/i', 'TEXT', $s ); // No ENUM type - $s = preg_replace( '/enum\([^)]*\)/i', 'BLOB', $s ); + $s = preg_replace( '/\benum\s*\([^)]*\)/i', 'TEXT', $s ); // binary collation type -> nothing $s = preg_replace( '/\bbinary\b/i', '', $s ); // auto_increment -> autoincrement diff --git a/maintenance/tests/DatabaseSqliteTest.php b/maintenance/tests/DatabaseSqliteTest.php index 69d4cb1d51..9ba008468c 100644 --- a/maintenance/tests/DatabaseSqliteTest.php +++ b/maintenance/tests/DatabaseSqliteTest.php @@ -49,7 +49,11 @@ class DatabaseSqliteTest extends PHPUnit_Framework_TestCase { $this->replaceVars( "CREATE TABLE text ( text_foo tinytext );" ), 'Table name changed' ); - + + $this->assertEquals( "CREATE TABLE enums( enum1 TEXT, myenum TEXT)", + $this->replaceVars( "CREATE TABLE enums( enum1 ENUM('A', 'B'), myenum ENUM ('X', 'Y'))" ) + ); + $this->assertEquals( "ALTER TABLE foo ADD COLUMN foo_bar INTEGER DEFAULT 42", $this->replaceVars( "ALTER TABLE foo\nADD COLUMN foo_bar int(10) unsigned DEFAULT 42" ) );