diff --git a/libraries/classes/Database/Routines.php b/libraries/classes/Database/Routines.php index a1c7c69f77..c6a2a09fd0 100644 --- a/libraries/classes/Database/Routines.php +++ b/libraries/classes/Database/Routines.php @@ -713,9 +713,8 @@ class Routines 'item_param_name' => $routine['item_param_name'][$i] ?? '', 'item_param_length' => $routine['item_param_length'][$i] ?? '', 'item_param_opts_num' => $routine['item_param_opts_num'][$i] ?? '', - 'supported_datatypes' => Util::getSupportedDatatypes( - true, - $routine['item_param_type'][$i] + 'supported_datatypes' => Generator::getSupportedDatatypes( + $this->dbi->types->mapAliasToMysqlType($routine['item_param_type'][$i]) ), 'charsets' => $charsets, 'drop_class' => $drop_class, diff --git a/libraries/classes/Types.php b/libraries/classes/Types.php index 1ebc27930c..4aa07194ce 100644 --- a/libraries/classes/Types.php +++ b/libraries/classes/Types.php @@ -864,6 +864,28 @@ class Types return $ret; } + public function mapAliasToMysqlType(string $alias): string + { + return [ + 'BOOL' => 'TINYINT', + 'BOOLEAN' => 'TINYINT', + 'CHARACTER VARYING' => 'VARCHAR', + 'FIXED' => 'DECIMAL', + 'FLOAT4' => 'FLOAT', + 'FLOAT8' => 'DOUBLE', + 'INT1' => 'TINYINT', + 'INT2' => 'SMALLINT', + 'INT3' => 'MEDIUMINT', + 'INT4' => 'INT', + 'INT8' => 'BIGINT', + 'LONG VARBINARY' => 'MEDIUMBLOB', + 'LONG VARCHAR' => 'MEDIUMTEXT', + 'LONG' => 'MEDIUMTEXT', + 'MIDDLEINT' => 'MEDIUMINT', + 'NUMERIC' => 'DECIMAL', + ][$alias] ?? $alias; + } + /** * Returns an array of integer types * diff --git a/psalm-baseline.xml b/psalm-baseline.xml index 6fdeed3ccb..fde56a20c9 100644 --- a/psalm-baseline.xml +++ b/psalm-baseline.xml @@ -3056,14 +3056,9 @@ - - $rows + $start - - $_REQUEST['pos'] - $_REQUEST['session_max_rows'] - $db $db @@ -3079,6 +3074,11 @@ $url_params['db'] + + $_REQUEST['pos'] + $_REQUEST['session_max_rows'] + $rows + $_REQUEST['pos'] $_REQUEST['pos']