Fix column definition form not showing default value

Introduced by 5d0fd81e67

Signed-off-by: Maurício Meneghini Fauth <mauricio@fauth.dev>
This commit is contained in:
Maurício Meneghini Fauth 2020-09-19 21:53:27 -03:00
parent 5af2cc19a8
commit 8894f046b3
5 changed files with 39 additions and 15 deletions

View File

@ -60,6 +60,7 @@ phpMyAdmin - ChangeLog
- issue #15634 Only use session_set_cookie_params once on PHP >= 7.3.0 versions for single signon auth
- issue #14698 Fixed database named as 'New' (language variable) causes PHP fatal error
- issue #16355 Make textareas both sides resizable
- issue #16366 Fix column definition form not showing default value
5.0.2 (2020-03-20)
- issue Fixed deprecation warning "implode(): Passing glue string after array is deprecated." function on export page

View File

@ -799,13 +799,27 @@ class CentralColumns
$meta['DefaultType'] = 'USER_DEFINED';
$meta['DefaultValue'] = $row['col_default'];
}
$defaultValue = '';
$typeUpper = mb_strtoupper((string) $row['col_type']);
// For a TIMESTAMP, do not show the string "CURRENT_TIMESTAMP" as a default value
if (isset($meta['DefaultValue'])) {
$defaultValue = $meta['DefaultValue'];
}
if ($typeUpper == 'BIT') {
$defaultValue = Util::convertBitDefaultValue($meta['DefaultValue']);
} elseif ($typeUpper == 'BINARY' || $typeUpper == 'VARBINARY') {
$defaultValue = bin2hex($meta['DefaultValue']);
}
$tableHtml .=
'<td class="nowrap" name="col_default">'
. $this->template->render('columns_definitions/column_default', [
'column_number' => $row_num,
'ci' => 3,
'ci_offset' => 0,
'type_upper' => mb_strtoupper((string) $row['col_default']),
'default_value' => $defaultValue,
'column_meta' => $meta,
'char_editing' => $this->charEditing,
])
@ -1143,6 +1157,7 @@ class CentralColumns
$tables = $this->dbi->getTables($db);
$rows_list = $this->getColumnsList($db, $pos, $max_rows);
$defaultValues = [];
$rows_meta = [];
$types_upper = [];
$row_num = 0;
@ -1150,19 +1165,27 @@ class CentralColumns
$rows_meta[$row_num] = [];
if (! isset($row['col_default']) || $row['col_default'] == '') {
$rows_meta[$row_num]['DefaultType'] = 'NONE';
} elseif ($row['col_default'] == 'CURRENT_TIMESTAMP' || $row['col_default'] == 'current_timestamp()') {
$rows_meta[$row_num]['DefaultType'] = 'CURRENT_TIMESTAMP';
} elseif ($row['col_default'] == 'NULL') {
$rows_meta[$row_num]['DefaultType'] = $row['col_default'];
} else {
if ($row['col_default'] == 'CURRENT_TIMESTAMP'
|| $row['col_default'] == 'current_timestamp()'
) {
$rows_meta[$row_num]['DefaultType'] = 'CURRENT_TIMESTAMP';
} elseif ($row['col_default'] == 'NULL') {
$rows_meta[$row_num]['DefaultType'] = $row['col_default'];
} else {
$rows_meta[$row_num]['DefaultType'] = 'USER_DEFINED';
$rows_meta[$row_num]['DefaultValue'] = $row['col_default'];
}
$rows_meta[$row_num]['DefaultType'] = 'USER_DEFINED';
$rows_meta[$row_num]['DefaultValue'] = $row['col_default'];
}
$types_upper[$row_num] = mb_strtoupper((string) $row['col_type']);
// For a TIMESTAMP, do not show the string "CURRENT_TIMESTAMP" as a default value
$defaultValues[$row_num] = '';
if (isset($rows_meta[$row_num]['DefaultValue'])) {
$defaultValues[$row_num] = $rows_meta[$row_num]['DefaultValue'];
}
if ($types_upper[$row_num] == 'BIT') {
$defaultValues[$row_num] = Util::convertBitDefaultValue($rows_meta[$row_num]['DefaultValue']);
} elseif ($types_upper[$row_num] == 'BINARY' || $types_upper[$row_num] == 'VARBINARY') {
$defaultValues[$row_num] = bin2hex($rows_meta[$row_num]['DefaultValue']);
}
$row_num++;
}
@ -1198,6 +1221,7 @@ class CentralColumns
"tables" => $tables,
"rows_list" => $rows_list,
"rows_meta" => $rows_meta,
"default_values" => $defaultValues,
"types_upper" => $types_upper,
"pmaThemeImage" => $pmaThemeImage,
"text_dir" => $text_dir,

View File

@ -462,7 +462,7 @@ for ($columnNumber = 0; $columnNumber < $num_fields; $columnNumber++) {
if (isset($columnMeta['DefaultValue'])) {
$default_value = $columnMeta['DefaultValue'];
}
if ($type_upper == 'BIN)') {
if ($type_upper == 'BIT') {
$default_value = Util::convertBitDefaultValue($columnMeta['DefaultValue']);
} elseif ($type_upper == 'BINARY' || $type_upper == 'VARBINARY') {
$default_value = bin2hex($columnMeta['DefaultValue']);

View File

@ -46,7 +46,6 @@
'ci': ci,
'ci_offset': ci_offset,
'column_meta': column_meta,
'type_upper': type_upper,
'default_value': default_value,
'char_editing': char_editing
} only %}

View File

@ -85,7 +85,7 @@
'column_number': 0,
'ci': 3,
'ci_offset': 0,
'type_upper': '',
'default_value': '',
'column_meta': {},
'char_editing': char_editing,
} only %}
@ -333,7 +333,7 @@
'column_number': row_num,
'ci': 3,
'ci_offset': 0,
'type_upper': types_upper[row_num],
'default_value': default_values[row_num],
'column_meta': rows_meta[row_num],
'char_editing': char_editing,
} only %}