]> git.joonet.de Git - adminer.git/commitdiff
MS SQL PDO: Hide unsupported EXPLAIN
authorJakub Vrana <jakub@vrana.cz>
Mon, 24 Mar 2025 13:47:55 +0000 (14:47 +0100)
committerJakub Vrana <jakub@vrana.cz>
Mon, 24 Mar 2025 13:47:55 +0000 (14:47 +0100)
adminer/drivers/mssql.inc.php
tests/generate-pdo.php

index 387d502f546b70a9050a22183097a6d8514cc462..31efda29d2923456ccb2f4ffbced80397bcbe2af 100644 (file)
@@ -160,6 +160,13 @@ if (isset($_GET["mssql"])) {
                        return get_val("SELECT SCOPE_IDENTITY()"); // @@IDENTITY can return trigger INSERT
                }
 
+               function explain($connection, $query) {
+                       $connection->query("SET SHOWPLAN_ALL ON");
+                       $return = $connection->query($query);
+                       $connection->query("SET SHOWPLAN_ALL OFF"); // connection is used also for indexes
+                       return $return;
+               }
+
        } else {
                class MssqlDb extends PdoDb {
                        function select_db($database) {
@@ -177,6 +184,9 @@ if (isset($_GET["mssql"])) {
                        return $connection->lastInsertId();
                }
 
+               function explain($connection, $query) {
+               }
+
                if (extension_loaded("pdo_sqlsrv")) {
                        class Db extends MssqlDb {
                                public $extension = "PDO_SQLSRV";
@@ -556,13 +566,6 @@ WHERE OBJECT_NAME(i.object_id) = " . q($table), $connection2) as $row
                ;
        }
 
-       function explain($connection, $query) {
-               $connection->query("SET SHOWPLAN_ALL ON");
-               $return = $connection->query($query);
-               $connection->query("SET SHOWPLAN_ALL OFF"); // connection is used also for indexes
-               return $return;
-       }
-
        function found_rows($table_status, $where) {
        }
 
index 24fdaa67fd051b94fc9be08d969437bbb1a0b24d..6dc3b333e32d3ec056fd7586528eb0a07a362d52 100755 (executable)
@@ -10,6 +10,7 @@ foreach (glob("*.html") as $filename) {
                        return "/$match[1].php?ext=pdo" . ($match[3] ? "&amp;" : "");
                }, $file);
                $file = str_replace("<tr><td>open</td><td>/coverage.php?coverage=0</td><td></td></tr>\n", "", $file);
+               $file = str_replace("<tr><td>click</td><td>link=Explain</td><td></td></tr>\n<tr><td>verifyTextPresent</td><td>Clustered Index Scan</td><td></td></tr>\n", "", $file); // MS SQL PDO doesn't support EXPLAIN
                $file = preg_replace("~//input\[@value='Login']~", "\\0</td><td></td></tr>\n<tr><td>verifyTextPresent</td><td>PDO_", $file, 1);
                file_put_contents("pdo-$filename", $file);
        }