Merge pull request #19429 from kamil-tekiela/Types-refactoring #1227
Annotations
11 warnings
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636
|
Run Infection for changed files only:
src/ConfigStorage/Relation.php#L503
Escaped Mutant for Mutator "Foreach_":
--- Original
+++ New
@@ @@
* Pick first char field
*/
$columns = $this->dbi->getColumnsFull($db, $table);
- foreach ($columns as $column) {
+ foreach (array() as $column) {
if ($this->dbi->types->getTypeClass($column['DATA_TYPE']) === TypeClass::Char) {
return $column['COLUMN_NAME'];
}
|
Run Infection for changed files only:
src/Html/Generator.php#L262
Escaped Mutant for Mutator "LogicalAnd":
--- Original
+++ New
@@ @@
// Can we get field class based values?
$currentClass = $dbi->types->getTypeClass($trueType);
$config = Config::getInstance();
- if ($currentClass !== TypeClass::Unknown && isset($config->settings['DefaultFunctions']['FUNC_' . $currentClass->value])) {
+ if ($currentClass !== TypeClass::Unknown || isset($config->settings['DefaultFunctions']['FUNC_' . $currentClass->value])) {
$defaultFunction = $config->settings['DefaultFunctions']['FUNC_' . $currentClass->value];
// Change the configured default function to include the ST_ prefix with MySQL 5.6 and later.
// It needs to match the function listed in the select html element.
|
Run Infection for changed files only:
src/Html/Generator.php#L269
Escaped Mutant for Mutator "LogicalAnd":
--- Original
+++ New
@@ @@
$defaultFunction = $config->settings['DefaultFunctions']['FUNC_' . $currentClass->value];
// Change the configured default function to include the ST_ prefix with MySQL 5.6 and later.
// It needs to match the function listed in the select html element.
- if ($currentClass === TypeClass::Spatial && $dbi->getVersion() >= 50600 && stripos($defaultFunction, 'ST_') !== 0) {
+ if (($currentClass === TypeClass::Spatial || $dbi->getVersion() >= 50600) && stripos($defaultFunction, 'ST_') !== 0) {
$defaultFunction = 'ST_' . $defaultFunction;
}
}
|
Run Infection for changed files only:
src/Html/Generator.php#L269
Escaped Mutant for Mutator "LogicalAnd":
--- Original
+++ New
@@ @@
$defaultFunction = $config->settings['DefaultFunctions']['FUNC_' . $currentClass->value];
// Change the configured default function to include the ST_ prefix with MySQL 5.6 and later.
// It needs to match the function listed in the select html element.
- if ($currentClass === TypeClass::Spatial && $dbi->getVersion() >= 50600 && stripos($defaultFunction, 'ST_') !== 0) {
+ if ($currentClass === TypeClass::Spatial && $dbi->getVersion() >= 50600 || stripos($defaultFunction, 'ST_') !== 0) {
$defaultFunction = 'ST_' . $defaultFunction;
}
}
|
Run Infection for changed files only:
src/InsertEdit.php#L1804
Escaped Mutant for Mutator "ArrayItemRemoval":
--- Original
+++ New
@@ @@
$columnValue = $this->getValueColumnForOtherDatatypes($column, $defaultCharEditing, $backupField, $columnNameAppendix, $onChangeClause, $specialChars, $specialCharsEncoded, $data, $extractedColumnspec);
}
}
- return $this->template->render('table/insert/column_row', ['db' => $db, 'table' => $table, 'column' => $column, 'row_id' => $rowId, 'show_field_types_in_data_edit_view' => $this->config->settings['ShowFieldTypesInDataEditView'], 'show_function_fields' => $this->config->settings['ShowFunctionFields'], 'is_column_binary' => $isColumnBinary, 'function_options' => $functionOptions, 'nullify_code' => $nullifyCode, 'real_null_value' => $realNullValue, 'id_index' => $this->fieldIndex, 'type' => $type, 'decimals' => $noDecimals, 'special_chars' => $specialChars, 'transformed_value' => $transformedHtml, 'value' => $columnValue, 'is_value_foreign_link' => $foreignData->foreignLink, 'backup_field' => $backupField, 'data' => $data, 'gis_data_types' => Gis::getDataTypes(), 'foreign_dropdown' => $foreignDropdown, 'data_type' => $dataType->value, 'textarea_cols' => $textareaCols, 'textarea_rows' => $textAreaRows, 'max_length' => $maxlength, 'longtext_double_textarea' => $this->config->settings['LongtextDoubleTextarea'], 'enum_selected_value' => $enumSelectedValue, 'enum_values' => $enumValues, 'set_values' => $columnSetValues, 'set_select_size' => $setSelectSize, 'is_column_protected_blob' => $isColumnProtectedBlob, 'blob_value' => $blobValue, 'blob_value_unit' => $blobValueUnit, 'is_upload' => $isUpload, 'max_upload_size' => $maxUploadSize, 'select_option_for_upload' => $selectOptionForUpload, 'limit_chars' => $this->config->settings['LimitChars'], 'input_field_html' => $inputFieldHtml, 'field_title' => $this->getColumnTitle($column->field, $commentsMap)]);
+ return $this->template->render('table/insert/column_row', ['table' => $table, 'column' => $column, 'row_id' => $rowId, 'show_field_types_in_data_edit_view' => $this->config->settings['ShowFieldTypesInDataEditView'], 'show_function_fields' => $this->config->settings['ShowFunctionFields'], 'is_column_binary' => $isColumnBinary, 'function_options' => $functionOptions, 'nullify_code' => $nullifyCode, 'real_null_value' => $realNullValue, 'id_index' => $this->fieldIndex, 'type' => $type, 'decimals' => $noDecimals, 'special_chars' => $specialChars, 'transformed_value' => $transformedHtml, 'value' => $columnValue, 'is_value_foreign_link' => $foreignData->foreignLink, 'backup_field' => $backupField, 'data' => $data, 'gis_data_types' => Gis::getDataTypes(), 'foreign_dropdown' => $foreignDropdown, 'data_type' => $dataType->value, 'textarea_cols' => $textareaCols, 'textarea_rows' => $textAreaRows, 'max_length' => $maxlength, 'longtext_double_textarea' => $this->config->settings['LongtextDoubleTextarea'], 'enum_selected_value' => $enumSelectedValue, 'enum_values' => $enumValues, 'set_values' => $columnSetValues, 'set_select_size' => $setSelectSize, 'is_column_protected_blob' => $isColumnProtectedBlob, 'blob_value' => $blobValue, 'blob_value_unit' => $blobValueUnit, 'is_upload' => $isUpload, 'max_upload_size' => $maxUploadSize, 'select_option_for_upload' => $selectOptionForUpload, 'limit_chars' => $this->config->settings['LimitChars'], 'input_field_html' => $inputFieldHtml, 'field_title' => $this->getColumnTitle($column->field, $commentsMap)]);
}
private function isColumnBinary(InsertEditColumn $column, bool $isUpload) : bool
{
|
Run Infection for changed files only:
src/Types.php#L100
Escaped Mutant for Mutator "DecrementInteger":
--- Original
+++ New
@@ @@
*/
public function getTypeOperators(string $type, bool $null) : array
{
- if (strncasecmp($type, 'enum', 4) === 0) {
+ if (strncasecmp($type, 'enum', 3) === 0) {
$operators = self::ENUM_OPERATORS;
} else {
$operators = match ($this->getTypeClass($type)) {
|
Run Infection for changed files only:
src/Types.php#L100
Escaped Mutant for Mutator "IncrementInteger":
--- Original
+++ New
@@ @@
*/
public function getTypeOperators(string $type, bool $null) : array
{
- if (strncasecmp($type, 'enum', 4) === 0) {
+ if (strncasecmp($type, 'enum', 5) === 0) {
$operators = self::ENUM_OPERATORS;
} else {
$operators = match ($this->getTypeClass($type)) {
|
Run Infection for changed files only:
src/Types.php#L144
Escaped Mutant for Mutator "UnwrapStrToUpper":
--- Original
+++ New
@@ @@
*/
public function getTypeDescription(string $type) : string
{
- return match (strtoupper($type)) {
+ return match ($type) {
'TINYINT' => __('A 1-byte integer, signed range is -128 to 127, unsigned range is 0 to 255'),
'SMALLINT' => __('A 2-byte integer, signed range is -32,768 to 32,767, unsigned range is 0 to 65,535'),
'MEDIUMINT' => __('A 3-byte integer, signed range is -8,388,608 to 8,388,607, unsigned range is 0 to 16,777,215'),
|
Run Infection for changed files only:
src/Types.php#L288
Escaped Mutant for Mutator "UnwrapStrToUpper":
--- Original
+++ New
@@ @@
*/
public function getTypeClass(string $type) : TypeClass
{
- return match (strtoupper($type)) {
+ return match ($type) {
'TINYINT', 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT', 'DECIMAL', 'FLOAT', 'DOUBLE', 'REAL', 'BIT', 'BOOLEAN', 'SERIAL' => TypeClass::Number,
'DATE', 'DATETIME', 'TIMESTAMP', 'TIME', 'YEAR' => TypeClass::Date,
'CHAR', 'VARCHAR', 'TINYTEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', 'BINARY', 'VARBINARY', 'TINYBLOB', 'MEDIUMBLOB', 'BLOB', 'LONGBLOB', 'ENUM', 'SET', 'INET6' => TypeClass::Char,
|
Run Infection for changed files only:
src/Types.php#L288
Escaped Mutant for Mutator "MatchArmRemoval":
--- Original
+++ New
@@ @@
public function getTypeClass(string $type) : TypeClass
{
return match (strtoupper($type)) {
- 'TINYINT', 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT', 'DECIMAL', 'FLOAT', 'DOUBLE', 'REAL', 'BIT', 'BOOLEAN', 'SERIAL' => TypeClass::Number,
+ 'SMALLINT', 'MEDIUMINT', 'INT', 'BIGINT', 'DECIMAL', 'FLOAT', 'DOUBLE', 'REAL', 'BIT', 'BOOLEAN', 'SERIAL' => TypeClass::Number,
'DATE', 'DATETIME', 'TIMESTAMP', 'TIME', 'YEAR' => TypeClass::Date,
'CHAR', 'VARCHAR', 'TINYTEXT', 'TEXT', 'MEDIUMTEXT', 'LONGTEXT', 'BINARY', 'VARBINARY', 'TINYBLOB', 'MEDIUMBLOB', 'BLOB', 'LONGBLOB', 'ENUM', 'SET', 'INET6' => TypeClass::Char,
'GEOMETRY', 'POINT', 'LINESTRING', 'POLYGON', 'MULTIPOINT', 'MULTILINESTRING', 'MULTIPOLYGON', 'GEOMETRYCOLLECTION' => TypeClass::Spatial,
|
Loading