Merge branch 'QA_4_9' into 'QA_5_0'
Signed-off-by: William Desportes <williamdes@wdes.fr>
This commit is contained in:
commit
f428277bad
@ -57,6 +57,10 @@ phpMyAdmin - ChangeLog
|
||||
- issue #15127 Fix remove the white square in floating menubar when reloading the designer
|
||||
- issue #15202 Fixed creating user with single quote in password results in no password user
|
||||
- issue #14950 Fixed left database overview "add column" triggers error
|
||||
- issue #15363 Fix remove unexpected quotes on text fields (structure and insert)
|
||||
- issue Fix NULL wrongly checked on field change
|
||||
- issue #15388 Fix allow to rollback an empty statement
|
||||
- issue #14291 Fixed incorrect linkage from one table's value to another table
|
||||
|
||||
4.9.0.1 (2019-06-04)
|
||||
- issue #14478 phpMyAdmin no longer streams the export data
|
||||
|
||||
@ -912,7 +912,7 @@ class StructureController extends AbstractController
|
||||
$_POST['field_length'][$i],
|
||||
$_POST['field_attribute'][$i],
|
||||
Util::getValueByKey($_POST, "field_collation.${i}", ''),
|
||||
Util::getValueByKey($_POST, "field_null.${i}", 'NOT NULL'),
|
||||
Util::getValueByKey($_POST, "field_null.${i}", 'NO'),
|
||||
$_POST['field_default_type'][$i],
|
||||
$_POST['field_default_value'][$i],
|
||||
Util::getValueByKey($_POST, "field_extra.${i}", false),
|
||||
@ -1060,7 +1060,7 @@ class StructureController extends AbstractController
|
||||
$_POST['field_length_orig'][$i],
|
||||
$_POST['field_attribute_orig'][$i],
|
||||
Util::getValueByKey($_POST, "field_collation_orig.${i}", ''),
|
||||
Util::getValueByKey($_POST, "field_null_orig.${i}", 'NOT NULL'),
|
||||
Util::getValueByKey($_POST, "field_null_orig.${i}", 'NO'),
|
||||
$_POST['field_default_type_orig'][$i],
|
||||
$_POST['field_default_value_orig'][$i],
|
||||
Util::getValueByKey($_POST, "field_extra_orig.${i}", false),
|
||||
|
||||
@ -144,7 +144,7 @@ class CreateAddField
|
||||
if ($previousField == -1) {
|
||||
if ((string) $_POST['field_where'] === 'first') {
|
||||
$sqlSuffix .= ' FIRST';
|
||||
} else if (! empty($_POST['after_field'])) {
|
||||
} elseif (! empty($_POST['after_field'])) {
|
||||
$sqlSuffix .= ' AFTER '
|
||||
. Util::backquote($_POST['after_field']);
|
||||
}
|
||||
|
||||
@ -3579,6 +3579,7 @@ class Results
|
||||
$meta,
|
||||
$map,
|
||||
$column,
|
||||
$column,
|
||||
$transformation_plugin,
|
||||
$default_function,
|
||||
$nowrap,
|
||||
@ -3673,7 +3674,7 @@ class Results
|
||||
$wktval = Util::asWKT($column);
|
||||
list(
|
||||
$is_field_truncated,
|
||||
$wktval,
|
||||
$displayedColumn,
|
||||
// skip 3rd param
|
||||
) = $this->_getPartialText($wktval);
|
||||
|
||||
@ -3684,6 +3685,7 @@ class Results
|
||||
$meta,
|
||||
$map,
|
||||
$wktval,
|
||||
$displayedColumn,
|
||||
$transformation_plugin,
|
||||
$default_function,
|
||||
'',
|
||||
@ -3703,7 +3705,7 @@ class Results
|
||||
$wkbval = substr(bin2hex($column), 8);
|
||||
list(
|
||||
$is_field_truncated,
|
||||
$wkbval,
|
||||
$displayedColumn,
|
||||
// skip 3rd param
|
||||
) = $this->_getPartialText($wkbval);
|
||||
|
||||
@ -3714,6 +3716,7 @@ class Results
|
||||
$meta,
|
||||
$map,
|
||||
$wkbval,
|
||||
$displayedColumn,
|
||||
$transformation_plugin,
|
||||
$default_function,
|
||||
'',
|
||||
@ -3826,21 +3829,22 @@ class Results
|
||||
|
||||
// Cut all fields to $GLOBALS['cfg']['LimitChars']
|
||||
// (unless it's a link-type transformation or binary)
|
||||
$displayedColumn = $column;
|
||||
if (! (gettype($transformation_plugin) === "object"
|
||||
&& strpos($transformation_plugin->getName(), 'Link') !== false)
|
||||
&& false === stripos($field_flags, self::BINARY_FIELD)
|
||||
) {
|
||||
list(
|
||||
$is_field_truncated,
|
||||
$column,
|
||||
$displayedColumn,
|
||||
$original_length
|
||||
) = $this->_getPartialText($column);
|
||||
}
|
||||
|
||||
$formatted = false;
|
||||
if (isset($meta->_type) && $meta->_type === MYSQLI_TYPE_BIT) {
|
||||
$column = Util::printableBitValue(
|
||||
(int) $column,
|
||||
$displayedColumn = Util::printableBitValue(
|
||||
(int) $displayedColumn,
|
||||
(int) $meta->length
|
||||
);
|
||||
|
||||
@ -3856,9 +3860,9 @@ class Results
|
||||
if ($meta->type === self::STRING_FIELD) {
|
||||
$binary_or_blob = self::BINARY_FIELD;
|
||||
}
|
||||
$column = $this->_handleNonPrintableContents(
|
||||
$displayedColumn = $this->_handleNonPrintableContents(
|
||||
$binary_or_blob,
|
||||
$column,
|
||||
$displayedColumn,
|
||||
$transformation_plugin,
|
||||
$transform_options,
|
||||
$default_function,
|
||||
@ -3888,7 +3892,7 @@ class Results
|
||||
$cell = $this->_buildValueDisplay(
|
||||
$class,
|
||||
$condition_field,
|
||||
$column
|
||||
$displayedColumn
|
||||
);
|
||||
return $cell;
|
||||
}
|
||||
@ -3916,6 +3920,7 @@ class Results
|
||||
$meta,
|
||||
$map,
|
||||
$column,
|
||||
$displayedColumn,
|
||||
$transformation_plugin,
|
||||
$default_function,
|
||||
$nowrap,
|
||||
@ -5195,6 +5200,7 @@ class Results
|
||||
* field
|
||||
* @param array $map the list of relations
|
||||
* @param string $data data
|
||||
* @param string $displayedData data that will be displayed (maybe be chunked)
|
||||
* @param TransformationsPlugin $transformation_plugin transformation plugin.
|
||||
* Can also be the default function:
|
||||
* Core::mimeDefaultFunction
|
||||
@ -5221,6 +5227,7 @@ class Results
|
||||
$meta,
|
||||
array $map,
|
||||
$data,
|
||||
$displayedData,
|
||||
$transformation_plugin,
|
||||
$default_function,
|
||||
$nowrap,
|
||||
@ -5316,7 +5323,7 @@ class Results
|
||||
if ($transformation_plugin != $default_function) {
|
||||
// always apply a transformation on the real data,
|
||||
// not on the display field
|
||||
$message = $transformation_plugin->applyTransformation(
|
||||
$displayedData = $transformation_plugin->applyTransformation(
|
||||
$data,
|
||||
$transform_options,
|
||||
$meta
|
||||
@ -5327,10 +5334,10 @@ class Results
|
||||
) {
|
||||
// user chose "relational display field" in the
|
||||
// display options, so show display field in the cell
|
||||
$message = $default_function($dispval);
|
||||
$displayedData = $default_function($dispval);
|
||||
} else {
|
||||
// otherwise display data in the cell
|
||||
$message = $default_function($data);
|
||||
$displayedData = $default_function($displayedData);
|
||||
}
|
||||
}
|
||||
|
||||
@ -5340,7 +5347,7 @@ class Results
|
||||
}
|
||||
$result .= Util::linkOrButton(
|
||||
'sql.php' . Url::getCommon($_url_params),
|
||||
$message,
|
||||
$displayedData,
|
||||
$tag_params
|
||||
);
|
||||
}
|
||||
|
||||
@ -1644,7 +1644,7 @@ class Import
|
||||
$parser = new Parser($sql_query);
|
||||
|
||||
if (empty($parser->statements[0])) {
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
$statement = $parser->statements[0];
|
||||
|
||||
@ -2116,6 +2116,8 @@ class InsertEdit
|
||||
$special_chars = Util::addMicroseconds($column['Default']);
|
||||
} elseif ($trueType == 'binary' || $trueType == 'varbinary') {
|
||||
$special_chars = bin2hex($column['Default']);
|
||||
} elseif ('text' === substr($trueType, -4)) {
|
||||
$special_chars = stripcslashes(substr($column['Default'], 1, -1));
|
||||
} else {
|
||||
$special_chars = htmlspecialchars($column['Default']);
|
||||
}
|
||||
|
||||
@ -731,7 +731,6 @@ class LanguageManager
|
||||
public function availableLocales()
|
||||
{
|
||||
if (! $this->_available_locales) {
|
||||
|
||||
if (! isset($GLOBALS['PMA_Config']) || empty($GLOBALS['PMA_Config']->get('FilterLanguages'))) {
|
||||
$this->_available_locales = $this->listLocaleDir();
|
||||
} else {
|
||||
|
||||
@ -560,7 +560,7 @@ class Table
|
||||
|
||||
if (! $virtuality || $isVirtualColMysql) {
|
||||
if ($null !== false) {
|
||||
if ($null == 'NULL') {
|
||||
if ($null == 'YES') {
|
||||
$query .= ' NULL';
|
||||
} else {
|
||||
$query .= ' NOT NULL';
|
||||
@ -599,7 +599,7 @@ class Table
|
||||
case 'NULL':
|
||||
// If user uncheck null checkbox and not change default value null,
|
||||
// default value will be ignored.
|
||||
if ($null !== false && $null !== 'NULL') {
|
||||
if ($null !== false && $null !== 'YES') {
|
||||
break;
|
||||
}
|
||||
// else fall-through intended, no break here
|
||||
|
||||
@ -320,6 +320,11 @@ for ($columnNumber = 0; $columnNumber < $num_fields; $columnNumber++) {
|
||||
default:
|
||||
$columnMeta['DefaultType'] = 'USER_DEFINED';
|
||||
$columnMeta['DefaultValue'] = $columnMeta['Default'];
|
||||
|
||||
if ('text' === substr($columnMeta['Type'], -4)) {
|
||||
$columnMeta['Default'] = stripcslashes(substr($columnMeta['Default'], 1, -1));
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@ -14,7 +14,7 @@ parameters:
|
||||
- '#Call to an undefined method PhpMyAdmin\\Navigation\\Nodes\\Node\:\:getHiddenCount#'
|
||||
- '#Undefined variable: \$array#'
|
||||
- '#Undefined variable: \$(export_type|err_url|collation_connection|filename_template|transform_key|cn|goto|token_mismatch|auth_plugin|username|hostname|display_query)#'#Others
|
||||
- '#Undefined variable: \$(unsaved_values|is_upload)#'#tbl_change.php
|
||||
- '#Undefined variable: \$is_upload#'#tbl_change.php
|
||||
- '#Undefined variable: \$max_upload_size#'#tbl_import.php
|
||||
- '#Undefined variable: \$(repobase|fullrevision|revision|repobranchbase|branch)#'#Footer.php
|
||||
- '#Undefined variable: \$(containerBuilder)#'
|
||||
|
||||
@ -4,5 +4,5 @@
|
||||
checked="checked"
|
||||
{%- endif %}
|
||||
type="checkbox"
|
||||
value="NULL"
|
||||
value="YES"
|
||||
class="allow_null">
|
||||
|
||||
Loading…
Reference in New Issue
Block a user