From 9eae31abc471803c2e25adc8b426a4a65a3feeb5 Mon Sep 17 00:00:00 2001 From: "Horst.Hunger" Date: Wed, 5 May 2010 09:35:38 +0200 Subject: [PATCH] Patch for 47759 to trunk-bugfixing. --- mysql-test/include/have_federated_plugin.inc | 5 ++++ .../federated/federated_plugin-master.opt | 2 ++ .../suite/federated/federated_plugin.result | 0 .../suite/federated/federated_plugin.test | 22 ++++++++++++++++ storage/federated/Makefile.am | 26 +++++++++++++++---- 5 files changed, 50 insertions(+), 5 deletions(-) create mode 100644 mysql-test/include/have_federated_plugin.inc create mode 100644 mysql-test/suite/federated/federated_plugin-master.opt create mode 100644 mysql-test/suite/federated/federated_plugin.result create mode 100644 mysql-test/suite/federated/federated_plugin.test diff --git a/mysql-test/include/have_federated_plugin.inc b/mysql-test/include/have_federated_plugin.inc new file mode 100644 index 00000000000..5c7549de53f --- /dev/null +++ b/mysql-test/include/have_federated_plugin.inc @@ -0,0 +1,5 @@ +if (`select plugin_library IS NULL from information_schema.plugins where plugin_name LIKE '%federated%'`) +{ + --skip federated plugin not available +} + diff --git a/mysql-test/suite/federated/federated_plugin-master.opt b/mysql-test/suite/federated/federated_plugin-master.opt new file mode 100644 index 00000000000..ac2e9458e5f --- /dev/null +++ b/mysql-test/suite/federated/federated_plugin-master.opt @@ -0,0 +1,2 @@ +--plugin_dir=../storage/federated/.libs + diff --git a/mysql-test/suite/federated/federated_plugin.result b/mysql-test/suite/federated/federated_plugin.result new file mode 100644 index 00000000000..e69de29bb2d diff --git a/mysql-test/suite/federated/federated_plugin.test b/mysql-test/suite/federated/federated_plugin.test new file mode 100644 index 00000000000..81421e226b1 --- /dev/null +++ b/mysql-test/suite/federated/federated_plugin.test @@ -0,0 +1,22 @@ +--source include/not_windows.inc +--source include/have_federated_plugin.inc + +CREATE TABLE t1(a int) ENGINE=FEDERATED; +DROP TABLE t1; + +INSTALL PLUGIN federated SONAME 'ha_federated.so'; +--error 1125 +INSTALL PLUGIN FEDERATED SONAME 'ha_federated.so'; + +UNINSTALL PLUGIN federated; + +INSTALL PLUGIN federated SONAME 'ha_federated.so'; + +CREATE TABLE t1(a int) ENGINE=FEDERATED; + +DROP TABLE t1; + +UNINSTALL PLUGIN federated; +--error ER_SP_DOES_NOT_EXIST +UNINSTALL PLUGIN federated; + diff --git a/storage/federated/Makefile.am b/storage/federated/Makefile.am index 58e08b1462a..aa275b909ea 100644 --- a/storage/federated/Makefile.am +++ b/storage/federated/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. @@ -23,7 +23,8 @@ pkgplugindir = $(pkglibdir)/plugin INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \ -I$(top_srcdir)/regex \ -I$(top_srcdir)/sql \ - -I$(srcdir) + -I$(srcdir) + WRAPLIBS= LDADD = @@ -50,11 +51,22 @@ libfederated_a_SOURCES= ha_federated.cc EXTRA_DIST = CMakeLists.txt plug.in if HAVE_DTRACE_DASH_G +# The object for static and dynamic linking of federated differ +# For static linkage of federated to mysqld + libfederated_a_LIBADD = probes_mysql.o libfederated_a_DEPENDENCIES = probes_mysql.o dtrace_files dtrace_providers -CLEANFILES = probes_mysql.o dtrace_files dtrace_providers -DTRACEFILES = libfederated_a-ha_federated.o +# For federated as shared library +ha_federated_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_federated_la-ha_federated.lo +DTRACESHAREDFILES = ha_federated_la-ha_federated.o DTRACEPROVIDER = probes_mysql.d +ha_federated_la_DEPENDENCIES = probes_sh_mysql.o $(DTRACESHAREDDEPS) dtrace_providers + +CLEANFILES = $(DTRACEPROVIDER) dtrace_files dtrace_providers $(DTRACESHAREDFILES) +DTRACEFILES = libfederated_a-ha_federated.o dtrace_files: echo $(DTRACEFILES) > $@ @@ -65,8 +77,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