summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorunknown <jperkin/jonathan@chorlton.adsl.perkin.org.uk>2007-12-19 13:24:43 +0000
committerunknown <jperkin/jonathan@chorlton.adsl.perkin.org.uk>2007-12-19 13:24:43 +0000
commit92e31e96a2c6f2f98e77217534fcc3712e7b4fa5 (patch)
tree7e366b1d392d7928acf0727223f607ab5edd44d4
parent333af686bf68b4c0e6d424ce07dda2196df4a2c3 (diff)
downloadmariadb-git-92e31e96a2c6f2f98e77217534fcc3712e7b4fa5.tar.gz
Add new pkgplugindir handling to seperate plugins from libraries,
and allow override for binary distributions. Extend mysql_config to print compiled-in plugin location for third-party plugins to use. Resolves bug#31736. libmysqld/Makefile.am: Use pkgplugindir. plugin/daemon_example/Makefile.am: Use pkgplugindir. plugin/fulltext/Makefile.am: Use pkgplugindir. scripts/Makefile.am: Add pkgplugindir. scripts/make_binary_distribution.sh: Add pkgplugindir. scripts/mysql_config.sh: Add pkgplugindir. sql/Makefile.am: Use pkgplugindir. sql/mysqld.cc: Use PLUGINDIR, derived from pkgplugindir, instead of LIBDIR for plugins. sql/unireg.h: Use PLUGINDIR instead of LIBDIR, and define to be the default setting of pkgplugindir. storage/innobase/Makefile.am: Use pkgplugindir. storage/archive/Makefile.am: Use pkgplugindir. storage/blackhole/Makefile.am: Use pkgplugindir. storage/example/Makefile.am: Use pkgplugindir. storage/federated/Makefile.am: Use pkgplugindir.
-rw-r--r--libmysqld/Makefile.am3
-rw-r--r--mysql-test/r/bdb_notembedded.result35
-rw-r--r--mysql-test/t/bdb_notembedded.test38
-rw-r--r--plugin/daemon_example/Makefile.am5
-rw-r--r--plugin/fulltext/Makefile.am6
-rw-r--r--scripts/Makefile.am3
-rw-r--r--scripts/make_binary_distribution.sh3
-rw-r--r--scripts/mysql_config.sh4
-rw-r--r--sql/Makefile.am3
-rw-r--r--sql/mysqld.cc2
-rw-r--r--sql/unireg.h4
-rw-r--r--storage/archive/Makefile.am5
-rw-r--r--storage/blackhole/Makefile.am5
-rw-r--r--storage/example/Makefile.am5
-rw-r--r--storage/federated/Makefile.am5
-rw-r--r--storage/innobase/Makefile.am3
16 files changed, 110 insertions, 19 deletions
diff --git a/libmysqld/Makefile.am b/libmysqld/Makefile.am
index c0784447216..117f8752629 100644
--- a/libmysqld/Makefile.am
+++ b/libmysqld/Makefile.am
@@ -21,13 +21,14 @@ MYSQLDATAdir = $(localstatedir)
MYSQLSHAREdir = $(pkgdatadir)
MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(libdir)
+pkgplugindir = $(libdir)/@PACKAGE@/plugin
EXTRA_DIST = libmysqld.def CMakeLists.txt
DEFS = -DEMBEDDED_LIBRARY -DMYSQL_SERVER \
-DDEFAULT_MYSQL_HOME="\"$(MYSQLBASEdir)\"" \
-DDATADIR="\"$(MYSQLDATAdir)\"" \
-DSHAREDIR="\"$(MYSQLSHAREdir)\"" \
- -DLIBDIR="\"$(MYSQLLIBdir)\""
+ -DPLUGINDIR="\"$(pkgplugindir)\""
INCLUDES= -I$(top_builddir)/include -I$(top_srcdir)/include \
-I$(top_builddir)/sql -I$(top_srcdir)/sql \
-I$(top_srcdir)/sql/examples \
diff --git a/mysql-test/r/bdb_notembedded.result b/mysql-test/r/bdb_notembedded.result
new file mode 100644
index 00000000000..14cb5fad915
--- /dev/null
+++ b/mysql-test/r/bdb_notembedded.result
@@ -0,0 +1,35 @@
+set autocommit=1;
+reset master;
+create table bug16206 (a int);
+insert into bug16206 values(1);
+start transaction;
+insert into bug16206 values(2);
+commit;
+show binlog events;
+Log_name Pos Event_type Server_id End_log_pos Info
+f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4
+f n Query 1 n use `test`; create table bug16206 (a int)
+f n Query 1 n use `test`; insert into bug16206 values(1)
+f n Query 1 n use `test`; insert into bug16206 values(2)
+drop table bug16206;
+reset master;
+create table bug16206 (a int) engine= bdb;
+insert into bug16206 values(0);
+insert into bug16206 values(1);
+start transaction;
+insert into bug16206 values(2);
+commit;
+insert into bug16206 values(3);
+show binlog events;
+Log_name Pos Event_type Server_id End_log_pos Info
+f n Format_desc 1 n Server ver: VERSION, Binlog ver: 4
+f n Query 1 n use `test`; create table bug16206 (a int) engine= bdb
+f n Query 1 n use `test`; insert into bug16206 values(0)
+f n Query 1 n use `test`; insert into bug16206 values(1)
+f n Query 1 n use `test`; BEGIN
+f n Query 1 n use `test`; insert into bug16206 values(2)
+f n Query 1 n use `test`; COMMIT
+f n Query 1 n use `test`; insert into bug16206 values(3)
+drop table bug16206;
+set autocommit=0;
+End of 5.0 tests
diff --git a/mysql-test/t/bdb_notembedded.test b/mysql-test/t/bdb_notembedded.test
new file mode 100644
index 00000000000..24e64ebbfb2
--- /dev/null
+++ b/mysql-test/t/bdb_notembedded.test
@@ -0,0 +1,38 @@
+-- source include/not_embedded.inc
+-- source include/have_bdb.inc
+
+#
+# Bug #16206: Superfluous COMMIT event in binlog when updating BDB in autocommit mode
+#
+set autocommit=1;
+
+let $VERSION=`select version()`;
+
+reset master;
+create table bug16206 (a int);
+insert into bug16206 values(1);
+start transaction;
+insert into bug16206 values(2);
+commit;
+--replace_result $VERSION VERSION
+--replace_column 1 f 2 n 5 n
+show binlog events;
+drop table bug16206;
+
+reset master;
+create table bug16206 (a int) engine= bdb;
+insert into bug16206 values(0);
+insert into bug16206 values(1);
+start transaction;
+insert into bug16206 values(2);
+commit;
+insert into bug16206 values(3);
+--replace_result $VERSION VERSION
+--replace_column 1 f 2 n 5 n
+show binlog events;
+drop table bug16206;
+
+set autocommit=0;
+
+
+--echo End of 5.0 tests
diff --git a/plugin/daemon_example/Makefile.am b/plugin/daemon_example/Makefile.am
index 92b1ab040fb..4256fecd873 100644
--- a/plugin/daemon_example/Makefile.am
+++ b/plugin/daemon_example/Makefile.am
@@ -18,14 +18,15 @@ MYSQLDATAdir = $(localstatedir)
MYSQLSHAREdir = $(pkgdatadir)
MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(pkglibdir)
+pkgplugindir = $(libdir)/@PACKAGE@/plugin
INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \
-I$(top_srcdir)/regex \
-I$(top_srcdir)/sql \
-I$(srcdir) @ZLIB_INCLUDES@
EXTRA_LTLIBRARIES = libdaemon_example.la
-pkglib_LTLIBRARIES = @plugin_daemon_example_shared_target@
-libdaemon_example_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
+pkgplugin_LTLIBRARIES = @plugin_daemon_example_shared_target@
+libdaemon_example_la_LDFLAGS = -module -rpath $(pkgplugindir)
libdaemon_example_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
libdaemon_example_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
libdaemon_example_la_SOURCES = daemon_example.cc
diff --git a/plugin/fulltext/Makefile.am b/plugin/fulltext/Makefile.am
index ec033018a00..2b9d075bae0 100644
--- a/plugin/fulltext/Makefile.am
+++ b/plugin/fulltext/Makefile.am
@@ -15,12 +15,12 @@
#Makefile.am example for a plugin
-pkglibdir=$(libdir)/mysql
+pkgplugindir=$(libdir)/@PACKAGE@/plugin
INCLUDES= -I$(top_builddir)/include -I$(top_srcdir)/include
#noinst_LTLIBRARIES= mypluglib.la
-pkglib_LTLIBRARIES= mypluglib.la
+pkgplugin_LTLIBRARIES= mypluglib.la
mypluglib_la_SOURCES= plugin_example.c
-mypluglib_la_LDFLAGS= -module -rpath $(pkglibdir)
+mypluglib_la_LDFLAGS= -module -rpath $(pkgplugindir)
mypluglib_la_CFLAGS= -DMYSQL_DYNAMIC_PLUGIN
# Don't update the files from bitkeeper
diff --git a/scripts/Makefile.am b/scripts/Makefile.am
index fc4359fd872..8669e075959 100644
--- a/scripts/Makefile.am
+++ b/scripts/Makefile.am
@@ -90,6 +90,8 @@ CLEANFILES = @server_scripts@ \
mysql_tableinfo \
mysqld_multi
+pkgplugindir = $(libdir)/@PACKAGE@/plugin
+
# Default same as 'pkgdatadir', but we can override it
pkgsuppdir = $(datadir)/@PACKAGE@
@@ -137,6 +139,7 @@ SUFFIXES = .sh
-e 's!@''pkglibdir''@!$(pkglibdir)!g' \
-e 's!@''pkgincludedir''@!$(pkgincludedir)!g' \
-e 's!@''pkgdatadir''@!$(pkgdatadir)!g' \
+ -e 's!@''pkgplugindir''@!$(pkgplugindir)!g' \
-e 's!@''pkgsuppdir''@!$(pkgsuppdir)!g' \
-e 's!@''sysconfdir''@!$(sysconfdir)!g' \
-e 's!@''mandir''@!$(mandir)!g' \
diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh
index 8d3e2133a45..88397052815 100644
--- a/scripts/make_binary_distribution.sh
+++ b/scripts/make_binary_distribution.sh
@@ -30,6 +30,8 @@
# "pkglibdir" is set to the same as "libdir"
# "pkgincludedir" is set to the same as "includedir"
# "pkgdatadir" is set to the same as "datadir"
+# "pkgplugindir" is set to "@prefix@/lib/plugin",
+# normally "$libdir/plugin"
# "pkgsuppdir" is set to "@prefix@/support-files",
# normally the same as "datadir"
#
@@ -204,6 +206,7 @@ if [ x"$BASE_SYSTEM" != x"netware" ] ; then
pkglibdir=@pkglibdir@ \
pkgincludedir=@pkgincludedir@ \
pkgdatadir=@pkgdatadir@ \
+ pkgplugindir=@pkgplugindir@ \
pkgsuppdir=@pkgsuppdir@ \
mandir=@mandir@ \
infodir=@infodir@
diff --git a/scripts/mysql_config.sh b/scripts/mysql_config.sh
index ae58655ed0f..110c425ea5b 100644
--- a/scripts/mysql_config.sh
+++ b/scripts/mysql_config.sh
@@ -87,6 +87,8 @@ pkglibdir='@pkglibdir@'
pkglibdir_rel=`echo $pkglibdir | sed -e "s;^$basedir/;;"`
fix_path pkglibdir $pkglibdir_rel lib/mysql lib
+plugindir='@pkgplugindir@'
+
pkgincludedir='@pkgincludedir@'
fix_path pkgincludedir include/mysql include
@@ -147,6 +149,7 @@ Options:
--include [$include]
--libs [$libs]
--libs_r [$libs_r]
+ --plugindir [$plugindir]
--socket [$socket]
--port [$port]
--version [$version]
@@ -163,6 +166,7 @@ while test $# -gt 0; do
--include) echo "$include" ;;
--libs) echo "$libs" ;;
--libs_r) echo "$libs_r" ;;
+ --plugindir) echo "$plugindir" ;;
--socket) echo "$socket" ;;
--port) echo "$port" ;;
--version) echo "$version" ;;
diff --git a/sql/Makefile.am b/sql/Makefile.am
index 0081417d492..02a92dee7a7 100644
--- a/sql/Makefile.am
+++ b/sql/Makefile.am
@@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir)
MYSQLSHAREdir = $(pkgdatadir)
MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(pkglibdir)
+pkgplugindir = $(libdir)/@PACKAGE@/plugin
INCLUDES = @ZLIB_INCLUDES@ \
-I$(top_builddir)/include -I$(top_srcdir)/include \
-I$(top_srcdir)/regex -I$(srcdir) $(openssl_includes)
@@ -136,7 +137,7 @@ DEFS = -DMYSQL_SERVER \
-DDEFAULT_MYSQL_HOME="\"$(MYSQLBASEdir)\"" \
-DDATADIR="\"$(MYSQLDATAdir)\"" \
-DSHAREDIR="\"$(MYSQLSHAREdir)\"" \
- -DLIBDIR="\"$(MYSQLLIBdir)\"" \
+ -DPLUGINDIR="\"$(pkgplugindir)\"" \
@DEFS@
BUILT_MAINT_SRC = sql_yacc.cc sql_yacc.h
diff --git a/sql/mysqld.cc b/sql/mysqld.cc
index 2f264482d94..48e486f8d02 100644
--- a/sql/mysqld.cc
+++ b/sql/mysqld.cc
@@ -8032,7 +8032,7 @@ static void fix_paths(void)
(void) my_load_path(mysql_real_data_home,mysql_real_data_home,mysql_home);
(void) my_load_path(pidfile_name,pidfile_name,mysql_real_data_home);
(void) my_load_path(opt_plugin_dir, opt_plugin_dir_ptr ? opt_plugin_dir_ptr :
- get_relative_path(LIBDIR), mysql_home);
+ get_relative_path(PLUGINDIR), mysql_home);
opt_plugin_dir_ptr= opt_plugin_dir;
char *sharedir=get_relative_path(SHAREDIR);
diff --git a/sql/unireg.h b/sql/unireg.h
index f0b4a88c7f8..d6a72e6589f 100644
--- a/sql/unireg.h
+++ b/sql/unireg.h
@@ -35,8 +35,8 @@
#ifndef SHAREDIR
#define SHAREDIR "share/"
#endif
-#ifndef LIBDIR
-#define LIBDIR "lib/"
+#ifndef PLUGINDIR
+#define PLUGINDIR "lib/plugin"
#endif
#define ER(X) errmesg[(X) - ER_ERROR_FIRST]
diff --git a/storage/archive/Makefile.am b/storage/archive/Makefile.am
index 4920527e0e9..55f2380ec31 100644
--- a/storage/archive/Makefile.am
+++ b/storage/archive/Makefile.am
@@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir)
MYSQLSHAREdir = $(pkgdatadir)
MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(pkglibdir)
+pkgplugindir = $(libdir)/@PACKAGE@/plugin
INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \
-I$(top_srcdir)/regex \
-I$(top_srcdir)/sql \
@@ -33,8 +34,8 @@ noinst_HEADERS = ha_archive.h azlib.h
noinst_PROGRAMS = archive_test archive_reader
EXTRA_LTLIBRARIES = ha_archive.la
-pkglib_LTLIBRARIES = @plugin_archive_shared_target@
-ha_archive_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
+pkgplugin_LTLIBRARIES = @plugin_archive_shared_target@
+ha_archive_la_LDFLAGS = -module -rpath $(pkgplugindir)
ha_archive_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
ha_archive_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
ha_archive_la_SOURCES = ha_archive.cc azio.c
diff --git a/storage/blackhole/Makefile.am b/storage/blackhole/Makefile.am
index 9dd533dd4fa..9810dff5866 100644
--- a/storage/blackhole/Makefile.am
+++ b/storage/blackhole/Makefile.am
@@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir)
MYSQLSHAREdir = $(pkgdatadir)
MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(pkglibdir)
+pkgplugindir = $(libdir)/@PACKAGE@/plugin
INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \
-I$(top_srcdir)/regex \
-I$(top_srcdir)/sql \
@@ -32,8 +33,8 @@ DEFS = @DEFS@
noinst_HEADERS = ha_blackhole.h
EXTRA_LTLIBRARIES = ha_blackhole.la
-pkglib_LTLIBRARIES = @plugin_blackhole_shared_target@
-ha_blackhole_la_LDFLAGS=-module -rpath $(MYSQLLIBdir)
+pkgplugin_LTLIBRARIES = @plugin_blackhole_shared_target@
+ha_blackhole_la_LDFLAGS=-module -rpath $(pkgplugindir)
ha_blackhole_la_CXXFLAGS=$(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
ha_blackhole_la_CFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
ha_blackhole_la_SOURCES=ha_blackhole.cc
diff --git a/storage/example/Makefile.am b/storage/example/Makefile.am
index 73016d24b57..bf121e70f29 100644
--- a/storage/example/Makefile.am
+++ b/storage/example/Makefile.am
@@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir)
MYSQLSHAREdir = $(pkgdatadir)
MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(pkglibdir)
+pkgplugindir = $(libdir)/@PACKAGE@/libdir
INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \
-I$(top_srcdir)/regex \
-I$(top_srcdir)/sql \
@@ -32,8 +33,8 @@ DEFS = @DEFS@
noinst_HEADERS = ha_example.h
EXTRA_LTLIBRARIES = ha_example.la
-pkglib_LTLIBRARIES = @plugin_example_shared_target@
-ha_example_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
+pkgplugin_LTLIBRARIES = @plugin_example_shared_target@
+ha_example_la_LDFLAGS = -module -rpath $(pkgplugindir)
ha_example_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
ha_example_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
ha_example_la_SOURCES = ha_example.cc
diff --git a/storage/federated/Makefile.am b/storage/federated/Makefile.am
index 287b2cb1696..d2ee37c402a 100644
--- a/storage/federated/Makefile.am
+++ b/storage/federated/Makefile.am
@@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir)
MYSQLSHAREdir = $(pkgdatadir)
MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(pkglibdir)
+pkgplugindir = $(libdir)/@PACKAGE@/plugin
INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \
-I$(top_srcdir)/regex \
-I$(top_srcdir)/sql \
@@ -32,8 +33,8 @@ DEFS = @DEFS@
noinst_HEADERS = ha_federated.h
EXTRA_LTLIBRARIES = ha_federated.la
-pkglib_LTLIBRARIES = @plugin_federated_shared_target@
-ha_federated_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
+pkgplugin_LTLIBRARIES = @plugin_federated_shared_target@
+ha_federated_la_LDFLAGS = -module -rpath $(pkgplugindir)
ha_federated_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
ha_federated_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
ha_federated_la_SOURCES = ha_federated.cc
diff --git a/storage/innobase/Makefile.am b/storage/innobase/Makefile.am
index 30e056d68fb..8a5ce6d8a4b 100644
--- a/storage/innobase/Makefile.am
+++ b/storage/innobase/Makefile.am
@@ -19,6 +19,7 @@ MYSQLDATAdir = $(localstatedir)
MYSQLSHAREdir = $(pkgdatadir)
MYSQLBASEdir= $(prefix)
MYSQLLIBdir= $(pkglibdir)
+pkgplugindir = $(libdir)/@PACKAGE@/libdir
INCLUDES = -I$(top_srcdir)/include -I$(top_builddir)/include \
-I$(top_srcdir)/regex \
-I$(top_srcdir)/storage/innobase/include \
@@ -160,7 +161,7 @@ libinnobase_a_CFLAGS = $(AM_CFLAGS)
EXTRA_LTLIBRARIES = ha_innodb.la
pkglib_LTLIBRARIES = @plugin_innobase_shared_target@
-ha_innodb_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
+ha_innodb_la_LDFLAGS = -module -rpath $(pkgplugindir)
ha_innodb_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
ha_innodb_la_CFLAGS = $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
ha_innodb_la_SOURCES = $(libinnobase_a_SOURCES)