diff options
author | Horst.Hunger <horst.hunger@sun.com> | 2010-04-26 20:44:10 +0200 |
---|---|---|
committer | Horst.Hunger <horst.hunger@sun.com> | 2010-04-26 20:44:10 +0200 |
commit | bef66c5c9ff684de26533153df8188c74dcd45b3 (patch) | |
tree | 56d14b5c0a7367d82d1026837f50fc04cacfc138 | |
parent | 42c74ad8c3ac1217b4e9b1629405e377ef89bf96 (diff) | |
download | mariadb-git-bef66c5c9ff684de26533153df8188c74dcd45b3.tar.gz |
backport of patch for blckhole plugin (47748) to trunk-bugfixing.
-rw-r--r-- | mysql-test/include/have_blackhole_plugin.inc | 5 | ||||
-rw-r--r-- | mysql-test/r/blackhole_plugin.result | 15 | ||||
-rw-r--r-- | mysql-test/t/blackhole_plugin-master.opt | 1 | ||||
-rw-r--r-- | mysql-test/t/blackhole_plugin.test | 22 | ||||
-rw-r--r-- | storage/blackhole/Makefile.am | 23 |
5 files changed, 62 insertions, 4 deletions
diff --git a/mysql-test/include/have_blackhole_plugin.inc b/mysql-test/include/have_blackhole_plugin.inc new file mode 100644 index 00000000000..749efd343d6 --- /dev/null +++ b/mysql-test/include/have_blackhole_plugin.inc @@ -0,0 +1,5 @@ +if (`select plugin_library IS NULL from information_schema.plugins where plugin_name LIKE '%blackhole%'`) +{ + --skip blackhole plugin not available; +} + diff --git a/mysql-test/r/blackhole_plugin.result b/mysql-test/r/blackhole_plugin.result new file mode 100644 index 00000000000..9fc0cacd9cc --- /dev/null +++ b/mysql-test/r/blackhole_plugin.result @@ -0,0 +1,15 @@ +CREATE TABLE t1(a int) ENGINE=BLACKHOLE; +Warnings: +Warning 1286 Unknown storage engine 'BLACKHOLE' +Warning 1266 Using storage engine MyISAM for table 't1' +DROP TABLE t1; +INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so'; +INSTALL PLUGIN BLACKHOLE SONAME 'ha_blackhole.so'; +ERROR HY000: Function 'BLACKHOLE' already exists +UNINSTALL PLUGIN blackhole; +INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so'; +CREATE TABLE t1(a int) ENGINE=BLACKHOLE; +DROP TABLE t1; +UNINSTALL PLUGIN blackhole; +UNINSTALL PLUGIN blackhole; +ERROR 42000: PLUGIN blackhole does not exist diff --git a/mysql-test/t/blackhole_plugin-master.opt b/mysql-test/t/blackhole_plugin-master.opt new file mode 100644 index 00000000000..dff15c6f136 --- /dev/null +++ b/mysql-test/t/blackhole_plugin-master.opt @@ -0,0 +1 @@ +--plugin_dir=../storage/blackhole/.libs diff --git a/mysql-test/t/blackhole_plugin.test b/mysql-test/t/blackhole_plugin.test new file mode 100644 index 00000000000..5c712233dc7 --- /dev/null +++ b/mysql-test/t/blackhole_plugin.test @@ -0,0 +1,22 @@ +--source include/not_windows.inc +--source include/have_blackhole_plugin.inc + +CREATE TABLE t1(a int) ENGINE=BLACKHOLE; +DROP TABLE t1; + +eval INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so'; +--error 1125 +eval INSTALL PLUGIN BLACKHOLE SONAME 'ha_blackhole.so'; + +UNINSTALL PLUGIN blackhole; + +eval INSTALL PLUGIN blackhole SONAME 'ha_blackhole.so'; + +CREATE TABLE t1(a int) ENGINE=BLACKHOLE; + +DROP TABLE t1; + +UNINSTALL PLUGIN blackhole; +--error ER_SP_DOES_NOT_EXIST +UNINSTALL PLUGIN blackhole; + diff --git a/storage/blackhole/Makefile.am b/storage/blackhole/Makefile.am index 538dc5999f0..04ec7a64aa9 100644 --- a/storage/blackhole/Makefile.am +++ b/storage/blackhole/Makefile.am @@ -1,5 +1,5 @@ -# Copyright (C) 2006 MySQL AB -# +# Copyright (C) 2005-2006 MySQL AB, 2009 Sun Microsystems, Inc. +# All rights reserved. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; version 2 of the License. @@ -50,11 +50,22 @@ libblackhole_a_SOURCES= ha_blackhole.cc EXTRA_DIST = CMakeLists.txt plug.in if HAVE_DTRACE_DASH_G +# The object for static and dynamic linking of blackhole differ +# For static linkage of blackhole to mysqld + libblackhole_a_LIBADD = probes_mysql.o libblackhole_a_DEPENDENCIES = probes_mysql.o dtrace_files dtrace_providers -CLEANFILES = probes_mysql.o dtrace_files dtrace_providers -DTRACEFILES = libblackhole_a-ha_blackhole.o +# For blackhole as shared library +ha_blackhole_la_LIBADD = probes_sh_mysql.o +# Hack: We "depend" on ".libs/" but have no rule for it, +# but it is created as a byproduct of the ".lo" +DTRACESHAREDDEPS = ha_blackhole_la-ha_blackhole.lo +DTRACESHAREDFILES = ha_blackhole_la-ha_blackhole.o DTRACEPROVIDER = probes_mysql.d +ha_blackhole_la_DEPENDENCIES = probes_sh_mysql.o $(DTRACESHAREDDEPS) dtrace_providers + +CLEANFILES = $(DTRACEPROVIDERS) dtrace_files dtrace_providers $(DTRACESHAREDDEPS) +DTRACEFILES = libblackhole_a-ha_blackhole.o dtrace_files: echo $(DTRACEFILES) > $@ @@ -65,8 +76,12 @@ probes_mysql.d: $(CP) $(top_srcdir)/include/probes_mysql.d.base probes_mysql.d echo timestamp > dtrace_sources +probes_sh_mysql.o: $(DTRACEPROVIDER) $(DTRACESHAREDDEPS) + $(DTRACE) $(DTRACEFLAGS) -G -s $(DTRACEPROVIDER) $(DTRACESHAREDFILES) -o $@ + $(CP) $(DTRACESHAREDFILES) .libs probes_mysql.o: $(DTRACEPROVIDER) $(DTRACEFILES) $(DTRACE) $(DTRACEFLAGS) -G -s $(DTRACEPROVIDER) $(DTRACEFILES) -o $@ + endif # Don't update the files from bitkeeper |