Blame SOURCES/mysql-pluginerrmsg.patch

6f9931
In MySQL 5.5, the InnoDB Plugin is the default version and it's compiled in.
6f9931
In this case, the plugin cannot be uninstalled and we get error when trying
6f9931
to do so:
6f9931
6f9931
mysql> uninstall plugin innodb;
6f9931
ERROR 1305 (42000): PLUGIN innodb does not exist
6f9931
6f9931
But the error message is misleading. The plugin does exist, it just cannot
6f9931
be installed because it's not dynamically loaded.
6f9931
6f9931
MySQL bug report: http://bugs.mysql.com/bug.php?id=51771
6f9931
MariaDB bug report: https://mariadb.atlassian.net/browse/MDEV-4573
6f9931
MariaDB fix: http://bazaar.launchpad.net/~maria-captains/maria/5.5/revision/3802
6f9931
6f9931
diff -up mysql-5.5.34/include/mysql.h.p28 mysql-5.5.34/include/mysql.h
6f9931
--- mysql-5.5.34/include/mysql.h.p28	2013-09-09 20:01:38.000000000 +0200
6f9931
+++ mysql-5.5.34/include/mysql.h	2013-10-10 12:09:03.934687127 +0200
6f9931
@@ -134,6 +134,7 @@ typedef unsigned long long my_ulonglong;
6f9931
 
6f9931
 /* backward compatibility define - to be removed eventually */
6f9931
 #define ER_WARN_DATA_TRUNCATED WARN_DATA_TRUNCATED
6f9931
+#define WARN_PLUGIN_DELETE_BUILTIN ER_PLUGIN_DELETE_BUILTIN
6f9931
 
6f9931
 typedef struct st_mysql_rows {
6f9931
   struct st_mysql_rows *next;		/* list of rows */
6f9931
diff -up mysql-5.5.34/mysql-test/r/plugin.result.p28 mysql-5.5.34/mysql-test/r/plugin.result
6f9931
--- mysql-5.5.34/mysql-test/r/plugin.result.p28	2013-09-09 20:01:38.000000000 +0200
6f9931
+++ mysql-5.5.34/mysql-test/r/plugin.result	2013-10-10 12:09:03.935687127 +0200
6f9931
@@ -143,3 +143,5 @@ SELECT @@SESSION.example_double_thdvar;
6f9931
 @@SESSION.example_double_thdvar
6f9931
 1000.500000
6f9931
 UNINSTALL PLUGIN example;
6f9931
+UNINSTALL PLUGIN MyISAM;
6f9931
+ERROR HY000: Built-in plugins cannot be deleted
6f9931
diff -up mysql-5.5.34/mysql-test/t/plugin.test.p28 mysql-5.5.34/mysql-test/t/plugin.test
6f9931
--- mysql-5.5.34/mysql-test/t/plugin.test.p28	2013-09-09 20:01:38.000000000 +0200
6f9931
+++ mysql-5.5.34/mysql-test/t/plugin.test	2013-10-10 12:09:03.935687127 +0200
6f9931
@@ -137,3 +137,10 @@ SET SESSION example_double_thdvar = 1000
6f9931
 SELECT @@SESSION.example_double_thdvar;
6f9931
 
6f9931
 UNINSTALL PLUGIN example;
6f9931
+
6f9931
+#
6f9931
+# MDEV-4573 UNINSTALL PLUGIN misleading error message for non-dynamic plugins
6f9931
+#
6f9931
+--error ER_PLUGIN_DELETE_BUILTIN
6f9931
+UNINSTALL PLUGIN MyISAM;
6f9931
+
6f9931
diff -up mysql-5.5.34/sql/share/errmsg-utf8.txt.p28 mysql-5.5.34/sql/share/errmsg-utf8.txt
6f9931
--- mysql-5.5.34/sql/share/errmsg-utf8.txt.p28	2013-09-09 20:01:38.000000000 +0200
6f9931
+++ mysql-5.5.34/sql/share/errmsg-utf8.txt	2013-10-10 12:09:03.936687128 +0200
6f9931
@@ -6161,7 +6161,7 @@ WARN_NO_MASTER_INFO
6f9931
 WARN_OPTION_IGNORED
6f9931
   eng "<%-.64s> option ignored"
6f9931
   ger "Option <%-.64s> ignoriert"
6f9931
-WARN_PLUGIN_DELETE_BUILTIN
6f9931
+ER_PLUGIN_DELETE_BUILTIN
6f9931
   eng "Built-in plugins cannot be deleted"
6f9931
   ger "Eingebaute Plugins können nicht gelöscht werden"
6f9931
 WARN_PLUGIN_BUSY
6f9931
diff -up mysql-5.5.34/sql/sql_plugin.cc.p28 mysql-5.5.34/sql/sql_plugin.cc
6f9931
--- mysql-5.5.34/sql/sql_plugin.cc.p28	2013-10-10 12:09:03.837687101 +0200
6f9931
+++ mysql-5.5.34/sql/sql_plugin.cc	2013-10-10 12:09:03.937687128 +0200
6f9931
@@ -1909,9 +1909,7 @@ bool mysql_uninstall_plugin(THD *thd, co
6f9931
   }
6f9931
   if (!plugin->plugin_dl)
6f9931
   {
6f9931
-    push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
6f9931
-                 WARN_PLUGIN_DELETE_BUILTIN, ER(WARN_PLUGIN_DELETE_BUILTIN));
6f9931
-    my_error(ER_SP_DOES_NOT_EXIST, MYF(0), "PLUGIN", name->str);
6f9931
+    my_error(ER_PLUGIN_DELETE_BUILTIN, MYF(0));
6f9931
     goto err;
6f9931
   }
6f9931
   if (plugin->load_option == PLUGIN_FORCE_PLUS_PERMANENT)