remove key names which are not supported during key creation in postgres

This commit is contained in:
Matthew Bucci
2024-10-17 01:31:06 -07:00
parent b463ead79f
commit 07b49dbb65
2 changed files with 7 additions and 1 deletions

View File

@@ -82,10 +82,16 @@ class CreateTableSQLRewriter extends AbstractSQLRewriter
$sql = preg_replace($pattern, '', $sql); $sql = preg_replace($pattern, '', $sql);
// Rewrite unique keys to just be UNIQUE without a key name
$pattern = "/(,\s*)?UNIQUE KEY\s+[a-zA-Z0-9_]+\s+(\([a-zA-Z0-9_,\s]+\))/"; $pattern = "/(,\s*)?UNIQUE KEY\s+[a-zA-Z0-9_]+\s+(\([a-zA-Z0-9_,\s]+\))/";
$replacement = "$1UNIQUE $2"; $replacement = "$1UNIQUE $2";
$sql = preg_replace($pattern, $replacement, $sql); $sql = preg_replace($pattern, $replacement, $sql);
// Rewrite Primary keys to not have a key name
$pattern = '/PRIMARY KEY\s+\w+\s*\((.*?)\)/';
$replacement = 'PRIMARY KEY ($1)';
$sql = preg_replace($pattern, $replacement, $sql);
return $sql; return $sql;
} }

View File

@@ -702,7 +702,7 @@ final class rewriteTest extends TestCase
mysqlcolumn_detail text NOT NULL DEFAULT '', mysqlcolumn_detail text NOT NULL DEFAULT '',
type varchar(210) NOT NULL DEFAULT 'post', type varchar(210) NOT NULL DEFAULT 'post',
item bigint NOT NULL DEFAULT '0', item bigint NOT NULL DEFAULT '0',
PRIMARY KEY doctermitem (doc, term, item) PRIMARY KEY (doc, term, item)
); );
SQL; SQL;