diff options
-rw-r--r-- | .bzrignore | 3 | ||||
-rw-r--r-- | Makefile.am | 4 | ||||
-rw-r--r-- | config/ac-macros/plugins.m4 | 80 | ||||
-rw-r--r-- | configure.in | 5 | ||||
-rw-r--r-- | plugin/Makefile.am | 3 | ||||
-rw-r--r-- | plugin/fulltext/Makefile.am | 47 | ||||
-rw-r--r-- | sql/sql_show.cc | 12 |
7 files changed, 56 insertions, 98 deletions
diff --git a/.bzrignore b/.bzrignore index 751b823f1ea..cd5d285651e 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1764,3 +1764,6 @@ unittest/examples/*.t unittest/mysys/*.t unittest/mytap/t/*.t unittest/unit +compile +libmysqld/sql_builtin.cc +sql/sql_builtin.cc diff --git a/Makefile.am b/Makefile.am index b9775577110..8709fca34c3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -24,11 +24,11 @@ EXTRA_DIST = INSTALL-SOURCE INSTALL-WIN-SOURCE \ SUBDIRS = . include @docs_dirs@ @zlib_dir@ \ @readline_topdir@ sql-common \ @thread_dirs@ pstack \ - @sql_union_dirs@ storage \ + @sql_union_dirs@ storage plugin \ @sql_server@ scripts @man_dirs@ tests \ netware @libmysqld_dirs@ \ mysql-test support-files @tools_dirs@ \ - plugin unittest win + unittest win DIST_SUBDIRS = $(SUBDIRS) BUILD diff --git a/config/ac-macros/plugins.m4 b/config/ac-macros/plugins.m4 index 51f83e19e5f..19b951ea467 100644 --- a/config/ac-macros/plugins.m4 +++ b/config/ac-macros/plugins.m4 @@ -32,8 +32,8 @@ AC_DEFUN([MYSQL_MODULE],[ AC_DEFUN([_MYSQL_MODULE],[ m4_ifdef([$2], [ - AC_FATAL([[Duplicate MYSQL_MODULE declaration for ]][$3]) - ],[ dnl + AC_FATAL([Duplicate MYSQL_MODULE declaration for $3]) + ],[ m4_define([$2], [$1]) _MYSQL_PLUGAPPEND([__mysql_plugin_list__],[$1]) m4_define([MYSQL_MODULE_NAME_]AS_TR_CPP([$1]), [$3]) @@ -57,13 +57,14 @@ AC_DEFUN([MYSQL_STORAGE_ENGINE],[ MYSQL_MODULE([$1], [$3], [$4], [[$5]]) MYSQL_MODULE_DEFINE([$1], [WITH_]AS_TR_CPP([$1])[_STORAGE_ENGINE]) ifelse([$2],[no],[],[ - _MYSQL_LEGACY_STORAGE_ENGINE([$1],m4_default([$2], [$1-storage-engine])) + _MYSQL_LEGACY_STORAGE_ENGINE( + m4_bpatsubst(m4_default([$2], [$1-storage-engine]), -, _)) ]) ]) AC_DEFUN([_MYSQL_LEGACY_STORAGE_ENGINE],[ -if test "[${with_]m4_bpatsubst($2, -, _)[+set}]" = set; then - [with_module_]m4_bpatsubst($1, -, _)="[$with_]m4_bpatsubst($2, -, _)" +if test "[${with_]$1[+set}]" = set; then + [with_module_]$1="[$with_]$1" fi ]) @@ -188,7 +189,7 @@ dnl --------------------------------------------------------------------------- AC_DEFUN([MYSQL_MODULE_DEPENDS],[ REQUIRE_PLUGIN([$1]) ifelse($#, 0, [], $#, 1, [ - AC_FATAL([[bad number of arguments]]) + AC_FATAL([bad number of arguments]) ], $#, 2, [ _MYSQL_MODULE_DEPEND([$1],[$2]) ],[ @@ -238,7 +239,8 @@ AC_DEFUN([MYSQL_CONFIGURE_PLUGINS],[ _MYSQL_CHECK_PLUGIN_ARGS([$1]) _MYSQL_CONFIGURE_PLUGINS(m4_bpatsubst(__mysql_plugin_list__, :, [,])) _MYSQL_DO_PLUGIN_ACTIONS(m4_bpatsubst(__mysql_plugin_list__, :, [,])) - _MYSQL_POST_PLUGIN_FIXUP() + AC_SUBST([mysql_se_dirs]) + AC_SUBST([mysql_pg_dirs]) ]) ]) ]) @@ -273,16 +275,19 @@ AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ AH_TEMPLATE($5, [Include ]$4[ into mysqld]) ]) AC_MSG_CHECKING([whether to use ]$3) + mysql_use_plugin_dir="" m4_ifdef([$10],[ if test "[$mysql_module_]$2" = yes -a \ "[$with_module_]$2" != no -o \ "[$with_module_]$2" = yes; then + AC_MSG_RESULT([error]) AC_MSG_ERROR([disabled]) fi AC_MSG_RESULT([no]) ],[ m4_ifdef([$9],[ if test "[$with_module_]$2" = no; then + AC_MSG_RESULT([error]) AC_MSG_ERROR([cannot disable mandatory module]) fi [mysql_module_]$2=yes @@ -295,7 +300,7 @@ AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ m4_ifdef([$8],[ m4_ifdef([$6],[ if test -d "$srcdir/$6" ; then - mysql_plugin_dirs="$mysql_plugin_dirs $6" + mysql_use_plugin_dir="$6" ]) AC_SUBST([plugin_]$2[_shared_target], "$8") AC_SUBST([plugin_]$2[_static_target], [""]) @@ -315,19 +320,19 @@ AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ m4_ifdef([$7],[ ifelse(m4_bregexp($7, [^lib[^.]+\.a$]), -2, [ m4_ifdef([$6],[ - mysql_plugin_dirs="$mysql_plugin_dirs $6" + mysql_use_plugin_dir="$6" mysql_plugin_libs="$mysql_plugin_libs -L[\$(top_builddir)]/$6" ]) mysql_plugin_libs="$mysql_plugin_libs [-l]m4_bregexp($7, [^lib\([^.]+\)], [\1])" ], m4_bregexp($7, [^\\\$]), 0, [ m4_ifdef([$6],[ - mysql_plugin_dirs="$mysql_plugin_dirs $6" + mysql_use_plugin_dir="$6" ]) mysql_plugin_libs="$mysql_plugin_libs $7" ], [ m4_ifdef([$6],[ - mysql_plugin_dirs="$mysql_plugin_dirs $6" + mysql_use_plugin_dir="$6" mysql_plugin_libs="$mysql_plugin_libs \$(top_builddir)/$6/$7" ],[ mysql_plugin_libs="$mysql_plugin_libs $7" @@ -340,7 +345,8 @@ AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ AC_SUBST([plugin_]$2[_shared_target], [""]) ],[ m4_ifdef([$6],[ - AC_FATAL([plugin directory specified without library for ]$3) + AC_MSG_RESULT([error]) + AC_MSG_ERROR([Plugin $1 does not support static linking]) ],[ m4_ifdef([$5],[ AC_DEFINE($5) @@ -353,6 +359,21 @@ AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ [with_module_]$2=yes AC_MSG_RESULT([yes]) fi + m4_ifdef([$6],[ + if test -n "$mysql_use_plugin_dir" ; then + mysql_plugin_dirs="$mysql_plugin_dirs $6" + if test -f "$srcdir/$6/configure" ; then + other_configures="$other_configures $6/configure" + else + AC_CONFIG_FILES($6/Makefile) + fi + ifelse(m4_substr($6, 0, 8), [storage/], + [mysql_se_dirs="$mysql_se_dirs ]m4_substr($6, 8)", + m4_substr($6, 0, 7), [plugin/], + [mysql_pg_dirs="$mysql_pg_dirs ]m4_substr($6, 7)", + [AC_FATAL([don't know how to handle plugin dir ]$6)]) + fi + ]) fi ]) ]) @@ -409,10 +430,10 @@ AC_DEFUN([REQUIRE_PLUGIN],[ define([_REQUIRE_PLUGIN],[ ifdef([$2],[ ifelse($2, [$1], [], [ - AC_FATAL([[Misspelt MYSQL_MODULE declaration for ]][$1]) + AC_FATAL([Misspelt MYSQL_MODULE declaration for $1]) ]) ],[ - AC_FATAL([[Missing MYSQL_MODULE declaration for ]][$1]) + AC_FATAL([Missing MYSQL_MODULE declaration for $1]) ]) ]) @@ -455,7 +476,7 @@ AC_DEFUN([_MYSQL_PLUGAPPEND],[ AC_DEFUN([_MYSQL_PLUGAPPEND_OPTS],[ ifelse($#, 0, [], $#, 1, [ - AC_FATAL([[bad number of args]]) + AC_FATAL([bad number of args]) ], $#, 2, [ _MYSQL_PLUGAPPEND_OPTONE([$1],[$2]) ],[ @@ -466,10 +487,10 @@ AC_DEFUN([_MYSQL_PLUGAPPEND_OPTS],[ AC_DEFUN([_MYSQL_PLUGAPPEND_OPTONE],[ ifelse([$2], [all], [ - AC_FATAL([[protected plugin group: all]]) + AC_FATAL([protected plugin group: all]) ],[ ifelse([$2], [none], [ - AC_FATAL([[protected plugin group: none]]) + AC_FATAL([protected plugin group: none]) ],[ _MYSQL_PLUGAPPEND([__mysql_$1_configs__],[$2]) _MYSQL_PLUGAPPEND([__mysql_]m4_bpatsubst($2, -, _)[_plugins__],[$1], [ @@ -516,7 +537,7 @@ AC_DEFUN([MYSQL_SHOW_PLUGIN],[ ]) AC_DEFUN([_MYSQL_SHOW_PLUGIN],[dnl - === Plugin: $3 === + === $3 === Module Name: [$1] Description: $4 Supports build: _PLUGIN_BUILD_TYPE([$7],[$8])[]dnl @@ -666,27 +687,4 @@ _MYSQL_MODULE_ARGS_CHECK(m4_bpatsubst(__mysql_plugin_list__, :, [,])) _MYSQL_CHECK_DEPENDENCIES(m4_bpatsubst(__mysql_plugin_list__, :, [,])) ]) -AC_DEFUN([_MYSQL_POST_PLUGIN_FIXUP],[ - for plugdir in $mysql_plugin_dirs; do - case "$plugdir" in - storage/* ) - mysql_se_dirs="$mysql_se_dirs `echo $plugdir | sed -e 's@^storage/@@'`" - ;; - plugin/* ) - mysql_pg_dirs="$mysql_pg_dirs `echo $plugdir | sed -e 's@^plugin/@@'`" - ;; - *) - AC_MSG_ERROR([don't know how to handle plugin dir $plugdir]) - ;; - esac - if test -f "$srcdir/$plugdir/configure" ; then - other_configures="$other_configures $plugdir/configure" - else - ac_config_files="$ac_config_files $plugdir/Makefile" - fi - done - AC_SUBST(mysql_se_dirs) - AC_SUBST(mysql_pg_dirs) -]) - dnl =========================================================================== diff --git a/configure.in b/configure.in index c2e35c1b6b6..78a0ea5f7b2 100644 --- a/configure.in +++ b/configure.in @@ -87,8 +87,7 @@ MYSQL_STORAGE_ENGINE(federated,,[Federated Storage Engine], MYSQL_MODULE(ftexample, [Simple Parser], [Simple full-text parser plugin]) MYSQL_MODULE_DIRECTORY(ftexample, [plugin/fulltext]) -MYSQL_MODULE_STATIC(ftexample, [libftexample.a]) -MYSQL_MODULE_DYNAMIC(ftexample, [ft_example.la]) +MYSQL_MODULE_DYNAMIC(ftexample, [mypluglib.la]) MYSQL_STORAGE_ENGINE(heap,no, [Memory Storage Engine], [In memory hashed tables]) @@ -101,8 +100,6 @@ MYSQL_MODULE_DIRECTORY(innobase, [storage/innobase]) MYSQL_MODULE_STATIC(innobase, [libinnobase.a]) MYSQL_MODULE_ACTIONS(innobase, [ AC_CHECK_LIB(rt, aio_read, [innodb_system_libs="-lrt"]) - AC_SUBST(innodb_includes) - AC_SUBST(innodb_libs) AC_SUBST(innodb_system_libs) ]) diff --git a/plugin/Makefile.am b/plugin/Makefile.am index deb73c988b3..6dee710103e 100644 --- a/plugin/Makefile.am +++ b/plugin/Makefile.am @@ -18,7 +18,10 @@ AUTOMAKE_OPTIONS = foreign +# extra plugin example files are listed here, to +# keep its Makefile.am cleaner as a template EXTRA_DIST = fulltext/configure.in + SUBDIRS = @mysql_pg_dirs@ # Don't update the files from bitkeeper diff --git a/plugin/fulltext/Makefile.am b/plugin/fulltext/Makefile.am index 331db7c98f8..4df5a1dc78a 100644 --- a/plugin/fulltext/Makefile.am +++ b/plugin/fulltext/Makefile.am @@ -1,44 +1,9 @@ #Makefile.am example for a plugin -#MYSQL_MODULE(ftexample, [Simple Parser], -# [Simple full-text parser plugin]) -#MYSQL_MODULE_DIRECTORY(ftexample, [plugin/fulltext]) -#MYSQL_MODULE_STATIC(ftexample, [libftexample.a]) -#MYSQL_MODULE_DYNAMIC(ftexample, [ft_example.la]) +pkglibdir=$(libdir)/mysql +INCLUDES= -I$(top_builddir)/include -I$(top_srcdir)/include +noinst_LTLIBRARIES= mypluglib.la +#pkglib_LTLIBRARIES= mypluglib.la +mypluglib_la_SOURCES= plugin_example.c +mypluglib_la_LDFLAGS= -module -rpath $(pkglibdir) - -#called from the top level Makefile - -MYSQLDATAdir = $(localstatedir) -MYSQLSHAREdir = $(pkgdatadir) -MYSQLBASEdir= $(prefix) -MYSQLLIBdir= $(pkglibdir) -INCLUDES = -I$(top_srcdir)/include \ - -I$(top_srcdir)/regex \ - -I$(top_srcdir)/sql \ - -I$(srcdir) -WRAPLIBS= - -LDADD = - -DEFS = @DEFS@ - -noinst_HEADERS = - -EXTRA_LTLIBRARIES = ft_example.la -pkglib_LTLIBRARIES = @plugin_ftexample_shared_target@ -ft_example_la_LDFLAGS = -module -rpath $(MYSQLLIBdir) -ft_example_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN -ft_example_la_CFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN -ft_example_la_SOURCES = plugin_example.c - - -EXTRA_LIBRARIES = libftexample.a -noinst_LIBRARIES = @plugin_ftexample_static_target@ -libftexample_a_CXXFLAGS=$(AM_CFLAGS) -libftexample_a_CFLAGS = $(AM_CFLAGS) -libftexample_a_SOURCES= plugin_example.c - - -# Don't update the files from bitkeeper -%::SCCS/s.% diff --git a/sql/sql_show.cc b/sql/sql_show.cc index 042c0397be3..da5ed3e46f8 100644 --- a/sql/sql_show.cc +++ b/sql/sql_show.cc @@ -111,10 +111,6 @@ static my_bool show_plugins(THD *thd, st_plugin_int *plugin, CHARSET_INFO *cs= system_charset_info; char version_buf[20]; - /* we normally hide all the built-in plugins */ - if (!plugin->plugin_dl && !thd->lex->verbose) - return 0; - restore_record(table, s->default_values); table->field[0]->store(plugin->name.str, plugin->name.length, cs); @@ -123,7 +119,7 @@ static my_bool show_plugins(THD *thd, st_plugin_int *plugin, make_version_string(version_buf, sizeof(version_buf), plug->version), cs); - + switch (plugin->state) { /* case PLUGIN_IS_FREED: does not happen */ @@ -3042,12 +3038,8 @@ static my_bool iter_schema_engines(THD *thd, st_plugin_int *plugin, int fill_schema_engines(THD *thd, TABLE_LIST *tables, COND *cond) { - const char *wild= thd->lex->wild ? thd->lex->wild->ptr() : NullS; - TABLE *table= tables->table; - CHARSET_INFO *scs= system_charset_info; - return plugin_foreach(thd, iter_schema_engines, - MYSQL_STORAGE_ENGINE_PLUGIN, table); + MYSQL_STORAGE_ENGINE_PLUGIN, tables->table); } |