• marko's avatar
    branches/zip: Allow a dynamically loaded InnoDB storage engine plugin · 15e0e266
    marko authored
    to replace a built-in instance of InnoDB in mysqld.  This is work in
    progress, with several limitations:
    
    * Other plugins defined in the builtin InnoDB are not disabled.
      However, InnoDB in MySQL 5.1 only defines the storage engine plugin,
      no INFORMATION_SCHEMA plugins.
    
    * The global C symbols in ha_innodb.so except innodb_hton_ptr and
      builtin_innobase_plugin will have to be redefined, e.g., by objcopy.
    
    * The storage engine cannot be called "InnoDB" to avoid a conflict with
      the builtin name.  Here we call it InnoDBzip.
    
    innobase_hton_name[]: Rename to "InnoDBzip" when building a dynamic plugin.
    
    innodb_plugin_init(): New function for the dynamic plugin, to copy
    and redirect configuration parameters from the builtin InnoDB.
    
    innodb_dynamic: New configuration parameter.  This has to be added
    to the builtin InnoDB in MySQL 5.1.  Also, innodb_hton_ptr must be made
    global there.
    
    innobase_init(): Interpret the parameter innodb_dynamic.
    
    Makefile.am: Redefine class ha_innobase to ha_innodb by a preprocessor
    define.  Apparently, C++ classes cannot be easily renamed by objcopy.
    15e0e266
ha_innodb.cc 238 KB