]> git.joonet.de Git - adminer.git/commitdiff
Show comments at routine call (bug #874)
authorJakub Vrana <jakub@vrana.cz>
Sun, 23 Feb 2025 15:35:11 +0000 (16:35 +0100)
committerJakub Vrana <jakub@vrana.cz>
Sun, 23 Feb 2025 15:35:23 +0000 (16:35 +0100)
adminer/call.inc.php
adminer/drivers/mysql.inc.php
changes.txt

index 3976f6687ba35dad3c2ade64504bb9a73ed835fc..1e753870b58bd5e755110336d7b21e40e44096c7 100644 (file)
@@ -88,3 +88,22 @@ if ($in) {
 <input type="submit" value="<?php echo lang('Call'); ?>">
 <input type="hidden" name="token" value="<?php echo $token; ?>">
 </form>
+
+<pre>
+<?php
+function pre_tr($s) {
+       return preg_replace('~^~m', '<tr>', preg_replace('~\|~', '<td>', preg_replace('~\|$~m', "", rtrim($s))));
+}
+$table = '(?:\+--[-+]+\+\n)';
+$row = '(?:\| .* \|\n)';
+echo
+       preg_replace_callback("~^($table?)($row)$table?($row*)$table?~m", function ($match) {
+               $first_row = pre_tr($match[2]);
+               return "<table>\n" . ($match[1] ? "<thead>$first_row</thead>\n" : $first_row) . pre_tr($match[3]) . "\n</table>";
+       },
+       preg_replace('~(\n(    -|mysql)&gt; )(.+)~', "\\1<code class='jush-sql'>\\3</code>",
+       preg_replace('~(.+)\n---+\n~', "<b>\\1</b>\n",
+       h($routine['comment'])
+)));
+?>
+</pre>
index 9feaa054e0290077a3d415f74421b65665c8bd76..ba6a044a490563dbb7f7d0425a97fcb54d1f4d75 100644 (file)
@@ -926,11 +926,14 @@ if (!defined("DRIVER")) {
                                "collation" => strtolower($param[9]),
                        );
                }
+               $return = array(
+                       "fields" => $fields,
+                       "comment" => $connection->result("SELECT ROUTINE_COMMENT FROM information_schema.ROUTINES WHERE ROUTINE_SCHEMA = " . q(DB) . " AND ROUTINE_NAME = " . q($name)),
+               );
                if ($type != "FUNCTION") {
-                       return array("fields" => $fields, "definition" => $match[11]);
+                       return $return + array("definition" => $match[11]);
                }
-               return array(
-                       "fields" => $fields,
+               return $return + array(
                        "returns" => array("type" => $match[12], "length" => $match[13], "unsigned" => $match[15], "collation" => $match[16]),
                        "definition" => $match[17],
                        "language" => "SQL", // available in information_schema.ROUTINES.PARAMETER_STYLE
index 0e4e0564db156f0c084451ba3db2038fbb31982c..02a6d2ff08202bd7c2b790ed65f867d8e4c8e8a0 100644 (file)
@@ -2,6 +2,7 @@ Adminer 4.17.0-dev:
 Hide index column options by default
 Offer original values in multi-row editing (regression from 4.16.0)
 MySQL, PostgreSQL, MS SQL: Support CHECK constraint
+MySQL: Show comments at routine call (bug #874)
 MySQL: Don't offer empty enum value in edit
 PostgreSQL: Link user defined types
 PostgreSQL: Constraint enum values in editing (bug #270)