From ef7a8da9902208c9712b6fc3003ba6f89970cb97 Mon Sep 17 00:00:00 2001 From: Joey Smith Date: Tue, 24 Feb 2026 13:44:08 -0600 Subject: [PATCH 1/3] Prevents type errors when initializing a Metadata instance. Needs tested against various driver packages. Signed-off-by: Joey Smith --- src/Metadata/Source/AbstractSource.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Metadata/Source/AbstractSource.php b/src/Metadata/Source/AbstractSource.php index fee3ba61..307a3e6b 100644 --- a/src/Metadata/Source/AbstractSource.php +++ b/src/Metadata/Source/AbstractSource.php @@ -263,14 +263,14 @@ public function getColumn(string $columnName, string $table, ?string $schema = n $column = new ColumnObject($columnName, $table, $schema); - $column->setOrdinalPosition($info['ordinal_position']); + $column->setOrdinalPosition($info['ordinal_position'] ? (int) $info['ordinal_position'] : null); $column->setColumnDefault($info['column_default']); $column->setIsNullable($info['is_nullable']); $column->setDataType($info['data_type']); - $column->setCharacterMaximumLength($info['character_maximum_length']); - $column->setCharacterOctetLength($info['character_octet_length']); - $column->setNumericPrecision($info['numeric_precision']); - $column->setNumericScale($info['numeric_scale']); + $column->setCharacterMaximumLength($info['character_maximum_length'] ? (int) $info['character_maximum_length'] : null); + $column->setCharacterOctetLength($info['character_octet_length'] ? (int) $info['character_octet_length'] : null); + $column->setNumericPrecision($info['numeric_precision'] ? (int) $info['numeric_precision'] : null); + $column->setNumericScale($info['numeric_scale'] ? (int) $info['numeric_scale'] : null); $column->setNumericUnsigned($info['numeric_unsigned']); $column->setErratas($info['erratas']); From ae29ff237aa5dd3f26a4d92eb06771044df6f6c6 Mon Sep 17 00:00:00 2001 From: Joey Smith Date: Tue, 24 Feb 2026 13:44:08 -0600 Subject: [PATCH 2/3] Prevents type errors when initializing a Metadata instance. Needs tested against various driver packages. Signed-off-by: Joey Smith --- src/Metadata/Source/AbstractSource.php | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Metadata/Source/AbstractSource.php b/src/Metadata/Source/AbstractSource.php index fee3ba61..307a3e6b 100644 --- a/src/Metadata/Source/AbstractSource.php +++ b/src/Metadata/Source/AbstractSource.php @@ -263,14 +263,14 @@ public function getColumn(string $columnName, string $table, ?string $schema = n $column = new ColumnObject($columnName, $table, $schema); - $column->setOrdinalPosition($info['ordinal_position']); + $column->setOrdinalPosition($info['ordinal_position'] ? (int) $info['ordinal_position'] : null); $column->setColumnDefault($info['column_default']); $column->setIsNullable($info['is_nullable']); $column->setDataType($info['data_type']); - $column->setCharacterMaximumLength($info['character_maximum_length']); - $column->setCharacterOctetLength($info['character_octet_length']); - $column->setNumericPrecision($info['numeric_precision']); - $column->setNumericScale($info['numeric_scale']); + $column->setCharacterMaximumLength($info['character_maximum_length'] ? (int) $info['character_maximum_length'] : null); + $column->setCharacterOctetLength($info['character_octet_length'] ? (int) $info['character_octet_length'] : null); + $column->setNumericPrecision($info['numeric_precision'] ? (int) $info['numeric_precision'] : null); + $column->setNumericScale($info['numeric_scale'] ? (int) $info['numeric_scale'] : null); $column->setNumericUnsigned($info['numeric_unsigned']); $column->setErratas($info['erratas']); From 357c6115abf50e7d660073bc7d218e19bf6990c4 Mon Sep 17 00:00:00 2001 From: Simon Mundy <46739456+simon-mundy@users.noreply.github.com> Date: Thu, 26 Feb 2026 10:05:49 +1100 Subject: [PATCH 3/3] Update AbstractSource.php Rewrapped long lines Signed-off-by: Simon Mundy <46739456+simon-mundy@users.noreply.github.com> --- src/Metadata/Source/AbstractSource.php | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Metadata/Source/AbstractSource.php b/src/Metadata/Source/AbstractSource.php index 307a3e6b..3e1222a3 100644 --- a/src/Metadata/Source/AbstractSource.php +++ b/src/Metadata/Source/AbstractSource.php @@ -267,10 +267,18 @@ public function getColumn(string $columnName, string $table, ?string $schema = n $column->setColumnDefault($info['column_default']); $column->setIsNullable($info['is_nullable']); $column->setDataType($info['data_type']); - $column->setCharacterMaximumLength($info['character_maximum_length'] ? (int) $info['character_maximum_length'] : null); - $column->setCharacterOctetLength($info['character_octet_length'] ? (int) $info['character_octet_length'] : null); - $column->setNumericPrecision($info['numeric_precision'] ? (int) $info['numeric_precision'] : null); - $column->setNumericScale($info['numeric_scale'] ? (int) $info['numeric_scale'] : null); + $column->setCharacterMaximumLength( + $info['character_maximum_length'] ? (int) $info['character_maximum_length'] : null + ); + $column->setCharacterOctetLength( + $info['character_octet_length'] ? (int) $info['character_octet_length'] : null + ); + $column->setNumericPrecision( + $info['numeric_precision'] ? (int) $info['numeric_precision'] : null + ); + $column->setNumericScale( + $info['numeric_scale'] ? (int) $info['numeric_scale'] : null + ); $column->setNumericUnsigned($info['numeric_unsigned']); $column->setErratas($info['erratas']);