From 7ec96e3e4979d9cc5f0908daee0cd65a4f116e89 Mon Sep 17 00:00:00 2001 From: Ibrahim BinAlshikh Date: Wed, 11 Feb 2026 00:09:27 +0300 Subject: [PATCH 1/3] feat: Added `getSupportedDataTypes` --- WebFiori/Database/DataType.php | 52 + WebFiori/Database/MsSql/MSSQLColumn.php | 22 +- WebFiori/Database/MySql/MySQLColumn.php | 21 +- .../Tests/Database/MsSql/MSSQLColumnTest.php | 1168 ++++++------ .../Tests/Database/MsSql/MSSQLTableTest.php | 1138 ++++++------ .../Tests/Database/MySql/MySQLColumnTest.php | 1598 ++++++++--------- .../Tests/Database/MySql/MySQLTableTest.php | 1106 ++++++------ 7 files changed, 2561 insertions(+), 2544 deletions(-) diff --git a/WebFiori/Database/DataType.php b/WebFiori/Database/DataType.php index 18adf88d..4e991c8f 100644 --- a/WebFiori/Database/DataType.php +++ b/WebFiori/Database/DataType.php @@ -21,6 +21,48 @@ * @author Ibrahim */ class DataType { + /** + * Mapping of database engines to their supported data types. + */ + private static array $EngineTypes = [ + 'mysql' => [ + self::BIT, + self::BLOB, + self::BLOB_LONG, + self::BLOB_MEDIUM, + self::BLOB_TINY, + self::BOOL, + self::CHAR, + self::DATETIME, + self::DECIMAL, + self::DOUBLE, + self::FLOAT, + self::INT, + self::TEXT, + self::TEXT_MEDIUM, + self::TIMESTAMP, + self::VARCHAR, + ], + 'mssql' => [ + self::BIGINT, + self::BINARY, + self::BIT, + self::BOOL, + self::CHAR, + self::DATE, + self::DATETIME, + self::DATETIME2, + self::DECIMAL, + self::FLOAT, + self::INT, + self::MONEY, + self::NCHAR, + self::NVARCHAR, + self::TIME, + self::VARBINARY, + self::VARCHAR, + ], + ]; /** * Big integer data type. Applicable to: *