WL#2467: Sub-class Federated Storage Engine

Affects: Server-7.0   —   Status: Un-Assigned

The Federated Storage Engine, in order to accomodate being able to have other
connector APIs used, such as JDBC, ODBC, or other vendors, needs to be
subclassed so that there is a main parent Federated class that uses the
appropriate child class depending on what connector API is used.

              ha_federated.cc
              /       |      \
             /        |       \
            /         |        \
           /          |         \
          /           |          \
         /            |           \
        /             |            \
       /              |             \
ha_federated_mysql ha_federated_jdbc ha_federated_odbc


Currently, there is only one handler class for federated, defined in
ha_federated.h, implemented in ha_federated.cc. A new 'ha_federated' directory
will need to be created, with the subclasses such as ha_federated.jdbc.h/.cc
(and other subclasses) stored in this directory. The class ha_federated will
then have to have a 'dispatcher' to call the correct subclass according to the
'scheme' used, found in the table definition's connection name, stored for that
connection in FOREIGN_SERVERS system table.

Using handler.cc as a model, an idea of how this might be implented can be seen
with the method 'get_new_handler', which instantiates a new handler subclass of
the appropriate type via the enum variable 'db_type'. So, also, it does appear
that an enumerated type with the federated table sub-types will also have to be
defined.