WL#13057: Removal of the deprecated namespace of Mysqlx.Sql.StmtExecute message

Affects: Server-8.0   —   Status: Complete


Xplugin currently supports three different values for the namespace parameter of the StmtExecute X protocol request: 'sql', 'xplugin' and 'mysqlx'.

The goal of the last one was to give the user a more self-descriptive way to encode arguments of admin commands by using key/value pairs. To maintain backwards compatibility the 'xplugin' namespace was kept as is but has been made deprecated. A suitable notice message informs the user about deprecation of this namespace.


The goal of this worklog is removing the 'xplugin' namespace from Mysqlx.Sql.StmtExecute message after 2 years (since 5.7.14) of deprecations.

Remove namespace xplugin from the list of supported namespaces. Thus, the xplugin namespace becomes an unknown identifier and any administrative commands sent within this namespace will not be handled. If the user continues to use this namespace, they will be notified by a standard error message.
Counter of executed administrative commands in the 'xplugin' namespace realized as the 'Mysqlx_stmt_execute_xplugin' session variable is deprecated and its status will not be changed at the time of performing any administrative commands.
Administrative commands assigned to the 'mysqlx' namesspace remain unchanged, and the 'Mysqlx_stmt_execute_mysqlx' variable (the counter of commands executed in this namespace) retains its previous action and state.

Description of the change (in pill)

A user that tries to execute an admin command in "xplugin" namespace must receive the same error as using a non-existing namespace.

Before the change:

client->server: StmtExecute(stmt="ping", namespace="xplugin")
client<-server: Ok

After the change:

client->server: StmtExecute(stmt="ping", namespace="xplugin")
client<-server: Error(ER_X_INVALID_NAMESPACE, "Unknown namespace xplugin")


This change does not require any modification of the protocol.

Source code

Stopping support of the 'xplugin' namespace requires removing the part of the source code that handles it. This action is required in order to preserve high enough code coverage for the tests.

MTR tests

The functionality of the administrative commands is accomplished by two namespaces 'xplugin' and 'mysqlx', and testing them is provided by separate functional tests. Stopping support for the 'xplugin' namespace requires removing/modifying those tests that directly use it. In addition, dedicated tests for the 'mysqlx' namespace may require simplifying the name of the test file, e.g. admin_bogus_mysqlx.test -> admin_bogus.test

Errors and warnings

This change does not require any additional warnings or error messages. At the same time, it does not change or delete the ones used to service the administrative command mechanism.