diff --git a/mysql-test/include/have_archive_plugin.inc b/mysql-test/include/have_archive_plugin.inc new file mode 100644 index 0000000000000000000000000000000000000000..98e146ca20b7ef9a60f8d0cf92bfb21e523d9991 --- /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 0000000000000000000000000000000000000000..221b343cca52d83d4dfeaf653f8da5566073fd76 --- /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 0000000000000000000000000000000000000000..28e7a6a28316c46c0495450384da3669cc6442de --- /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 0000000000000000000000000000000000000000..18b7cddc7d3a14111d9b412be5446681336ade29 --- /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 bb88ff2e8d1616720720651895f30522dc6b43fb..ca7942c082d783ef5e3aa21a12053f53cfa00d01 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