Merge branch 'QA_4_9' into 'QA_5_0'

Signed-off-by: William Desportes <williamdes@wdes.fr>
This commit is contained in:
William Desportes 2019-08-20 10:38:52 +02:00
commit f428277bad
No known key found for this signature in database
GPG Key ID: 90A0EF1B8251A889
11 changed files with 38 additions and 21 deletions

View File

@ -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

View File

@ -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),

View File

@ -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']);
}

View File

@ -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
);
}

View File

@ -1644,7 +1644,7 @@ class Import
$parser = new Parser($sql_query);
if (empty($parser->statements[0])) {
return false;
return true;
}
$statement = $parser->statements[0];

View File

@ -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']);
}

View File

@ -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 {

View File

@ -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

View File

@ -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;
}
}

View File

@ -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)#'

View File

@ -4,5 +4,5 @@
checked="checked"
{%- endif %}
type="checkbox"
value="NULL"
value="YES"
class="allow_null">