From b4e41f5e4b4ad983a9d11f63d3ddb9c596ae3188 Mon Sep 17 00:00:00 2001 From: Jakub Vrana Date: Wed, 19 Mar 2025 05:54:08 +0100 Subject: [PATCH] CockroachDB: Pass param length to routine drop (cockroachdb/cockroach#142886) --- CHANGELOG.md | 1 + adminer/drivers/pgsql.inc.php | 3 ++- adminer/procedure.inc.php | 5 +++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b386eca3..1e297c85 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ - PostgreSQL: Display auto_increment of inserted rows - PostgreSQL: Display description of system variables - PostgreSQL: Avoid warning about crdb_version (bug #924, regression from 5.0.5) +- CockroachDB: Fix dropping procedure with varchar (cockroachdb/cockroach#142886) - CSS: Sticky table headers (bug #918) - CSS: Allow more custom styles with dark mode (bug #925) - IMAP: New plugin driver created for fun diff --git a/adminer/drivers/pgsql.inc.php b/adminer/drivers/pgsql.inc.php index eda220b8..a49b53a0 100644 --- a/adminer/drivers/pgsql.inc.php +++ b/adminer/drivers/pgsql.inc.php @@ -775,7 +775,8 @@ ORDER BY SPECIFIC_NAME'); function routine_id($name, $row) { $return = array(); foreach ($row["fields"] as $field) { - $return[] = $field["type"]; + $length = $field["length"]; + $return[] = $field["type"] . ($length ? "($length)" : ""); } return idf_escape($name) . "(" . implode(", ", $return) . ")"; } diff --git a/adminer/procedure.inc.php b/adminer/procedure.inc.php index 79f34857..bc7c9463 100644 --- a/adminer/procedure.inc.php +++ b/adminer/procedure.inc.php @@ -9,6 +9,11 @@ $row["fields"] = (array) $row["fields"]; if ($_POST && !process_fields($row["fields"]) && !$error) { $orig = routine($_GET["procedure"], $routine); $temp_name = "$row[name]_adminer_" . uniqid(); + foreach ((array) $row["fields"] as $key => $field) { + if ($field["field"] == "") { + unset($row["fields"][$key]); + } + } drop_create( "DROP $routine " . routine_id($PROCEDURE, $orig), create_routine($routine, $row),