diff --git a/.gitattributes b/.gitattributes index f4b122261e..3e4c51ae57 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,7 +10,6 @@ .eslintignore export-ignore .weblate export-ignore codecov.yml export-ignore -build.xml export-ignore infection.json.dist export-ignore phpcs.xml.dist export-ignore phpstan.neon.dist export-ignore diff --git a/.github/.readthedocs.yaml b/.github/.readthedocs.yaml new file mode 100644 index 0000000000..9753f83314 --- /dev/null +++ b/.github/.readthedocs.yaml @@ -0,0 +1,25 @@ +# Read the Docs configuration file for Sphinx projects +# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details + +# Required +version: 2 + +build: + os: ubuntu-24.04 + tools: + python: "3.12" + jobs: + post_create_environment: + - python -m pip install sphinx-rtd-theme + +# Build documentation in the "doc/" directory with Sphinx +sphinx: + configuration: doc/conf.py + # Fail on all warnings to avoid broken references + # fail_on_warning: true + +# Optionally build your docs in additional formats such as PDF and ePub +formats: + - pdf + - epub + - htmlzip diff --git a/.github/stale.yml b/.github/stale.yml deleted file mode 100644 index 8ed0f30aac..0000000000 --- a/.github/stale.yml +++ /dev/null @@ -1,23 +0,0 @@ -# Configuration for probot-stale - https://github.com/probot/stale - -# Number of days of inactivity before an Issue or Pull Request becomes stale -daysUntilStale: 60 -# Number of days of inactivity before a stale Issue or Pull Request is closed -daysUntilClose: 7 -# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable -exemptLabels: - - pinned - - security -# Label to use when marking as stale -staleLabel: wontfix -# Comment to post when marking as stale. Set to `false` to disable -markComment: > - This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. -# Comment to post when removing the stale label. Set to `false` to disable -unmarkComment: false -# Comment to post when closing a stale Issue or Pull Request. Set to `false` to disable -closeComment: false -# Limit to only `issues` or `pulls` -only: pulls diff --git a/.github/workflows/lint-and-analyse-php.yml b/.github/workflows/lint-and-analyse-php.yml index 70a14672ec..34ca2852cf 100644 --- a/.github/workflows/lint-and-analyse-php.yml +++ b/.github/workflows/lint-and-analyse-php.yml @@ -16,10 +16,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 12 @@ -28,7 +28,7 @@ jobs: run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - name: Cache Yarn dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} @@ -51,7 +51,7 @@ jobs: php-version: ["7.2"] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up PHP ${{ matrix.php-version }} uses: shivammathur/setup-php@v2 @@ -64,7 +64,7 @@ jobs: - name: Install Composer dependencies # Allow the previous check to fail but not abort if: always() - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v3 with: dependency-versions: highest # Ignore zip for php-webdriver/webdriver @@ -73,7 +73,7 @@ jobs: - name: Cache coding-standard # Allow the previous check to fail but not abort if: always() - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: .phpcs-cache key: phpcs-cache @@ -100,7 +100,7 @@ jobs: php-version: ["7.2"] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up PHP ${{ matrix.php-version }} uses: shivammathur/setup-php@v2 @@ -109,7 +109,7 @@ jobs: extensions: mbstring, iconv, mysqli, zip, gd, bz2 - name: Install Composer dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v3 with: dependency-versions: highest diff --git a/.github/workflows/lint-docs.yml b/.github/workflows/lint-docs.yml index 989a0ec79b..39829b86ed 100644 --- a/.github/workflows/lint-docs.yml +++ b/.github/workflows/lint-docs.yml @@ -16,7 +16,7 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Lint phpdoc blocks uses: sudo-bot/action-doctum@v5 diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml index b4ec30d4d7..c3ed4182d2 100644 --- a/.github/workflows/lock.yml +++ b/.github/workflows/lock.yml @@ -13,8 +13,8 @@ jobs: issues: write # for dessant/lock-threads to lock issues runs-on: ubuntu-latest steps: - - uses: dessant/lock-threads@v2 + - uses: dessant/lock-threads@v5 with: github-token: ${{ github.token }} process-only: 'issues' - issue-lock-inactive-days: 365 + issue-inactive-days: 365 diff --git a/.github/workflows/mutation-tests.yml b/.github/workflows/mutation-tests.yml index 6b1aa8b37b..df8de81e40 100644 --- a/.github/workflows/mutation-tests.yml +++ b/.github/workflows/mutation-tests.yml @@ -19,7 +19,7 @@ jobs: operating-system: [ubuntu-latest] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Fetch github.base_ref (for diffing) if: ${{ github.base_ref != '' }} @@ -42,7 +42,7 @@ jobs: tools: composer:v2, infection - name: Install Composer dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v3 with: dependency-versions: highest diff --git a/.github/workflows/other-tools.yml b/.github/workflows/other-tools.yml index 8b71cf79fe..86086f866a 100644 --- a/.github/workflows/other-tools.yml +++ b/.github/workflows/other-tools.yml @@ -16,15 +16,12 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v2 - with: - python-version: '3.7' + uses: actions/checkout@v4 - name: Install Sphinx for the documentation build - run: pip install 'Sphinx' + run: | + sudo apt-get update + sudo apt-get install -y sphinx-doc python3-sphinx - name: Build the documentation run: make -C doc html SPHINXOPTS='-n -W -a' @@ -36,7 +33,7 @@ jobs: php-version: ["7.2"] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install gettext run: sudo apt-get install -y gettext @@ -49,12 +46,12 @@ jobs: tools: composer:v2 - name: Install Composer dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v3 with: dependency-versions: highest - name: Set up Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 12 @@ -63,7 +60,7 @@ jobs: run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - name: Cache Yarn dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} @@ -71,9 +68,9 @@ jobs: ${{ runner.os }}-yarn- - name: Set up Python - uses: actions/setup-python@v2 + uses: actions/setup-python@v5 with: - python-version: '3.7' + python-version: '3.11' - name: Install Sphinx for the documentation build run: pip install 'Sphinx' diff --git a/.github/workflows/test-selenium.yml b/.github/workflows/test-selenium.yml index c12f0fa84d..2e02de5493 100644 --- a/.github/workflows/test-selenium.yml +++ b/.github/workflows/test-selenium.yml @@ -59,13 +59,10 @@ jobs: db-server: ["mysql:5.7"] steps: - name: Checkout code - uses: actions/checkout@v3 - - - name: Refresh apt cache - run: sudo apt-get update + uses: actions/checkout@v4 - name: Install gettext - run: sudo apt-get install -y gettext + run: sudo apt-get update && sudo apt-get install -y gettext - name: Generate mo files run: ./scripts/generate-mo --quiet @@ -77,26 +74,15 @@ jobs: extensions: mbstring, iconv, mysqli, zip, gd, bz2 - name: Install Composer dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v3 with: dependency-versions: highest - name: Set up Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 12 - - - name: Get Yarn cache directory path - id: yarn-cache-dir-path - run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - - - name: Cache Yarn dependencies - uses: actions/cache@v3 - with: - path: ${{ steps.yarn-cache-dir-path.outputs.dir }} - key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} - restore-keys: | - ${{ runner.os }}-yarn- + cache: 'yarn' - name: Install modules run: yarn install --non-interactive --production @@ -138,9 +124,9 @@ jobs: ./test/stop-local-server - name: Upload screenshots - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 if: ${{ failure() }} with: name: selenium-screenshots path: ${{ github.workspace }}/build/selenium/**/* - retention-days: 1 + retention-days: 3 diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3c4246db79..6a65f2357f 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -29,7 +29,7 @@ jobs: - { php-version: '8', experimental: false, arch: 's390x', exclude-phpunit-groups: 'extension-iconv,32bit-incompatible' } steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Write script # tcpdf allowed memory exhausted needs the memory_limit workaround @@ -43,7 +43,7 @@ jobs: apk add --update --no-cache \ php\$V-cli php\$V-mysqli php\$V-session php\$V-mbstring php\$V-ctype \ php\$V-iconv php\$V-xml php\$V-tokenizer php\$V-xmlwriter php\$V-simplexml \ - php\$V-dom php\$V-json php\$V-bz2 php\$V-curl php\$V-gd php\$V-zip \ + php\$V-dom php\$V-json php\$V-bz2 php\$V-curl php\$V-gd php\$V-zip php\$V-bcmath \ musl-locales musl-locales-lang \ gettext composer git && \ composer config version "$(php -r "define('VERSION_SUFFIX', ''); require_once('libraries/classes/Version.php'); echo \PhpMyAdmin\Version::VERSION;")" && \ @@ -67,13 +67,13 @@ jobs: continue-on-error: ${{ matrix.experimental }} strategy: matrix: - php-version: ["7.2", "7.3", "7.4", "8.0", "8.1", "8.2"] + php-version: ['7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4'] experimental: [false] os: [ubuntu-latest] phpunit-options: ['--testsuite unit'] php-extensions: ['mbstring, iconv, mysqli, zip, gd, bz2'] include: - - php-version: 'nightly' + - php-version: '8.5' experimental: true os: ubuntu-latest phpunit-options: '--configuration test/phpunit-php-nightly.xml' @@ -81,7 +81,7 @@ jobs: php-extensions: 'mbstring, iconv, mysqli, zip, bz2' steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: # Fetch some commits for Scrutinizer coverage upload fetch-depth: 15 @@ -100,7 +100,7 @@ jobs: coverage: xdebug - name: Install Composer dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v3 with: dependency-versions: highest composer-options: ${{ matrix.composer-options }} @@ -141,7 +141,7 @@ jobs: extension: ["dbase", "recode"] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: # Fetch some commits for Scrutinizer coverage upload fetch-depth: 15 @@ -160,7 +160,7 @@ jobs: coverage: xdebug - name: Install Composer dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v3 with: dependency-versions: highest @@ -191,18 +191,20 @@ jobs: coverage-reports: build/logs/clover.xml test-php-psr7-implementations: - name: Test on PHP (+ psr7-${{ matrix.psr-7-library }}) ${{ matrix.php-version }} and ${{ matrix.os }} - runs-on: ${{ matrix.os }} + name: Test on PHP ${{ matrix.php-version }} (+ psr7-${{ matrix.psr-7-library }}) + runs-on: ubuntu-latest strategy: fail-fast: false matrix: - php-version: ['7.3'] - os: [ubuntu-latest] + php-version: ['7.2'] php-extensions: ['mbstring, iconv, mysqli, zip, bz2'] - psr-7-library: ['guzzlehttp/psr7', 'nyholm/psr7', 'laminas/laminas-diactoros'] + psr-7-library: ['guzzlehttp/psr7', 'slim/psr7', 'nyholm/psr7'] + include: + # See: https://github.com/laminas/laminas-diactoros/releases/tag/2.18.0 + - {psr-7-library: 'laminas/laminas-diactoros', php-version: '8.0'} steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: # Fetch some commits for Scrutinizer coverage upload fetch-depth: 15 @@ -221,7 +223,7 @@ jobs: coverage: pcov - name: Install Composer dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v3 with: dependency-versions: highest @@ -262,10 +264,10 @@ jobs: runs-on: ubuntu-latest steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Set up Node - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: 12 @@ -274,7 +276,7 @@ jobs: run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT - name: Cache Yarn dependencies - uses: actions/cache@v3 + uses: actions/cache@v4 with: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} diff --git a/.github/workflows/update-po.yml b/.github/workflows/update-po.yml index 8656636cb5..6379eb96ed 100644 --- a/.github/workflows/update-po.yml +++ b/.github/workflows/update-po.yml @@ -21,7 +21,7 @@ jobs: php-version: ["8.1"] steps: - name: Checkout code - uses: actions/checkout@v3 + uses: actions/checkout@v4 - name: Install Gettext run: | @@ -34,7 +34,7 @@ jobs: tools: composer:v2 - name: Install Composer dependencies - uses: ramsey/composer-install@v2 + uses: ramsey/composer-install@v3 with: dependency-versions: highest diff --git a/.gitignore b/.gitignore index 531040374c..ba668571aa 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,5 @@ infection.log /js/vendor/openlayers/OpenLayers.js.LICENSE.txt /setup/styles.rtl.css /test/test_data/gis/ +/public/ +/app/ diff --git a/ChangeLog b/ChangeLog index 1a94cf618e..37a212b5ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,159 @@ phpMyAdmin - ChangeLog ====================== +5.2.2 (2025-01-21) +- issue [security] Fix for a path disclosure leak in the Monitoring tab +- issue Prevent the user from deleting system databases +- issue [security] Fix an XSS vulnerability when checking tables (PMASA-2025-1) +- issue [security] Fix an XSS vulnerability on the Insert tab (PMASA-2025-2) +- issue [security] Fix a possible glibc/iconv vulnerability (CVE-2024-2961, assigned PMASA-2025-3 but please note that phpMyAdmin is not vulnerable by default) +- issue Fix for sql-parser relating to quadratic complexity in certain queries, which could have caused long execution times. +- issue #17851 Fix total count of rows in not accurate +- issue #17766 Allow to open in a new tab copy and edit row actions +- issue #17599 Fix error when handling an user that is not in privileges table +- issue #17364 Fix error when trying to import a status monitor chart arrangement +- issue #18106 Fix renaming database with a view +- issue #18120 Fix bug with numerical tables during renaming database +- issue #16851 Fix ($cfg['Order']) default column order doesn't have have any effect since phpMyAdmin 4.2.0 +- issue #18138 Fix some issues with numerical table names +- issue #18112 Fix open base dir warning on git version class +- issue #18211 Fix the themes route missing the server ID +- issue Do not show "Original length undefined" on binary hex columns +- issue Fix wrong time zone when handling Git information +- issue #18195 Fix warning on non-existent table for XML export +- issue #18196 Fix errors of import notification +- issue #18093 Fix JS errors around "new user account" in some edge cases +- issue #16451 Increase password characters limit to 2000 during login +- issue #18177 Fix "IS NULL" is shown for non-nullable columns on search page +- issue #16199 Fix dragging of tables in designer +- issue #18268 Fix UI issue the theme manager is disabled +- issue #18258 Speed improvements when exporting a database +- issue #17702 Fix performance issue when handling large number of tables in a single database +- issue #18324 Fix UI defect on tracking versions table first column +- issue #18266 Fix disabling features (like `$cfg['Servers'][$i]['tracking'] = false;`) did not work +- issue #18296 Fixed query time measurement - measure time only for user queries +- issue #18235 Fix columns are misaligned for the "sys" database +- issue #18249 Speed improvements when browsing a database with multiple tables +- issue #18060 Fix Console height "Not a non-negative number" error +- issue #18188 Fix issue when editing GIS data +- issue Fix width/height of create routines modal and width of routines/triggers/events modals +- issue Stop pmadb database detection when all features are disabled +- issue Upgrade slim/psr7 to 1.4.1 for CVE-2023-30536 - GHSA-q2qj-628g-vhfw +- issue #17654 Fix unprivileged user cannot change password on MySQL >= 5.7.37 +- issue #18385 Add CVE MITRE link to allowed domains and use cve.org +- issue #18330 Fix TypeError when no-datetime field is modified +- issue #18212 Fix Query Builder doesn't replace a table name with it's alias in the `WHERE` block +- issue #18221 Keep the criteria box collapsed by the user when un-checking the criteria checkbox +- issue #18363 Fix colspan for actions column on database table list +- issue Fix double encoding on User Groups pages +- issue Fix list of users of an user group not showing up +- issue Fix duplicate query params in the SQL message card +- issue #18314 Fix dragged row in index form +- issue #17392 Fix the actions not being hidden in the Triggers, Routines, Events pages +- issue #18441 Fix execute routine page not working when not in a modal +- issue #18471 Fix SQL statement not being displayed correctly on RTL languages +- issue Fix state times not getting summed in the profiling table +- issue Fix a case where a fatal error message was not displayed +- issue #17420 Fix profiling chart not loading when profiling is activated +- issue #18159 Fix error when changing the number of chart columns in the monitor page +- issue #18403 Fix Uncaught SyntaxError: JSON.parse on makegrid conditions +- issue #17528 Fix double escaping of database group names in the navigation tree +- issue #18473 Fix the NULL not applied after clearing nullable field +- issue #18454 Fix date field calendar display when changing NULL state +- issue #18481 Fix missing pagination when using SELECT DISTINCT +- issue #18325 Allow hex representations for integers in the search box validation +- issue #14411 Fixed double tap to edit on mobile devices +- issue Update documentation to reflect that Node >= 12 is required to compile the JS and CSS files +- issue #18578 Fixed PDF export NULL values gives a type error +- issue #18605 Fixed issue when executing a stored procedure +- issue #18650 Fixed double escaping on foreign key relation link title +- issue #18533 Fixed wrong count for simulated queries +- issue #18611 Fixed an error when searching a table without conditions +- issue #18663 Fixed case where triggers are dropped when moving a table +- issue #17404 Fixed an error message after dropping a database +- issue #18714 Fixed incorrect formatting of the amount of table rows +- issue #18717 Fixed issue when deleting bookmarks +- issue #18713 Fixed some issues with the GIS editor +- issue #18722 Fixed generic error message in the home page +- issue #18693 Fixed enum/set value escaping +- issue #18769 Improved collations support for MariaDB 10.10 +- issue #17381 Fixed JS errors when editing indexes on create table +- issue #14402 Fix the PRIMARY label still shown when using two columns for a PK on create table +- issue #17347 Fixed JS errors when changing index settings on create table +- issue #18762 Fixed truncating tables when a VIEW is included +- issue Fix BETWEEN search does not validate input because of spaces +- issue Fix JS number validation does not validate when the input is empty or emptied +- issue #18561 Fix issue when adding System Monitor charts +- issue #17363 Fix duplicate route parameter after logging in +- issue #15670 Fix case where the data is truncated after changing a longtext column's collation +- issue #18797 Fixed support for ampersand as a arg separator +- issue #18834 Fixed case where column hash is empty in table relation page +- issue #17538 Fixed error when renaming an index +- issue #18865 Fix missing text-nowrap for timestamps columns +- issue #18613 Fixed routine editor showing wrong parameter type +- issue #18890 Fixed wrong row count when query has UNION +- issue #18949 Fixed natural sorting for items in the navigation section +- issue #18930 Fixed import of empty tables from MediaWiki +- issue #18940 Fixed issue when creating an unique key +- issue #19022 Fix case where tables from wrong database is loaded in navigation tree +- issue #18782 Fixed issue with role based auth for MySQL 8 +- issue #18593 Fix drop db line included in server export if exporting only data +- issue #18049 Also check that curl_exec is enabled for the new version check +- issue #19023 Fixed table size for ROCKSDB engine showing as unknown +- issue #18451 Fix when editing inline central column, Null is always preselected +- issue #18495 Fixed database export missing routines +- issue #19117 Allow changing the virtuality of a column without any other changes +- issue #18566 Fixed error when importing exported view with USE INDEX hint +- issue #17920 Fixed moving column with empty default value will replace it with '' +- issue #18006 Fixed moving columns causes the default uuid() value to get quotes around it +- issue #18962 Fixed move columns with ENUM() & DEFAULT causes invalid SQL +- issue #18276 Fix on update CURRENT_TIMESTAMP doesn't show as default in attributes +- issue #18240 Fix inserting value with UNIX_TIMESTAMP() without a parameter +- issue #19125 Fixed CodeMirror tooltip is below modals +- issue #18674 Fix formatted sql in browse table result has a linebreak after each token +- issue #18210 Fixed add replica replication user on MariaDB doesn't work (SQL syntax) +- issue #19041 Fix footer.twig gets printed to Binary File Download +- issue #19091 Fix to stop processing queries on error +- issue #18241 Fix copy SQL query button on error messages +- issue #17190 Fix an error with SELECT ... FOR UPDATE queries +- issue #19145 Remove duplicate server and lang parameters from links +- issue #19158 Fix an issue with backticks on the query generator +- issue #19174 Fix an issue with column alias with asterisk on the query generator +- issue #19146 Fix column sorting with limit subquery +- issue #19152 Fix the number of lines being ignored in GIS visualization after a search +- issue #19189 Fix issue with column sorting when using 'group by' +- issue #19188 Fix issue with simulated queries reporting syntax errors +- issue #19141 Add cookie prefix '-__Secure-' to cookies to help prevent cookie smuggling +- issue #19218 Fix textarea horizontal resizing with Bootstap theme +- issue #19199 Add support for fractional seconds to current_timestamp() +- issue #19221 Fix query statistics for queries with count(*) +- issue #19203 Fix single quotes and backslashes for the query generator +- issue #19163 Fix queries with IS NULL or IS NOT NULL for the query generator +- issue #19181 Fix query generator support for IN() and NOT IN() +- issue #19167 Fix criteria on column '*' for the query generator +- issue #19213 Fix possible issue when exporting a large data set +- issue #19217 Fix issue when editing a cell of a JSON column +- issue #19244 Add yarn 1.22 to the package.json's packageManager field +- issue #19185 Fix visual issue when a row has only empty cells +- issue #19257 Fix issue when adding an index with an invalid name +- issue #19276 Fix compatibility with Twig 3.12 +- issue #19283 Fix issue when the server starts with skip-innodb option +- issue #19299 Fix charset in procedure's parameter type +- issue #19316 Fix input size for hexadecimal values +- issue #19321 Suppress deprecation message of E_STRICT constant +- issue Fix PHP 8.4 `str_getcsv` `$escape` parameter deprecation +- issue #19426 Fix PHP warnings when the column is a `COMPRESSED BLOB` +- issue Allow opening server breadcrumb links in new tab with Ctrl/Meta key +- issue #19500 Use `KILL` instead of `CALL mysql.rds_kill` for non super users +- issue Fix "copy to clipboard" was adding a blank row for each repeating header row +- issue Fix TCPDF translations +- issue Remove underline for links on Bootstrap theme +- issue Fix sql editor height on multi-table query +- issue #18852 Fix notification color scheme on the Bootstrap dark theme +- issue #14542 Show the query even if no results are found in the Table search +- issue #16936 Fixed import (e.g. ods) doesn't respect database default collation +- issue #19000 Disable autocomplete for the create table/db name inputs + 5.2.1 (2023-02-07) - issue #17522 Fix case where the routes cache file is invalid - issue #17506 Fix error when configuring 2FA without XMLWriter or Imagick @@ -115,835 +268,6 @@ phpMyAdmin - ChangeLog - issue Add the Bootstrap theme - issue #17499 Remove stickyfilljs JavaScript dependency -5.1.4 (not yet released) -- issue #17287 Fixed sorting the database list with "statistics" enabled on "Data" column creates a PHP type error -- issue #17368 Fix for invalid cache when losing access to config storage after it being cached -- issue #17387 Fix session cookie not respecting the CookieSameSite configuration directive in PHP 7.2 -- issue #16769 Fix create index form accepting too many columns -- issue #16816 Disable editing to system schemas -- issue #16853 Add better error handling when IndexedDB is not working -- issue Fixed incorrect escaping of special MySQL characters on some pages -- issue #17188 Fix GIS visualization with an edited query -- issue #17418 Remove the use of the deprecated `strftime` function in OpenDocument exports -- issue #17111 Enable tabindex recompute on preview button while insert new rows -- issue #17474 Fix invalid SQL generated when PRIMARY/UNIQUE key contains a POINT column -- issue #17484 Fix setup's CSS not loading when the URL doesn't have a trailing slash -- issue #17494 Remove jQuery SVG JavaScript dependency -- issue #17335 Fix column visibility dropdown when the column name is too long -- issue #17445 Fix issue when exporting using Firefox or Safari on PHP 8.1.4 -- issue Update JavaScript dependencies -- issue #17428 Fix case where errors were thrown when browsing a table -- issue #17508 Fix UI issue when user accounts page has the initials navigation bar - -5.1.3 (2022-02-10) -- issue #17308 Fix broken pagination links in the navigation sidebar -- issue #17331 Fix MariaDB has no support for system variable "disabled_storage_engines" -- issue #17315 Fix unsupported operand types in Results.php when running "SHOW PROCESSLIST" SQL query -- issue #17288 Fixed importing browser settings question box after login when having no pmadb -- issue #17288 Fix "First day of calendar" user override has no effect -- issue #17239 Fixed repeating headers are not working -- issue #17298 Fixed import of email-adresses or links from ODS results in empty contents -- issue #17344 Fixed a type error on ODS import with non string values -- issue #17239 Fixed header row show/hide columns buttons on each line after hover are shown on each row -- issue [security] Fix for path disclosure under certain server configurations (if display_errors is on, for instance) - -5.1.2 (2022-01-20) -- issue Replaced MySQL documentation redirected links -- issue #16960 Fix JS error on Designer visual builder on some modal buttons -- issue Re-build openlayers JS dependency from the source files and provide a smaller JS bundle -- issue Fixed imports and theme detection depending on the current working dir -- issue Update JavaScript dependencies -- issue #16935 Remove hardcoded row length for "$cfg['CharTextareaRows']" to allow back values < 7 -- issue #16977 Fix encoding of enum and set values on edit value -- issue Fix set value as selected when it has special chars on edit value enum -- issue #16896 Fix distinct URLs broken on nullable text fields -- issue Fixed two possible PHP errors using INT data -- issue Fixed possible warning "Undefined index: output_format" on export -- issue Fixed warning "Undefined index: ods_recognize_percentages" on Import ODS -- issue Fixed warning "Undefined array key "ods_recognize_currency" on Import ODS -- issue #16982 Fixed "Notice: Undefined index: foreign_keys_data" on Designer remove relation -- issue Backquote phpMyAdmin table name on internal relation delete query for Designer -- issue #16982 Do not try to delete internal relations if they are not configured -- issue #16982 Show success messages on Designer for add and remove relation operations -- issue Fixed possible "Undefined index: clause_is_unique" on replace value in cell -- issue #16991 Fixed case where $_SERVER['REQUEST_METHOD'] is undefined -- issue Fixed configuration error handler registration -- issue #16997 Fixed server variables get/set value not working on multi server server > 1 -- issue #16998 Fixed Multi table query submit on server > 1 logged out user -- issue #17000 Fixed Multi edit on central columns on server > 1 logged out user -- issue #17001 Fix PHP error on query submit without a table name on multi table query box -- issue #16999 Fixed multi table query results shows for 1 sec and then page refreshes -- issue Fixed a non translated button text on central columns add -- issue Fixed table width on Query by example page for large screens -- issue #16975 Fixed NULL default had a value on insert with datatime fields -- issue #16994 Fixed missing privilege escaping when assigning multiple databases with '_' to an user -- issue #16864 Fixed the margin on the last database of the tree on all themes when scrollbars are displayed -- issue #17011 Fixed the database tree line that was not continuous on database groups -- issue Build more syntax correct URLs on JS internal redirects -- issue #16976 Fix wrong link when a table is moved from a database to another -- issue #16985 Fix case-sensitive issue of innodb_file_format=barracuda vs innodb_file_format=Barracuda -- issue Fixed duplicate quote in navigation nodes -- issue #17006 Disable the URL limit for the MariaDB analyser feature -- issue Fix calls to fetchRow using two parameters but the function has only one parameter -- issue #17020 Fixed "Notice Undefined index: sql_query" on Insert page -- issue Fix reported "Undefined index: FirstDayOfCalendar" -- issue Fix reported "Undefined index: environment" -- issue Fix "TypeError: strlen() expects parameter 1 to be string, null given" on databases listing -- issue #16973 Fix "Undefined array key "n0_pos2_name"" on databases listing -- issue Use the correct min MySQL version for axis-order (8.0.1) instead of (8.0.11) -- issue Use the queries we asked the user confirmation for on DELETE and TRUNCATE table actions -- issue #16994 Fixed editing specific privileges for a database covered by a wildcard privilege -- issue #16994 Fixed escaping of the database name for databases containing '_' on users edit -- issue #16994 Only escape once on grant/revoke privileges for databases containing '_' or '%' -- issue #16994 Only show databases without a privilege on multi select for user grant databases -- issue Removed un-expected query success message from the Table export page -- issue #17026 Handle possible invalid boolean values injected in SaveDir or UploadDir causing "TypeError: mb_substr()" -- issue #16981 Enable cookie parameter "SameSite" on "phpMyAdmin" cookie for PHP >= 7.3 -- issue #16966 Encode "#" to have the anchor part of the destination URL on SQL highlight terms URLs -- issue #17004 Fix PHP errors due to removed variable "innodb_file_format" on MariaDB >= 10.6.0 and MySQL >= 8.0.0 -- issue #16842 Fixed missing password modes on PerconaDB -- issue #16947 Fix "Change login information" form not working -- issue #17004 Fix Advisor for MariaDB >= 10.5 because of removed "innodb_log_files_in_group" variable -- issue #17037 Fix change structure does not surface errors -- issue #17016 Fixed online Transaction, errors not reported on structure edit -- issue #17042 Fix SQL escaping bug on DB name with special chars on submit query with rollback option -- issue #17027 Better handle the display of sorted binary columns in results summary -- issue #16398 Quote non numeric values on parameterized queries -- issue Fixed duplicate HTML escaping on foreign keys select value modal -- issue #15370 Fixed edit routine UI incorrectly removes too many escape slashes -- issue #14631 Fix enum with comma produces incorrect search dropdown on search pages -- issue Fix gis visualization position and limit parameters have no effect -- issue #16995 Fix edit binary foreign key adds a 1 to the value on the selected value -- issue #13614 Fixed escaping the database names when granting privileges on tables -- issue #11834 Fixed adding a new user on "privileges" tab of a table with a database name using a "_" character -- issue #17033 Fixed scaling of line width and point size in GIS visualization -- issue #17054 Removed "DEL" character from generated random strings for Blowfish secret auto-generated by setup -- issue #17019 Fixed "Browse" button visible when creating a table from the database structure view -- issue #16804 Fixed numbers where left-aligned rather than right-aligned -- issue Fixed Metro theme text color for buttons in the browse table navigation bar -- issue #14796 Fix export Database page, UI prevents from exporting procedures only -- issue #15225 Fix Command+click on macOS opens links in same tab -- issue #17014 Fix column names in first row when importing from CSV where the first line contains column names -- issue Fix prevent scrolling the page when scrolling in GIS visualization -- issue Fix GIS visualization save file with a different label or column -- issue Fixed GIS saving image as png with a label -- issue Fixed if label is just the number zero, it was treated as no label in the OpenLayers map -- issue #17039 Fix unable to have 2FA working with a "pmadb" config value != phpmyadmin -- issue #17079 Fixed missing spatial functions in Insert/Edit page -- issue Fixed broken docs link after a FK data type mismatch error -- issue Fix don't add multiple OpenLayers maps, remove listeners on dispose on GIS visualization -- issue #14502 Uncheck the "ignore" checkbox when the user chooses a value in the foreign key list on Insert page -- issue #14502 Uncheck the "ignore" checkbox when the user saves the GIS value on Insert page -- issue #17018 Fixed cannot save data from GIS editor for spatial column on Insert page -- issue #17084 Fixed ErrorHandler not showing errors when phpMyAdmin session does not work at all -- issue #17062 Fixed pagination issues when working with identically named tables in separate databases -- issue #17046 Fix "Uncaught TypeError: htmlspecialchars() expects parameter 1 to be string, null given" -- issue #16942 Fix table Import with CSV using LOAD DATA LOCAL causes error "LOAD DATA LOCAL INFILE is forbidden" -- issue #16942 Fix auto-detection for "LOAD DATA LOCAL INFILE" LOCAL option -- issue #16067 Make select elements with multiple items resizable -- issue Fix the display of Indexes that use Expressions and not column names -- issue Allow to create the phpMyAdmin storage database using a different name than "phpmyadmin" using the interface -- issue #17092 Document that "$cfg['Servers'][$i]['designer_coords']" was removed in version 4.3.0 -- issue #16906 Support special table names for pmadb storage table names -- issue #16906 Fix a caching effect on the feature list after creating the tables -- issue #16906 Better report errors when creating the pmadb or it's tables -- issue #16906 Create the pmadb tables using the names configured and not the default names -- issue #16906 Create the phpMyAdmin storage database using the configured "['pmadb']" name and not always "phpmyadmin" -- issue #16906 Prevent incorrect overriding of configured values after a pmadb fix -- issue #16906 Use the control connection to create the storage database and tables and not the user connection -- issue #16693 Fix can't see SQL after adding a new column -- issue #12753 Show table structure after adding a new column -- issue Fix a PHP notice when logging out -- issue #17090 Fix bbcode not rendered for error messages on setup -- issue #17198 Fix the database selection when the navigation tree is disabled -- issue #17228 Fixed copy to clipboard with NULL values gives non usable text -- issue #16746 Replace samyoul/u2f-php-server by code-lts/u2f-php-server -- issue #16005 Performance improvement on the Import and Export pages -- issue #17247 Fix triple HTML encoding -- issue #17259 Fix broken link in the Simulate DML query modal -- issue #16746 Update tcpdf dependency to ^6.4.4 for PHP 8.1 compatibility -- issue #16746 Update twig dependency to "^2.14.9 || ^3.3.5" for PHP 8.1 compatibility -- issue [security] Add configuration directive $cfg['Servers'][$i]['hide_connection_errors'] to allow hiding host names and other error details when login fails -- issue [security] Add configuration directive $cfg['URLQueryEncryption'] to allow encrypting senstive information in the URL -- issue [security] Fix a scenario where an authenticated user can disable two factor authentication (PMASA-2022-1) -- issue [security] Fix XSS and HTML injection attacks in the graphical setup page (PMASA-2022-2) - -5.1.1 (2021-06-04) -- issue #13325 Fixed created procedure shows up in triggers and events and vice-versa -- issue Fixed adding an event shows an empty row -- issue #16706 Fixed a PHP error when visualizing a nullable geometry column -- issue Fixed a PHP type error when exporting triggers to ODF -- issue #16659 Fixed the Column Drop arrow to make it responsive -- issue #16677 Improved the Font size of an executed SQL query -- issue #16677 Fixed Metro theme DB tree background -- issue #16713 Fixed "PhpMyAdmin\Url::getFromRoute" PHP error for old config values -- issue #16713 Add a legacy fallback for the old config value of "$cfg['DefaultTabDatabase']" and others -- issue #16698 Fix relative fallback URL to './' instead of '/' -- issue Fixed Yaml export to quote strings even when they are numeric -- issue #16704 Fixed PHP type errors on the substring transformation -- issue #14026 Fixed error messages and conditions for MD5 and AES_* functions -- issue #16708 Fixed PHP "Uncaught TypeError: hash_hmac()" on double quick edit -- issue #16709 Fix TCPDF open_basedir issue due to internal guessing code from TCPDF -- issue #16729 Fixed the silencing error management for PHP >= 8.0 -- issue #16604 Set back tables width like in 5.0 versions -- issue #16716 Fixed rename button disappears after a column drop on table structure page -- issue #15628 Fixed "JSON encoding failed: Malformed UTF-8 characters" when browsing data that uses binary to IP transformation -- issue #14395 Fixed display chart with timeline & series name column trigger JS error -- issue #16738 Fixed quick search submit is not working on multi server server > 1 -- issue #16717 Fixed main drawer js call slowing down the page and remove the reflow effect -- issue Fixed a PHP notice "Undefined index: pred_username" -- issue #16744 Fixed "Uncaught TypeError: XMLWriter::writeAttribute()" on Designer SVG export -- issue Fixed an PHP undefined index notice on export -- issue #14555 Fixed JavaScript error when auto completion is open (upgraded CodeMirror to 5.60.0) -- issue #16647 Fixed preferences form not showing texts and not respecting TabsMode config -- issue Fixed escape_mysql_wildcards Twig filter -- issue Change text from "Null" to "NULL" on grid edit popup -- issue Translate a non translated string on a change password page -- issue Fix designer modal buttons sizes for pmahomme and bootstrap themes -- issue #16694 Fixed "Triggers" page not visible for user table specific privileges -- issue #14430 Fixed execute button is disabled for routines -- issue #16703 Fixed SQL option to Export specific rows from a table -- issue #16656 Fixed error messages are not always translated -- issue #16728 Fixed wrong SQL query built on table structure index for new column -- issue #16647 Fixed table search forms not showing texts and not respecting TabsMode config -- issue #16758 Fixed copy to clipboard feature not working on ja or zh_TW languages because of the non ascii colon -- issue #16601 Update tcpdf dependency to ^6.4.1 -- issue #16770 Fixed a notice or warning, when clicking on Structure tab -- issue #16756 Fixed refresh UI on server status -- issue Fixed a PHP notice when searching for .git/commondir on the login page for users using ShowGitRevision -- issue Fixed reported PHP notice on export save template -- issue Fixed reported PHP warnings on server status page -- issue #15629 Fixed datetime decimals displayed (.00000) after edit -- issue #16780 Fixed new event shows an empty row -- issue #16765 Fixed new lines in text fields are doubled -- issue Fix "Connection" label always shown on table create, should be hidden like it's input -- issue #16773 Fix do not use cast as binary for an empty text value on edit button condition -- issue Fixed a JS error on a missing script on zoom search -- issue Added button style on the reset charts of zoom search -- issue Fixed number of rows not kept when changing sort by index value -- issue #16784 Fixed spacing between icons when using NavigationTreeDefaultTabTable2 configuration -- issue #16786 Fixed browser error when clicking the logo with NavigationLogoLink configuration -- issue Fixed a type error when getting the special schema links -- issue #16789 Fix create PHP code removes ; from SQL query on Structure snapshot -- issue #16791 Fixed "Undefined index table_schema" on special schema table -- issue Fixed "DESCRIBE FILES;" broken links in query results -- issue #16790 Fixed "Undefined index field_name" PHP error -- issue #16605 Fixed vertical alignment issue on tables for pmahomme theme -- issue #16798 Fix ServerConfigChecks: Link 'trusted proxies list' not terminated properly (translation) -- issue #16805 Fixed shortcut keys not working -- issue #16821 Fix "Show all rows" un-check checkbox creates a JS error if the page was reloaded -- issue Remove redundant jQuery Event Drag plugin -- issue Fix PHP type error on GIS nullable data -- issue Fix not working export to PNG, SVG, PDF on GIS visualization -- issue Fix float values type errors on GIS export to PNG, SVG, PDF -- issue #16792 Fixed URL generation by removing un-needed & escaping for & char -- issue #16777 Fixed Non-UTF8 Primary Key text value edit row -- issue #16836 Fixed extra whitespaces in binary edit values causes a JS validation error message -- issue #15566 Support RTL mode on the Designer -- issue #16810 Fixed SQL query shown twice on drop column success -- issue #16404 Fixed JS password generation fails after a new user creation failure -- issue #16837 Fixed PHP error on execute query "create table event(...)" -- issue Fixed a PHP warning that was occuring on wrong chmod on config files -- issue Fixed a JS error on dismiss notification modal -- issue #16793 Upgrade CodeMirror to 5.61.0 to fix a JS error on scroll in SQL query box -- issue Fix password management for Percona Server lacking PASSWORD function -- issue Fixed "data is undefined" JS error -- issue Fixed 2 un-translated buttons on central columns edit -- issue #16810 Fixed SQL query shown twice on central columns actions -- issue #16771 Fixed PHP array export to work on very large datasets -- issue #16847 Fixed JSON export nullable binary PHP error -- issue #16847 Fixed JSON export text fields and binary data -- issue #14773 Fix exporting a raw query is not working -- issue #16734 Fixed memory limit reached, use SQL COUNT(*) instead of fetch and count results -- issue #16723 Fixed option to perform ALTER ONLINE is not available on edit of an existing column -- issue Add missing CSS style on "Filter" button on monitor results table header -- issue Fixed non working "Filter" button on monitor results table header -- issue #16420 Fixed single clicking on row starts editing even if GridEditing is set to double-click -- issue #16854 Fixed "Undefined index: SERVER_SOFTWARE" on very minimal PHP FPM setups -- issue #16863 Fixed replication setting up a replica is not working -- issue #16843 Fixed vertical alignment in Metro and pmahomme themes on user accounts overview -- issue Fixed "phpMyAdmin configuration storage" link on settings page warning -- issue #16871 Fixed PHP and JS errors on normalization steps -- issue Fixed CSS missing classes on normalization buttons -- issue #16437 Fixed sticky top position when using smaller screen sizes -- issue #16895 Fixed wrong table count on space separated numbers -- issue #16882 Fixed table delete resets count to 0 -- issue #16892 Fixed current_timestamp() stringified on INSERT for date field -- issue #16911 Fixed PHP 8.1 "Method mysqli::get_client_info() is deprecated" -- issue Fix "array_fill(): Argument #2 ($count) must be of type int, string" for "$cfg['InsertRows']" -- issue #14130 Created new messages for U2F errors -- issue #16920 Fixed "Uncaught TypeError: PhpMyAdmin\Import::detectType()" on ODS import -- issue #16926 Fixed ODS import warning: Undefined array key "ods_empty_rows" -- issue #16888 Fixed JS error on renaming tables in saved Designer page -- issue #16504 Fixed create view dialog is too big and won't scroll (on small screens) -- issue #16931 Fixed php notice "Undefined index: utf8mb3" on MySQL 8.0.11+ servers with default utf8 server charset - -5.1.0 (2021-02-24) -- issue #15350 Change Media (MIME) type references to Media type -- issue #15377 Add a request router -- issue Automatically focus input in the two-factor authentication window -- issue #15509 Replace gender-specific pronouns with gender-neutral pronouns -- issue #15491 Improve complexity of generated passwords -- issue #14909 Add a configuration option to define the 1st day of week -- issue #12726 Made user names clickable in user accounts overview -- issue #15729 Improve virtuality dropdown for MariaDB > 10.1 -- issue #15312 Added an option to perform ALTER ONLINE (ALGORITHM=INPLACE) when editing a table structure -- issue Added missing 'IF EXISTS' to 'DROP EVENT' when exporting databases -- issue #15232 Improve the padding in query result tool links -- issue #15064 Support exporting raw SQL queries -- issue #15555 Added ip2long transformation -- issue #15194 Fixed horizontal scroll on structure edit page -- issue #14820 Move table hide buttons in navigation to avoid hiding a table by mistake -- issue #14947 Use correct MySQL version if the version is 8.0 or above for documentation links -- issue #15790 Use "MariaDB Documentation" instead of "MySQL Documentation" on a MariaDB server -- issue #15880 Change "Show Query" link to a button -- issue #13371 Automatically toggle the radio button to "Create a page and save it" on Designer -- issue #12969 Tap and hold will not dismiss the error box anymore, you can now copy the error -- issue #15582 Don't disable "Empty" table button after clicking it -- issue #15662 Stay on the structure page after editing/adding/dropping indexes -- issue #15663 show structure after adding a column -- issue #16005 Remove symfony/yaml dependency -- issue #16005 Improve performance of dependency injection system by removing yaml parsing -- issue #15447 Disable phpMyAdmin storage database checkbox on databases list -- issue #16001 Add autocomplete attributes on login form -- issue #13519 Add "Preview SQL" option on Index dialog box when creating a new table -- issue #15954 Fixed export maximal length of created query input is too small -- issue Redesign the server status advisor page -- issue #13124 Use same height for SQL query textarea and Columns select in SQL page -- issue #16005 Add a new vendor constant "CACHE_DIR" that defaults to "libraries/cache/" and store routing cache into this folder -- issue #16005 Warm-up the routing cache before building the release -- issue #16005 Use --optimize-autoloader when installing composer vendors before building the release -- issue #15992 Add back the table name to the printable version on "Structure" page -- issue #14815 Allow simplifying exported view syntax to only "CREATE VIEW" -- issue #15496 Add $cfg['CaptchaSiteVerifyURL'] for Google ReCaptcha siteVerifyUrl -- issue #14772 Add the password_hash PHP function as an option when inserting data -- issue #15136 Add a notice for Hex converter giving invalid results -- issue #16139 Use a textarea for JSON columns -- issue #16223 Make JSON input transformation editor less narrow -- issue #14340 Add a button on Export Page to show the SQL Query -- issue #16304 Add support for INET6 column type -- issue #16337 Fix example insert/update query default values -- issue #12961 Remove indexes from table relation -- issue #13557 Use a full list of functions instead of a separated one on insert/edit page "Function" selector -- issue #14795 Include routines in the export in a predictable order -- issue #16227 Fixed autocomplete is not working in case the table name is quoted by "`" symbols -- issue #15463 Force BINARY comparison when looking at privileges to avoid an SQL error on privileges tab -- issue #16430 Fixed Windows error message uses trailing / instead of \ -- issue #16316 Added support for "SameSite=Strict" on cookies using configuration "$cfg['CookieSameSite']" -- issue #16451 Fixed AWS RDS IAM authentication doesn't work because pma_password is truncated -- issue #16451 Show an error message when the security limit is reached instead of silently trimming the password to avoid confusion -- issue #15001 Add back Login Cookie Validity setting to the features form -- issue #16457 Add config parameters to support third-party ReCaptcha v2 compatible APIs like hCaptcha -- issue #13077 Moved tools section to left on large devices (Bootstrap xl) -- issue #15711 Moved some buttons to left on large devices (Bootstrap xl) -- issue #15584 Add $cfg['MysqlSslWarningSafeHosts'] to set the red text black when ssl is not used on a private network -- issue #15652 Replace deprecated FOUND_ROWS() function call on "distinct values" feature -- issue Export blobs as hex on JSON export -- issue #16095 Fix leading space not shown in a CHAR column when browsing a table -- issue Make procedures/functions SQL editor both side scrollable -- issue #16407 Bump pragmarx/google2fa conflict to >8.0 -- issue #14953 Added a rename Button to use RENAME INDEX syntax of MySQL 5.7 (and MariaDB >= 10.5.2) -- issue #16477 Fixed no Option to enter TABLE specific permissions when the database name contains an "_" (underscore) -- issue #16498 Fixed empty text not appearing after deleting all Routines -- issue #16467 Fixed a PHP notice "Trying to access array offset on value of type null" on Designer PDF export -- issue #15658 Fixed saving UI displayed columns on a non database request fails -- issue #16495 Fix drop tables checkbox is above the checkbox for foreign keys -- issue #16485 Fix visual query builder missing "Build Query" button -- issue #16565 Added 'IF EXISTS' to 'DROP EVENT' when updating events to avoid replication issues -- issue Removed metro fonts that where Apache-2.0 files that are incompatible with GPL-2.0 -- issue #16464 Made the relation view default to the current database when creating relations -- issue #16463 Fixed 'REFERENCES' privilege checkbox's title on new MySQL versions and on MariaDB -- issue #16405 Added jest as a Unit Testing tool for our javascript code -- issue #16252 Fixed the too small font size when editing rows (textareas) -- issue #16585 Fixed BLOB to JPG transformation PHP errors -- issue Made the console setup async to avoid blocking the page render -- issue #16429 Use PHP 8.0 fixed version (commit) for TCPDF -- issue #16005 Major performance improvements on browsing a lot of rows -- issue #16595 Fixed editing columns having a `_` in their name in specific conditions -- issue #16608 Fix "Sort by key" restore auto saved value -- issue #16611 Fixed unable to add tables to rename aliases twice on Export -- issue #16621 Fixed link HTML messed up in Advisor -- issue #16622 Fixed Advisor formatting incorrect for long_query_time notice -- issue #15389 Fixed reset current page indicator after deleting all rows to current page and not page 1 -- issue #15997 Fixed auto save query -- issue #15997 Made auto saved query database or database+table independent -- issue #16641 Fixed query generation that was allowing JSON to have a length -- issue #15994 Fixed the selected value detection for "on update current_timestamp" -- issue #16614 Fixed PHP 8.0 dataseek offset call to the MySQLI extension -- issue #16662 Fixed Uncaught TypeError on "delete" button click of a database search results page -- issue Fixed Undefined index: selected_usr when the user tried to delete no selected user -- issue #16657 Fixed the QBE interface when the configuration storage is not enabled -- issue #16479 Fix our Selenium test-suite -- issue #16669 Fixed table search modal for BETWEEN -- issue #16667 Fixed LIKE and TINYINT in search not working properly -- issue #16424 Fixed numerical search in table and zoom -- issue Improve the version handling (new Version class) and add a VERSION_SUFFIX for vendors -- issue #14494 Fix uncaught TypeError when editing partitioning -- issue #16525 Fix PHP 8.0 failing tests when comparing 0 to '' -- issue #16429 Fixed PHP 8.0 errors on preg_replace and operand types -- issue #16490 Fixed PHP 8.0 function libxml_disable_entity_loader() is deprecated -- issue #16429 Fixed failing unit tests on PHP 8.0 -- issue #16609 Fixed Sql.rearrangeStickyColumns is not a function - -5.0.4 (2020-10-15) -- issue #16245 Fix failed Zoom search clears existing values -- issue Fixed a PHP error when reporting a particular JS error -- issue #16326 Fixed latitude and longitude swap for geometries in edit mode -- issue #16032 Fix CREATE TABLE not being tracked when auto tracking is enabled -- issue #16397 Fix compatibility problems with older PHP versions (also issue #16399) -- issue #16396 Fix broken two-factor authentication - -5.0.3 (2020-10-09) -- issue #15983 Require twig ^2.9 -- issue Fix option to import files locally appearing as not available -- issue #16048 Fix to allow NULL as a default bit value -- issue #16062 Fix "htmlspecialchars() expects parameter 1 to be string, null given" on Export xml -- issue #16078 Fix no charts in monitor when using a decimal separator "," -- issue #16041 Fix IN(...) clause doesn't permit multiple values on "Search" page -- issue #14411 Support double tap to edit on mobile -- issue #16043 Fix php error "Use of undefined constant MYSQLI_TYPE_JSON" when using the mysqlnd extension -- issue #14611 Fix fatal JS error on index creation after using Enter key to submit the form -- issue #16012 Set "axis-order" to swap lon and lat on MySQL >= 8.1 -- issue #16104 Fixed overwriting a bookmarked query causes a PHP fatal error -- issue Fix typo in a condition in the Sql class -- issue #15996 Fix local setup doc links pointing to a wrong location -- issue #16093 Fix error importing utf-8 with bom sql file -- issue #16089 2FA UX enhancement: autofocus 2FA input -- issue #16127 Fix table column description PHP error when ['DisableIS'] = true; -- issue #16130 Fix local documentation links display when a PHP extension is missing -- issue Fix some twig code deprecations for php 8 -- issue Fix ENUM and SET display when editing procedures and functions -- issue Keep full query state on "auto refresh" process list -- issue Keep columns order on "auto refresh" process list -- issue Fixed editing a failed query from the error message -- issue #16166 Fix the alter user privileges query to make it MySQL 8.0.11+ compatible -- issue Fix copy table to another database when the nbr of DBs is > $cfg['MaxDbList'] -- issue #16157 Fix relations of tables having spaces or special chars not showing in the Designer -- issue #16052 Fix a very rare JS error occuring on mousemove event -- issue #16162 Make a foreign key link clickable in a new tab after the value was saved and replaced -- issue #16163 Fixed a PHP notice "Undefined index: column_info" on views -- issue #14478 Fix the data stream when exporting data in file mode -- issue #16184 Fix templates/ directory not found error -- issue #16184 Remove chdir logic to fix PHP fatal error "Uncaught TypeError: chdir()" -- issue Support for Twig 3 -- issue Allow phpmyadmin/twig-i18n-extension ^3.0 -- issue #16201 Trim spaces for integer values in table search -- issue #16076 Fixed cannot edit or export TIMESTAMP column with default CURRENT_TIMESTAMP in MySQL >= 8.0.13 -- issue #16226 Fix error 500 after copying a table -- issue #16222 Fixed can't use the search page when the table name has special characters -- issue #16248 Fix zoom search is not performing input validation on INT columns -- issue #16248 Fix javascript error when typing in INT fields on zoom search page -- issue Fix type errors when using saved searches -- issue #16261 Fix missing headings on modals of "User Accounts -> Export" -- issue #16146 Fixed sorting did not keep the selector of number of rows -- issue #16194 Fixed SQL query does not appear in case of editing view where definer is not you on MySQL 8 -- issue #16255 Fix tinyint(1) shown as INT on Search page -- issue #16256 Fix "Warning: error_reporting() has been disabled for security reasons" on php 7.x -- issue #15367 Fix "Change or reconfigure primary server" link -- issue #15367 Fix first replica links, start, stop, ignore links -- issue #16058 Add "PMA_single_signon_HMAC_secret" for signon auths to make special links work and udate examples -- issue #16269 Support ReCaptcha v2 checkbox width "$cfg['CaptchaMethod'] = 'checkbox';" -- issue #14644 Use Doctum instead of Sami -- issue #16086 Fix "Browse" headings shift when scrolling -- issue #15328 Fix no message after import of zipped shapefile without php-zip -- issue #14326 Fix PHP error when exporting without php-zip -- issue #16318 Fix Profiling doesn't sum the number of calls -- issue #16319 Fixed a Russian translation mistake on search results total text -- 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 -- issue #16342 Fixed multi-table query (db_multi_table_query.php) alias show the same alias for all columns -- issue #15109 Fixed using ST_GeomFromText + GUI on insert throws an error -- issue #16325 Fixed editing Geometry data throws error on using the GUI -- issue [security] Fix XSS vulnerability with the transformation feature (PMASA-2020-5) -- issue [security] Fix SQL injection vulnerability with search feature (PMASA-2020-6) - -5.0.2 (2020-03-20) -- issue Fixed deprecation warning "implode(): Passing glue string after array is deprecated." function on export page -- issue #15767 Fixed can not copy user account since 5.0 - "error #1133" -- issue #15772 Fixed error code 500 during pagination of the tables in a database -- issue #16009 Fix php error "Trying to access array offset on value of type null" on column distinct values feature -- issue #15741 Fix fatal javascript error on clicking "Pick from Central Columns" -- issue #15773 Fixed a view named "views" adds an expand button -- issue #15432 Fixed names of the pages in the designer should be unique -- issue #14310 Fixed column selector "See more" removes "Preview SQL" and "Save" area -- issue Fixed wrong jQuery function call in table search page -- issue #15761 Fix uncaught TypeError when using "$cfg['ServerDefault'] = 0;" -- issue #15780 Fixed unexpected UI of action links (text only mode) -- issue #15674 Replace twig/extensions with phpmyadmin/twig-i18n-extension -- issue #15799 Change location of profiling state documentation to fix column ordering -- issue #15720 Fix designer adding all available tables to a designer page after adding a new relationship -- issue #15791 Replace facebook/webdriver by php-webdriver/webdriver -- issue #15802 Removed SET AUTOCOMMIT=0 from SQL export -- issue #15818 Fix table borders missing on theme original since 5.0.0 -- issue #13864 Fix ENUM's radiobuttons reset on "Continue insertion with" changes -- issue #15811 Fixed browse foreign values doesn't show a modal with grid edit -- issue #15817 Fix "new table" layout issue on original theme -- issue #15798 Fixed not needed prompt before abandoning changes on SQL tab after only changing a checkbox -- issue #15833 Fix php TypeError when submitting unchanged data -- issue Fix php notice "Trying to access array offset on value of type bool" on Designer -- issue #13326 Added integer validations on search page -- issue #15200 Fixed server-side HTTPS detection misses support for Forwarded HTTP Extension (RFC 7239) -- issue #15831 Fixed DB names starting with "b" being cut off in