From e35222a56b91a307147d15dfbe06d7efb1768205 Mon Sep 17 00:00:00 2001 From: Nicolai Ehrhardt <245527909+predictor2718@users.noreply.github.com> Date: Mon, 13 Apr 2026 11:37:05 +0200 Subject: [PATCH 1/2] Fix #641 - Add VECTOR data type and VECTOR INDEX support Signed-off-by: Nicolai Ehrhardt <245527909+predictor2718@users.noreply.github.com> --- src/Contexts/ContextMariaDb110700.php | 3 +++ src/Contexts/ContextMariaDb110800.php | 3 +++ src/Contexts/ContextMariaDb120000.php | 3 +++ src/Contexts/ContextMariaDb120100.php | 3 +++ src/Contexts/ContextMySql90000.php | 4 +++- src/Contexts/ContextMySql90100.php | 4 +++- src/Contexts/ContextMySql90200.php | 4 +++- src/Contexts/ContextMySql90300.php | 4 +++- tests/Builder/CreateStatementTest.php | 20 ++++++++++++++++++++ 9 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/Contexts/ContextMariaDb110700.php b/src/Contexts/ContextMariaDb110700.php index 0372389a..aa190f72 100644 --- a/src/Contexts/ContextMariaDb110700.php +++ b/src/Contexts/ContextMariaDb110700.php @@ -535,6 +535,7 @@ class ContextMariaDb110700 extends Context 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, @@ -671,6 +672,8 @@ class ContextMariaDb110700 extends Context 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, diff --git a/src/Contexts/ContextMariaDb110800.php b/src/Contexts/ContextMariaDb110800.php index 614a1505..356a477f 100644 --- a/src/Contexts/ContextMariaDb110800.php +++ b/src/Contexts/ContextMariaDb110800.php @@ -535,6 +535,7 @@ class ContextMariaDb110800 extends Context 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, @@ -671,6 +672,8 @@ class ContextMariaDb110800 extends Context 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, diff --git a/src/Contexts/ContextMariaDb120000.php b/src/Contexts/ContextMariaDb120000.php index d9aca891..bb6cd952 100644 --- a/src/Contexts/ContextMariaDb120000.php +++ b/src/Contexts/ContextMariaDb120000.php @@ -535,6 +535,7 @@ class ContextMariaDb120000 extends Context 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, @@ -671,6 +672,8 @@ class ContextMariaDb120000 extends Context 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, diff --git a/src/Contexts/ContextMariaDb120100.php b/src/Contexts/ContextMariaDb120100.php index 614f73e0..f98d5bd3 100644 --- a/src/Contexts/ContextMariaDb120100.php +++ b/src/Contexts/ContextMariaDb120100.php @@ -535,6 +535,7 @@ class ContextMariaDb120100 extends Context 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHILE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, @@ -671,6 +672,8 @@ class ContextMariaDb120100 extends Context 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, diff --git a/src/Contexts/ContextMySql90000.php b/src/Contexts/ContextMySql90000.php index 7b4ba972..80b664e7 100644 --- a/src/Contexts/ContextMySql90000.php +++ b/src/Contexts/ContextMySql90000.php @@ -519,7 +519,7 @@ class ContextMySql90000 extends Context 'USING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, - 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, @@ -657,6 +657,8 @@ class ContextMySql90000 extends Context 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, diff --git a/src/Contexts/ContextMySql90100.php b/src/Contexts/ContextMySql90100.php index aaea0d5f..7c96878e 100644 --- a/src/Contexts/ContextMySql90100.php +++ b/src/Contexts/ContextMySql90100.php @@ -519,7 +519,7 @@ class ContextMySql90100 extends Context 'USING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, - 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, @@ -657,6 +657,8 @@ class ContextMySql90100 extends Context 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, diff --git a/src/Contexts/ContextMySql90200.php b/src/Contexts/ContextMySql90200.php index 51bd57e2..91dd85bc 100644 --- a/src/Contexts/ContextMySql90200.php +++ b/src/Contexts/ContextMySql90200.php @@ -519,7 +519,7 @@ class ContextMySql90200 extends Context 'USING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, - 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, @@ -657,6 +657,8 @@ class ContextMySql90200 extends Context 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, diff --git a/src/Contexts/ContextMySql90300.php b/src/Contexts/ContextMySql90300.php index e0f90567..a1ddbd04 100644 --- a/src/Contexts/ContextMySql90300.php +++ b/src/Contexts/ContextMySql90300.php @@ -519,7 +519,7 @@ class ContextMySql90300 extends Context 'USING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARCHARACTER' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'VARYING' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, - 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, + 'VECTOR' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_DATA_TYPE, 'VIRTUAL' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHEN' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, 'WHERE' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED, @@ -657,6 +657,8 @@ class ContextMySql90300 extends Context 'PRIMARY KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'SPATIAL KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, + 'VECTOR KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE INDEX' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'UNIQUE KEY' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_RESERVED | Token::FLAG_KEYWORD_COMPOSED | Token::FLAG_KEYWORD_KEY, 'ABS' => Token::FLAG_KEYWORD | Token::FLAG_KEYWORD_FUNCTION, diff --git a/tests/Builder/CreateStatementTest.php b/tests/Builder/CreateStatementTest.php index c76497fd..02c9bbe4 100644 --- a/tests/Builder/CreateStatementTest.php +++ b/tests/Builder/CreateStatementTest.php @@ -10,6 +10,7 @@ use PhpMyAdmin\SqlParser\Components\Key; use PhpMyAdmin\SqlParser\Components\OptionsArray; use PhpMyAdmin\SqlParser\Components\ParameterDefinition; +use PhpMyAdmin\SqlParser\Context; use PhpMyAdmin\SqlParser\Parser; use PhpMyAdmin\SqlParser\Statements\CreateStatement; use PhpMyAdmin\SqlParser\Tests\TestCase; @@ -871,4 +872,23 @@ public function testBuildCreateTableComplexIndexes(): void $stmt->build() ); } + + public function testBuildCreateTableWithVectorType(): void + { + Context::load('MySql90000'); + + $sql = "CREATE TABLE `t1` (\n" + . " `id` int AUTO_INCREMENT PRIMARY KEY,\n" + . " `v` vector(5) NOT NULL,\n" + . " VECTOR INDEX (`v`)\n" + . ')'; + + $parser = new Parser($sql); + $this->assertEmpty($parser->errors); + $rebuilt = $parser->statements[0]->build(); + $this->assertStringContainsString('`v` vector(5) NOT NULL', $rebuilt); + $this->assertStringContainsString('VECTOR INDEX (`v`)', $rebuilt); + + Context::load(); + } } From 221efc3fef28288b5b1b1de57c50177af4fc4ab8 Mon Sep 17 00:00:00 2001 From: Nicolai Ehrhardt <245527909+predictor2718@users.noreply.github.com> Date: Mon, 13 Apr 2026 12:41:21 +0200 Subject: [PATCH 2/2] Update PHPStan baseline for test assertions Signed-off-by: Nicolai Ehrhardt <245527909+predictor2718@users.noreply.github.com> --- phpstan-baseline.neon | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index fcfc802d..3f7cce91 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -2100,11 +2100,21 @@ parameters: count: 4 path: tests/Builder/CreateStatementTest.php + - + message: "#^Dynamic call to static method PHPUnit\\\\Framework\\\\Assert\\:\\:assertEmpty\\(\\)\\.$#" + count: 1 + path: tests/Builder/CreateStatementTest.php + - message: "#^Dynamic call to static method PHPUnit\\\\Framework\\\\Assert\\:\\:assertEquals\\(\\)\\.$#" count: 34 path: tests/Builder/CreateStatementTest.php + - + message: "#^Dynamic call to static method PHPUnit\\\\Framework\\\\Assert\\:\\:assertStringContainsString\\(\\)\\.$#" + count: 2 + path: tests/Builder/CreateStatementTest.php + - message: "#^Dynamic call to static method PHPUnit\\\\Framework\\\\Assert\\:\\:assertFalse\\(\\)\\.$#" count: 4