diff --git a/libs/output-mapping/src/Mapping/MappingFromConfigurationSchemaColumnDataType.php b/libs/output-mapping/src/Mapping/MappingFromConfigurationSchemaColumnDataType.php index 8f80975ec..2003d086e 100644 --- a/libs/output-mapping/src/Mapping/MappingFromConfigurationSchemaColumnDataType.php +++ b/libs/output-mapping/src/Mapping/MappingFromConfigurationSchemaColumnDataType.php @@ -92,7 +92,7 @@ public function getBackendDefaultValue(string $backend): ?string public function hasBackendType(string $backend): bool { - if (!isset($this->mapping[$backend])) { + if (!isset($this->mapping[$backend]['type'])) { return false; } return true; diff --git a/libs/output-mapping/src/Writer/Table/TableDefinitionFromSchema/TableDefinitionFromSchemaColumn.php b/libs/output-mapping/src/Writer/Table/TableDefinitionFromSchema/TableDefinitionFromSchemaColumn.php index 9dbe46cbc..39ed105a4 100644 --- a/libs/output-mapping/src/Writer/Table/TableDefinitionFromSchema/TableDefinitionFromSchemaColumn.php +++ b/libs/output-mapping/src/Writer/Table/TableDefinitionFromSchema/TableDefinitionFromSchemaColumn.php @@ -39,10 +39,7 @@ public function getRequestData(): array // $definition['default'] = $dataType->getDefaultValue($this->backend); // } - if ($definition && !isset($definition['type'])) { - $definition['type'] = $dataType->getTypeName($this->backend); - } - if ($definition) { + if (isset($definition['type'])) { $data['definition'] = $definition; } } diff --git a/libs/output-mapping/tests/Writer/Table/TableDefinitionFromSchema/TableDefinitionFromSchemaColumnTest.php b/libs/output-mapping/tests/Writer/Table/TableDefinitionFromSchema/TableDefinitionFromSchemaColumnTest.php index 6d1fc4265..aa4766ee0 100644 --- a/libs/output-mapping/tests/Writer/Table/TableDefinitionFromSchema/TableDefinitionFromSchemaColumnTest.php +++ b/libs/output-mapping/tests/Writer/Table/TableDefinitionFromSchema/TableDefinitionFromSchemaColumnTest.php @@ -169,5 +169,24 @@ public function columnDataProvider(): Generator 'basetype' => 'STRING', ], ]; + + yield 'backend definition without type' => [ + 'column' => new MappingFromConfigurationSchemaColumn([ + 'name' => 'test_table_name', + 'data_type' => [ + 'base' => [ + 'type' => 'STRING', + ], + 'snowflake' => [ + 'length' => '1024', + ], + ], + ]), + 'backend' => 'snowflake', + 'expectedStructure' => [ + 'name' => 'test_table_name', + 'basetype' => 'STRING', + ], + ]; } } diff --git a/libs/output-mapping/tests/Writer/TableDefinitionV2BigQueryTest.php b/libs/output-mapping/tests/Writer/TableDefinitionV2BigQueryTest.php index 08903ee74..2c81a3d15 100644 --- a/libs/output-mapping/tests/Writer/TableDefinitionV2BigQueryTest.php +++ b/libs/output-mapping/tests/Writer/TableDefinitionV2BigQueryTest.php @@ -259,7 +259,6 @@ public function configProvider(): Generator ], 'birthweight' => [ 'type' => Bigquery::TYPE_NUMERIC, - 'length' => '38,9', 'nullable' => true, ], 'created' => [ diff --git a/libs/output-mapping/tests/Writer/TableDefinitionV2Test.php b/libs/output-mapping/tests/Writer/TableDefinitionV2Test.php index 0601a701d..8e62a1b7d 100644 --- a/libs/output-mapping/tests/Writer/TableDefinitionV2Test.php +++ b/libs/output-mapping/tests/Writer/TableDefinitionV2Test.php @@ -361,7 +361,7 @@ public function configProvider(): Generator [ 'Id' => [ 'type' => Snowflake::TYPE_NUMBER, - 'length' => '38,0', // default integer length + 'length' => '38,9', // default integer length 'nullable' => false, ], 'Name' => [ @@ -473,8 +473,12 @@ private static function assertDataTypeDefinition(array $definitionColumn, array $definitionColumn = current($definitionColumn); self::assertSame($expectedType['type'], $definitionColumn['definition']['type']); - self::assertSame($expectedType['length'], $definitionColumn['definition']['length']); - self::assertSame($expectedType['nullable'], $definitionColumn['definition']['nullable']); + if (isset($expectedType['length'])) { + self::assertSame($expectedType['length'], $definitionColumn['definition']['length']); + } + if (isset($definitionColumn['nullable'])) { + self::assertSame($expectedType['nullable'], $definitionColumn['definition']['nullable']); + } } #[NeedsTestTables]