From e3756405174be52dc77b3d0eda8698ed4e75016e Mon Sep 17 00:00:00 2001 From: Sergei Tigrov Date: Wed, 8 Jan 2025 10:21:27 +0700 Subject: [PATCH] Remove `ColumnInterface` (#296) --- CHANGELOG.md | 1 + src/Column.php | 55 ------------------- src/DDLQueryBuilder.php | 3 +- src/QueryBuilder.php | 31 ----------- src/Schema.php | 8 --- tests/ColumnSchemaBuilderTest.php | 26 --------- .../Provider/ColumnSchemaBuilderProvider.php | 25 --------- 7 files changed, 2 insertions(+), 147 deletions(-) delete mode 100644 src/Column.php delete mode 100644 tests/ColumnSchemaBuilderTest.php delete mode 100644 tests/Provider/ColumnSchemaBuilderProvider.php diff --git a/CHANGELOG.md b/CHANGELOG.md index 47b3c6b1..7d85efb7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -24,6 +24,7 @@ - New #292: Override `QueryBuilder::prepareBinary()` method (@Tigrov) - Chg #294: Update `QueryBuilder` constructor (@Tigrov) - Enh #293: Use `ColumnDefinitionBuilder` to generate table column SQL representation (@Tigrov) +- Enh #296: Remove `ColumnInterface` (@Tigrov) ## 1.3.0 March 21, 2024 diff --git a/src/Column.php b/src/Column.php deleted file mode 100644 index be6dc324..00000000 --- a/src/Column.php +++ /dev/null @@ -1,55 +0,0 @@ -notNull()->defaultValue(0); - * ``` - * - * Provides a fluent interface, which means that the methods can be chained together to create a column schema with - * many properties in a single line of code. - * - * @psalm-suppress DeprecatedClass - * - * @deprecated Use {@see StringColumnSchema} or other column classes instead. Will be removed in 2.0.0. - */ -final class Column extends AbstractColumn -{ - /** - * Builds the unsigned string for column. Defaults to unsupported. - * - * @return string A string containing UNSIGNED keyword. - */ - protected function buildUnsignedString(): string - { - return $this->isUnsigned() ? ' UNSIGNED' : ''; - } - - /** - * Builds the full string for the column's schema. - */ - public function asString(): string - { - $format = match ($this->getTypeCategory()) { - self::TYPE_CATEGORY_PK => '{type}{length}{check}{append}', - self::TYPE_CATEGORY_NUMERIC => '{type}{length}{unsigned}{default}{notnull}{check}{append}', - self::TYPE_CATEGORY_UUID => '{type}{notnull}{unique}{default}{check}{comment}{append}', - self::TYPE_CATEGORY_UUID_PK => '{type}{notnull}{check}{comment}{append}', - default => '{type}{length}{default}{notnull}{check}{append}', - }; - - return $this->buildCompleteString($format); - } -} diff --git a/src/DDLQueryBuilder.php b/src/DDLQueryBuilder.php index 0b3d7048..1277b7bc 100644 --- a/src/DDLQueryBuilder.php +++ b/src/DDLQueryBuilder.php @@ -7,7 +7,6 @@ use Yiisoft\Db\Exception\Exception; use Yiisoft\Db\Exception\NotSupportedException; use Yiisoft\Db\QueryBuilder\AbstractDDLQueryBuilder; -use Yiisoft\Db\Schema\Builder\ColumnInterface; use Yiisoft\Db\Schema\Column\ColumnSchemaInterface; /** @@ -46,7 +45,7 @@ public function addForeignKey( return $sql; } - public function alterColumn(string $table, string $column, ColumnInterface|ColumnSchemaInterface|string $type): string + public function alterColumn(string $table, string $column, ColumnSchemaInterface|string $type): string { return 'ALTER TABLE ' . $this->quoter->quoteTableName($table) diff --git a/src/QueryBuilder.php b/src/QueryBuilder.php index 34925822..0f5fc43f 100644 --- a/src/QueryBuilder.php +++ b/src/QueryBuilder.php @@ -5,8 +5,6 @@ namespace Yiisoft\Db\Oracle; use Yiisoft\Db\Connection\ServerInfoInterface; -use Yiisoft\Db\Constant\ColumnType; -use Yiisoft\Db\Constant\PseudoType; use Yiisoft\Db\Oracle\Column\ColumnDefinitionBuilder; use Yiisoft\Db\QueryBuilder\AbstractQueryBuilder; use Yiisoft\Db\Schema\QuoterInterface; @@ -19,35 +17,6 @@ */ final class QueryBuilder extends AbstractQueryBuilder { - /** - * @psalm-var string[] $typeMap Mapping from abstract column types (keys) to physical column types (values). - */ - protected array $typeMap = [ - PseudoType::PK => 'NUMBER(10) GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY', - PseudoType::UPK => 'NUMBER(10) GENERATED BY DEFAULT AS IDENTITY UNSIGNED NOT NULL PRIMARY KEY', - PseudoType::BIGPK => 'NUMBER(20) GENERATED BY DEFAULT AS IDENTITY NOT NULL PRIMARY KEY', - PseudoType::UBIGPK => 'NUMBER(20) GENERATED BY DEFAULT AS IDENTITY UNSIGNED NOT NULL PRIMARY KEY', - ColumnType::CHAR => 'CHAR(1)', - ColumnType::STRING => 'VARCHAR2(255)', - ColumnType::TEXT => 'CLOB', - ColumnType::TINYINT => 'NUMBER(3)', - ColumnType::SMALLINT => 'NUMBER(5)', - ColumnType::INTEGER => 'NUMBER(10)', - ColumnType::BIGINT => 'NUMBER(20)', - ColumnType::FLOAT => 'BINARY_FLOAT', - ColumnType::DOUBLE => 'BINARY_DOUBLE', - ColumnType::DECIMAL => 'NUMBER(10,0)', - ColumnType::DATETIME => 'TIMESTAMP(0)', - ColumnType::TIMESTAMP => 'TIMESTAMP(0)', - ColumnType::TIME => 'INTERVAL DAY(0) TO SECOND(0)', - ColumnType::DATE => 'DATE', - ColumnType::BINARY => 'BLOB', - ColumnType::BOOLEAN => 'NUMBER(1)', - ColumnType::MONEY => 'NUMBER(19,4)', - ColumnType::UUID => 'RAW(16)', - PseudoType::UUID_PK => 'RAW(16) DEFAULT SYS_GUID() PRIMARY KEY', - ]; - public function __construct(QuoterInterface $quoter, SchemaInterface $schema, ServerInfoInterface $serverInfo) { parent::__construct( diff --git a/src/Schema.php b/src/Schema.php index 736968f2..b3cecfc4 100644 --- a/src/Schema.php +++ b/src/Schema.php @@ -17,7 +17,6 @@ use Yiisoft\Db\Exception\NotSupportedException; use Yiisoft\Db\Helper\DbArrayHelper; use Yiisoft\Db\Oracle\Column\ColumnFactory; -use Yiisoft\Db\Schema\Builder\ColumnInterface; use Yiisoft\Db\Schema\Column\ColumnFactoryInterface; use Yiisoft\Db\Schema\Column\ColumnSchemaInterface; use Yiisoft\Db\Schema\TableSchemaInterface; @@ -70,13 +69,6 @@ public function __construct(protected ConnectionInterface $db, SchemaCache $sche parent::__construct($db, $schemaCache); } - /** @deprecated Use {@see ColumnBuilder} instead. Will be removed in 2.0. */ - public function createColumn(string $type, array|int|string $length = null): ColumnInterface - { - /** @psalm-suppress DeprecatedClass */ - return new Column($type, $length); - } - public function getColumnFactory(): ColumnFactoryInterface { return new ColumnFactory(); diff --git a/tests/ColumnSchemaBuilderTest.php b/tests/ColumnSchemaBuilderTest.php deleted file mode 100644 index 41150090..00000000 --- a/tests/ColumnSchemaBuilderTest.php +++ /dev/null @@ -1,26 +0,0 @@ -checkBuildString($expected, $type, $length, $calls); - } -} diff --git a/tests/Provider/ColumnSchemaBuilderProvider.php b/tests/Provider/ColumnSchemaBuilderProvider.php deleted file mode 100644 index b157b445..00000000 --- a/tests/Provider/ColumnSchemaBuilderProvider.php +++ /dev/null @@ -1,25 +0,0 @@ -