Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/mutation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,6 @@ jobs:

- name: Run infection.
run: |
vendor/bin/roave-infection-static-analysis-plugin --threads=2 --ignore-msi-with-no-mutations --only-covered
vendor/bin/roave-infection-static-analysis-plugin --threads=2 --ignore-msi-with-no-mutations
env:
STRYKER_DASHBOARD_API_KEY: ${{ secrets.STRYKER_DASHBOARD_API_KEY }}
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@
- Enh #406: Adapt to `DQLQueryBuilderInterface::buildWithQueries()` signature changes in `yiisoft/db` package (@vjik)
- Bug #408, #409: Add `identity` support in `Schema::loadResultColumn()` (@vjik)
- Chg #413: Throw exception on "unsigned" column usage (@vjik)
- Chg #416: Add `ColumnDefinitionParser` class (@vjik)

## 1.2.0 March 21, 2024

Expand Down
31 changes: 31 additions & 0 deletions src/Column/ColumnDefinitionParser.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
<?php

declare(strict_types=1);

namespace Yiisoft\Db\Mssql\Column;

use Yiisoft\Db\Syntax\AbstractColumnDefinitionParser;

final class ColumnDefinitionParser extends AbstractColumnDefinitionParser
{
protected function parseTypeParams(string $type, string $params): array
{
return match ($type) {
'binary',
'char',
'datetime2',
'datetimeoffset',
'decimal',
'float',
'int',
'nchar',
'numeric',
'nvarchar',
'string',
'time',
'varbinary',
'varchar' => $this->parseSizeInfo($params),
default => [],
};
}
}
6 changes: 6 additions & 0 deletions src/Column/ColumnFactory.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
use Yiisoft\Db\Expression\Expression;
use Yiisoft\Db\Schema\Column\AbstractColumnFactory;
use Yiisoft\Db\Schema\Column\ColumnInterface;
use Yiisoft\Db\Syntax\ColumnDefinitionParserInterface;

use function hex2bin;
use function str_starts_with;
Expand Down Expand Up @@ -117,4 +118,9 @@ protected function normalizeNotNullDefaultValue(string $defaultValue, ColumnInte

return parent::normalizeNotNullDefaultValue($defaultValue, $column);
}

protected function columnDefinitionParser(): ColumnDefinitionParserInterface
{
return new ColumnDefinitionParser();
}
}
18 changes: 18 additions & 0 deletions tests/ColumnDefinitionParserTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?php

declare(strict_types=1);

use Yiisoft\Db\Mssql\Column\ColumnDefinitionParser;
use Yiisoft\Db\Syntax\ColumnDefinitionParserInterface;
use Yiisoft\Db\Tests\Common\CommonColumnDefinitionParserTest;

/**
* @group mssql
*/
final class ColumnDefinitionParserTest extends CommonColumnDefinitionParserTest
{
protected function createColumnDefinitionParser(): ColumnDefinitionParserInterface
{
return new ColumnDefinitionParser();
}
}
Loading