From 5bebb439a1c054718068f918bbcdfcaf343b781d Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Sat, 27 Oct 2018 20:05:04 +0200 Subject: [PATCH] MySQL: Descending indexes in MySQL 8 (bug #643) --- adminer/drivers/mongo.inc.php | 2 +- adminer/drivers/mssql.inc.php | 2 +- adminer/drivers/mysql.inc.php | 4 ++-- adminer/drivers/oracle.inc.php | 2 +- adminer/drivers/pgsql.inc.php | 2 +- adminer/drivers/sqlite.inc.php | 2 +- adminer/indexes.inc.php | 2 +- changes.txt | 1 + 8 files changed, 9 insertions(+), 8 deletions(-) diff --git a/adminer/drivers/mongo.inc.php b/adminer/drivers/mongo.inc.php index 6fc01308..30e8a67d 100644 --- a/adminer/drivers/mongo.inc.php +++ b/adminer/drivers/mongo.inc.php @@ -662,7 +662,7 @@ if (isset($_GET["mongo"])) { } function support($feature) { - return preg_match("~database|indexes~", $feature); + return preg_match("~database|indexes|descidx~", $feature); } function db_collation($db, $collations) { diff --git a/adminer/drivers/mssql.inc.php b/adminer/drivers/mssql.inc.php index 481ddd20..116f6b02 100644 --- a/adminer/drivers/mssql.inc.php +++ b/adminer/drivers/mssql.inc.php @@ -632,7 +632,7 @@ WHERE sys1.xtype = 'TR' AND sys2.name = " . q($table) } function support($feature) { - return preg_match('~^(columns|database|drop_col|indexes|scheme|sql|table|trigger|view|view_trigger)$~', $feature); //! routine| + return preg_match('~^(columns|database|drop_col|indexes|descidx|scheme|sql|table|trigger|view|view_trigger)$~', $feature); //! routine| } $jush = "mssql"; diff --git a/adminer/drivers/mysql.inc.php b/adminer/drivers/mysql.inc.php index e3fff80d..5002caa9 100644 --- a/adminer/drivers/mysql.inc.php +++ b/adminer/drivers/mysql.inc.php @@ -1083,11 +1083,11 @@ if (!defined("DRIVER")) { } /** Check whether a feature is supported - * @param string "comment", "copy", "database", "drop_col", "dump", "event", "kill", "materializedview", "partitioning", "privileges", "procedure", "processlist", "routine", "scheme", "sequence", "status", "table", "trigger", "type", "variables", "view", "view_trigger" + * @param string "comment", "copy", "database", "descidx", "drop_col", "dump", "event", "indexes", "kill", "materializedview", "partitioning", "privileges", "procedure", "processlist", "routine", "scheme", "sequence", "status", "table", "trigger", "type", "variables", "view", "view_trigger" * @return bool */ function support($feature) { - return !preg_match("~scheme|sequence|type|view_trigger|materializedview" . (min_version(5.1) ? "" : "|event|partitioning" . (min_version(5) ? "" : "|routine|trigger|view")) . "~", $feature); + return !preg_match("~scheme|sequence|type|view_trigger|materializedview" . (min_version(8) ? "" : "|descidx" . (min_version(5.1) ? "" : "|event|partitioning" . (min_version(5) ? "" : "|routine|trigger|view"))) . "~", $feature); } function kill_process($val) { diff --git a/adminer/drivers/oracle.inc.php b/adminer/drivers/oracle.inc.php index 0ea6cc3b..ff491b33 100644 --- a/adminer/drivers/oracle.inc.php +++ b/adminer/drivers/oracle.inc.php @@ -398,7 +398,7 @@ ORDER BY PROCESS } function support($feature) { - return preg_match('~^(columns|database|drop_col|indexes|processlist|scheme|sql|status|table|variables|view|view_trigger)$~', $feature); //! + return preg_match('~^(columns|database|drop_col|indexes|descidx|processlist|scheme|sql|status|table|variables|view|view_trigger)$~', $feature); //! } $jush = "oracle"; diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index af6d0f0f..2c7d578d 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -824,7 +824,7 @@ AND typelem = 0" } function support($feature) { - return preg_match('~^(database|table|columns|sql|indexes|comment|view|' . (min_version(9.3) ? 'materializedview|' : '') . 'scheme|routine|processlist|sequence|trigger|type|variables|drop_col|kill|dump)$~', $feature); + return preg_match('~^(database|table|columns|sql|indexes|descidx|comment|view|' . (min_version(9.3) ? 'materializedview|' : '') . 'scheme|routine|processlist|sequence|trigger|type|variables|drop_col|kill|dump)$~', $feature); } function kill_process($val) { diff --git a/adminer/drivers/sqlite.inc.php b/adminer/drivers/sqlite.inc.php index fbf00c2c..ecb64c5e 100644 --- a/adminer/drivers/sqlite.inc.php +++ b/adminer/drivers/sqlite.inc.php @@ -770,7 +770,7 @@ if (isset($_GET["sqlite"]) || isset($_GET["sqlite2"])) { } function support($feature) { - return preg_match('~^(columns|database|drop_col|dump|indexes|move_col|sql|status|table|trigger|variables|view|view_trigger)$~', $feature); + return preg_match('~^(columns|database|drop_col|dump|indexes|descidx|move_col|sql|status|table|trigger|variables|view|view_trigger)$~', $feature); } $jush = "sqlite"; diff --git a/adminer/indexes.inc.php b/adminer/indexes.inc.php index 3477404c..1d489562 100644 --- a/adminer/indexes.inc.php +++ b/adminer/indexes.inc.php @@ -126,7 +126,7 @@ foreach ($row["indexes"] as $index) { "partial(" . ($i == count($index["columns"]) ? "indexesAddColumn" : "indexesChangeColumn") . ", '" . js_escape($jush == "sql" ? "" : $_GET["indexes"] . "_") . "')" ); echo ($jush == "sql" || $jush == "mssql" ? "" : ""); - echo ($jush != "sql" ? checkbox("indexes[$j][descs][$i]", 1, $index["descs"][$key], lang('descending')) : ""); + echo (support("descidx") ? checkbox("indexes[$j][descs][$i]", 1, $index["descs"][$key], lang('descending')) : ""); echo " "; $i++; } diff --git a/changes.txt b/changes.txt index 7244897d..d449ceb2 100644 --- a/changes.txt +++ b/changes.txt @@ -10,6 +10,7 @@ Increase username maxlength to 80 (bug #623) Make maxlength in all fields a soft limit MySQL: Support foreign keys created with ANSI quotes (bug #620) MySQL: Recognize ON UPDATE current_timestamp() (bug #632, bug #638) +MySQL: Descending indexes in MySQL 8 (bug #643) PostgreSQL: Quote array values in export (bug #621) PostgreSQL: Export DESC indexes (bug #639) PostgreSQL: Support GENERATED BY DEFAULT AS IDENTITY in PostgreSQL 10