Bug #25670 DROP SERVER returns success for non-existing server
Submitted: 17 Jan 2007 8:05 Modified: 1 Nov 2007 6:34
Reporter: Giuseppe Maxia Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Federated storage engine Severity:S3 (Non-critical)
Version:5.1.15 OS:Linux (linux)
Assigned to: Antony Curtis CPU Architecture:Any
Tags: drop server, federated

[17 Jan 2007 8:05] Giuseppe Maxia
Description:
A DROP SERVER statement always returns success, even when the desired server does not exist.
It returns the number of affected rows, so that a "0 rows affected" means that no server was removed.
This behavior differs from what happens in similar statements of DROP TABLE/VIEW/PROCEDURE and so on, where indicating a non existing object will trigger an error.

For example:
create SERVER 's1' foreign data wrapper 'mysql' options (HOST '127.0.0.1', DATABASE 'test', USER 'guest', PASSWORD 'guest', PORT 3307);

DROP SERVER s1;
Query OK, 1 row affected (0.00 sec)

DROP SERVER s1;
Query OK, 0 row affected (0.00 sec)

How to repeat:
create SERVER 's1' foreign data wrapper 'mysql' options (HOST '127.0.0.1', DATABASE 'test', USER 'guest', PASSWORD 'guest', PORT 3307);

DROP SERVER s1;
DROP SERVER s1;

Suggested fix:
Issue an error for non existing servers;
[1 Nov 2007 2:39] terry tao
the 5.1.23-bk fix the issue.

mysql> show variables like 'version';
+---------------+-----------------------+
| Variable_name | Value                 |
+---------------+-----------------------+
| version       | 5.1.23-beta-debug-log |
+---------------+-----------------------+
1 row in set (0.00 sec)

mysql> create SERVER 's1' foreign data wrapper 'mysql' options (HOST '127.0.0.1', DATABASE 'test', USER 'guest', PASSWORD 'guest', PORT 3307);
Query OK, 1 row affected (0.00 sec)

mysql> DROP SERVER s1;
Query OK, 1 row affected (0.00 sec)

mysql> DROP SERVER s1;
ERROR 1476 (HY000): The foreign server name you are trying to reference does not exist. Data source error:  s1
[1 Nov 2007 6:34] Giuseppe Maxia
Fixed in 5.1.18 by patch provided for Bug#26257