summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHorst.Hunger <horst.hunger@sun.com>2010-04-26 21:39:24 +0200
committerHorst.Hunger <horst.hunger@sun.com>2010-04-26 21:39:24 +0200
commit7706cac4b1ba2323dd6e74795ae05444ee733fc6 (patch)
tree7ea50b678dc90993877ff7d1fa6f057031144298
parentbef66c5c9ff684de26533153df8188c74dcd45b3 (diff)
downloadmariadb-git-7706cac4b1ba2323dd6e74795ae05444ee733fc6.tar.gz
only This is a backport of the patch for 47739 into trunk.
-rw-r--r--mysql-test/include/have_archive_plugin.inc5
-rw-r--r--mysql-test/r/archive_plugin.result15
-rw-r--r--mysql-test/t/archive_plugin-master.opt1
-rw-r--r--mysql-test/t/archive_plugin.test23
-rw-r--r--storage/archive/Makefile.am20
5 files changed, 54 insertions, 10 deletions
diff --git a/mysql-test/include/have_archive_plugin.inc b/mysql-test/include/have_archive_plugin.inc
new file mode 100644
index 00000000000..98e146ca20b
--- /dev/null
+++ b/mysql-test/include/have_archive_plugin.inc
@@ -0,0 +1,5 @@
+if (`select plugin_library IS NULL from information_schema.plugins where plugin_name LIKE '%archive%'`)
+{
+ --skip archive plugin not available
+}
+
diff --git a/mysql-test/r/archive_plugin.result b/mysql-test/r/archive_plugin.result
new file mode 100644
index 00000000000..221b343cca5
--- /dev/null
+++ b/mysql-test/r/archive_plugin.result
@@ -0,0 +1,15 @@
+CREATE TABLE t1(a int) ENGINE=ARCHIVE;
+Warnings:
+Warning 1286 Unknown storage engine 'ARCHIVE'
+Warning 1266 Using storage engine MyISAM for table 't1'
+DROP TABLE t1;
+INSTALL PLUGIN archive SONAME 'ha_archive.so';
+INSTALL PLUGIN ARCHIVE SONAME 'ha_archive.so';
+ERROR HY000: Function 'ARCHIVE' already exists
+UNINSTALL PLUGIN archive;
+INSTALL PLUGIN archive SONAME 'ha_archive.so';
+CREATE TABLE t1(a int) ENGINE=ARCHIVE;
+DROP TABLE t1;
+UNINSTALL PLUGIN archive;
+UNINSTALL PLUGIN archive;
+ERROR 42000: PLUGIN archive does not exist
diff --git a/mysql-test/t/archive_plugin-master.opt b/mysql-test/t/archive_plugin-master.opt
new file mode 100644
index 00000000000..28e7a6a2831
--- /dev/null
+++ b/mysql-test/t/archive_plugin-master.opt
@@ -0,0 +1 @@
+--plugin_dir=../storage/archive/.libs
diff --git a/mysql-test/t/archive_plugin.test b/mysql-test/t/archive_plugin.test
new file mode 100644
index 00000000000..18b7cddc7d3
--- /dev/null
+++ b/mysql-test/t/archive_plugin.test
@@ -0,0 +1,23 @@
+--source include/not_windows.inc
+--source include/have_archive_plugin.inc
+
+CREATE TABLE t1(a int) ENGINE=ARCHIVE;
+DROP TABLE t1;
+
+INSTALL PLUGIN archive SONAME 'ha_archive.so';
+--error 1125
+INSTALL PLUGIN ARCHIVE SONAME 'ha_archive.so';
+
+UNINSTALL PLUGIN archive;
+
+INSTALL PLUGIN archive SONAME 'ha_archive.so';
+
+CREATE TABLE t1(a int) ENGINE=ARCHIVE;
+
+DROP TABLE t1;
+
+UNINSTALL PLUGIN archive;
+
+--error ER_SP_DOES_NOT_EXIST
+UNINSTALL PLUGIN archive;
+
diff --git a/storage/archive/Makefile.am b/storage/archive/Makefile.am
index bb88ff2e8d1..ca7942c082d 100644
--- a/storage/archive/Makefile.am
+++ b/storage/archive/Makefile.am
@@ -71,24 +71,23 @@ EXTRA_DIST = CMakeLists.txt plug.in
if HAVE_DTRACE_DASH_G
# The object for static and dynamic linking of archive differ
# For static linkage of archive to mysqld
+
libarchive_a_LIBADD = probes_mysql.o
libarchive_a_DEPENDENCIES = probes_mysql.o dtrace_files dtrace_providers
# For archive as shared library
ha_archive_la_LIBADD = probes_sh_mysql.o
-ha_archive_la_DEPENDENCIES = probes_sh_mysql.o dtrace_shared_files dtrace_providers
-
-CLEANFILES = $(DTRACEPROVIDER) dtrace_files dtrace_providers dtrace_shared_files dtrace_sources
-DTRACEFILES = libarchive_a-ha_archive.o
-DTRACESHAREDFILES = .libs/ha_archive_la-ha_archive.o
# Hack: We "depend" on ".libs/" but have no rule for it,
# but it is created as a byproduct of the ".lo"
-DTRACESHAREDDEPEND = ha_archive_la-ha_archive.lo
+DTRACESHAREDDEPS = ha_archive_la-ha_archive.lo
+DTRACESHAREDFILES = ha_archive_la-ha_archive.o
DTRACEPROVIDER = probes_mysql.d
+ha_archive_la_DEPENDENCIES = probes_sh_mysql.o $(DTRACESHAREDDEPS) dtrace_providers
+
+CLEANFILES = $(DTRACEPROVIDER) dtrace_files dtrace_providers $(DTRACESHAREDFILES)
+DTRACEFILES = libarchive_a-ha_archive.o
dtrace_files:
echo $(DTRACEFILES) > $@
-dtrace_shared_files:
- echo $(DTRACESHAREDFILES) > $@
dtrace_providers: probes_mysql.d
echo $(DTRACEPROVIDER) > $@
probes_mysql.d:
@@ -96,11 +95,12 @@ probes_mysql.d:
$(CP) $(top_srcdir)/include/probes_mysql.d.base probes_mysql.d
echo timestamp > dtrace_sources
-probes_sh_mysql.o: $(DTRACEPROVIDER) $(DTRACESHAREDDEPEND)
+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