convert mediumints to ints

This commit is contained in:
Matthew Bucci
2024-10-17 01:25:16 -07:00
parent d46dba6148
commit b463ead79f
2 changed files with 59 additions and 2 deletions

View File

@ -21,8 +21,8 @@ class CreateTableSQLRewriter extends AbstractSQLRewriter
' CHARACTER SET utf8' => '',
' DEFAULT CHARSET=utf8' => '',
// For flash-album-gallery plugin
' tinyint' => ' smallint'
' tinyint' => ' smallint',
' mediumint' => ' integer'
];
public function rewrite(): string

View File

@ -654,6 +654,63 @@ final class rewriteTest extends TestCase
$this->assertSame(trim($expected), trim($postgresql));
}
public function test_it_rewrites_mediumints()
{
$sql = <<<SQL
CREATE TABLE wp_relevanssi (
doc bigint(20) NOT NULL DEFAULT '0',
term varchar(50) NOT NULL DEFAULT '0',
term_reverse varchar(50) NOT NULL DEFAULT '0',
content mediumint(9) NOT NULL DEFAULT '0',
title mediumint(9) NOT NULL DEFAULT '0',
comment mediumint(9) NOT NULL DEFAULT '0',
tag mediumint(9) NOT NULL DEFAULT '0',
link mediumint(9) NOT NULL DEFAULT '0',
author mediumint(9) NOT NULL DEFAULT '0',
category mediumint(9) NOT NULL DEFAULT '0',
excerpt mediumint(9) NOT NULL DEFAULT '0',
taxonomy mediumint(9) NOT NULL DEFAULT '0',
customfield mediumint(9) NOT NULL DEFAULT '0',
mysqlcolumn MEDIUMINT(9) NOT NULL DEFAULT '0',
taxonomy_detail longtext NOT NULL,
customfield_detail longtext NOT NULL DEFAULT '',
mysqlcolumn_detail longtext NOT NULL DEFAULT '',
type varchar(210) NOT NULL DEFAULT 'post',
item bigint(20) NOT NULL DEFAULT '0',
PRIMARY KEY doctermitem (doc, term, item)
) DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_520_ci
SQL;
$expected = <<<SQL
CREATE TABLE IF NOT EXISTS wp_relevanssi (
doc bigint NOT NULL DEFAULT '0',
term varchar(50) NOT NULL DEFAULT '0',
term_reverse varchar(50) NOT NULL DEFAULT '0',
content integer NOT NULL DEFAULT '0',
title integer NOT NULL DEFAULT '0',
comment integer NOT NULL DEFAULT '0',
tag integer NOT NULL DEFAULT '0',
link integer NOT NULL DEFAULT '0',
author integer NOT NULL DEFAULT '0',
category integer NOT NULL DEFAULT '0',
excerpt integer NOT NULL DEFAULT '0',
taxonomy integer NOT NULL DEFAULT '0',
customfield integer NOT NULL DEFAULT '0',
mysqlcolumn integer NOT NULL DEFAULT '0',
taxonomy_detail text NOT NULL,
customfield_detail text NOT NULL DEFAULT '',
mysqlcolumn_detail text NOT NULL DEFAULT '',
type varchar(210) NOT NULL DEFAULT 'post',
item bigint NOT NULL DEFAULT '0',
PRIMARY KEY doctermitem (doc, term, item)
);
SQL;
$postgresql = pg4wp_rewrite($sql);
$this->assertSame(trim($expected), trim($postgresql));
}