Hi! 22 янв. 2010, в 15:31, Michael Widenius написал(а):
Hi!
"sanja" == sanja <sanja@askmonty.org> writes:
sanja> At file:///Users/bell/maria/bzr/work-maria-5.2-engine/ sanja> ------------------------------------------------------------ sanja> revno: 2734 sanja> revision-id: sanja@askmonty.org-20091204114937-cfkvax0g36d3nq3j sanja> parent: psergey@askmonty.org-20091202142609-18bp41q8mejxl47t sanja> committer: sanja@askmonty.org sanja> branch nick: work-maria-5.2-engine sanja> timestamp: Fri 2009-12-04 13:49:37 +0200 sanja> message: sanja> Maria WL#61
<cut>
+++ b/CMakeLists.txt 2009-12-04 11:49:37 +0000 @@ -251,6 +251,7 @@
IF (ENGINE_BUILD_TYPE STREQUAL "STATIC") SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_$ {PLUGIN_NAME}_plugin") + SET (mariaext_plugin_defs "$ {mariaext_plugin_defs},bltnmext_${PLUGIN_NAME}_plugin") SET (MYSQLD_STATIC_ENGINE_LIBS $ {MYSQLD_STATIC_ENGINE_LIBS} ${PLUGIN_NAME}) SET (STORAGE_ENGINE_DEFS "${STORAGE_ENGINE_DEFS} -DWITH_$ {ENGINE}_STORAGE_ENGINE") SET (WITH_${ENGINE}_STORAGE_ENGINE TRUE) @@ -269,6 +270,7 @@ IF(NOT WITHOUT_PARTITION_STORAGE_ENGINE) SET (STORAGE_ENGINE_DEFS "${STORAGE_ENGINE_DEFS} - DWITH_PARTITION_STORAGE_ENGINE") SET (mysql_plugin_defs "$ {mysql_plugin_defs},builtin_partition_plugin") + SET (mariaext_plugin_defs "$ {mariaext_plugin_defs},bltnmext_partition_plugin") ENDIF(NOT WITHOUT_PARTITION_STORAGE_ENGINE)
Probably stupid questions, but why mariaext instead of just mariadb?
MARIAdbEXTension
What does 'bltnmext_partition_plugin' stand for ? Can we use a more understandable name, like builtin_mariadb_partition_plugin ?
yes
<cut>
--- a/include/mysql/plugin.h 2009-09-07 20:50:10 +0000
<cut>
+/* + MariaDB extension for plugins declaration structure. +*/ + +struct st_mariaext_plugin +{ + const char *sversion; /* plugin version string */
sversion -> version ?
actually it was string version (we have already numeric one).
+ int maturity; /* HA_PLUGIN_MATURITY_XXX */ +}; + / ************************************************************************* API for Full-text parser plugin. (MYSQL_FTPARSER_PLUGIN) */
=== modified file 'sql/sql_plugin.cc' --- a/sql/sql_plugin.cc 2009-11-12 04:31:28 +0000 +++ b/sql/sql_plugin.cc 2009-12-04 11:49:37 +0000 [skip] + /* extensions should be the same numbers as static plugins) */ + DBUG_ASSERT(*bltnmexts); + for (plugin= *builtins, ext= *bltnmexts; + plugin->info; + plugin++, ext++) { + + /* in case if plugin describe less extensions then plugins */ + mariaext= ext; + if (!ext->sversion) + { + mariaext= empty_mariaext; + ext--; + } +
I am a bit unsure about the above code; If we allow one to describe less extensions, then it's not sure that when one adds a new plugin with extension information, one remembers to also add all missing extensions.
I think that for staticly compiled plugins we should require that they have also extension information. What do you think about this?
It is for dynamically linked plugins. Of course statically linked will have everything but they will be included in built in plugins array (it is other code). [skip]