diff --git a/pg4wp/rewriters/CreateTableSQLRewriter.php b/pg4wp/rewriters/CreateTableSQLRewriter.php index bc88bdd..e7aba47 100644 --- a/pg4wp/rewriters/CreateTableSQLRewriter.php +++ b/pg4wp/rewriters/CreateTableSQLRewriter.php @@ -92,7 +92,7 @@ class CreateTableSQLRewriter extends AbstractSQLRewriter } // Support for UNIQUE INDEX creation - $pattern = '/,\s*(UNIQUE |)KEY\s+(`[^`]+`|\w+)\s+\((.*?)\)(?!\))/'; + $pattern = '/,\s*(UNIQUE |)KEY\s+(`[^`]+`|\w+)\s+\(((?:[^()]|\([^)]*\))*)\)/'; if(preg_match_all($pattern, $sql, $matches, PREG_SET_ORDER)) { foreach($matches as $match) { $unique = $match[1]; diff --git a/tests/rewriteTest.php b/tests/rewriteTest.php index 3ccc2e3..985f7d4 100644 --- a/tests/rewriteTest.php +++ b/tests/rewriteTest.php @@ -333,6 +333,54 @@ final class rewriteTest extends TestCase $postgresql = pg4wp_rewrite($sql); $this->assertSame(trim($expected), trim($postgresql)); } + + + + public function test_it_can_create_double_keys_with_length() + { + $sql = <<assertSame(trim($expected), trim($postgresql)); + }