Merge xiphis.org:/home/antony/work2/wl3201.3
into xiphis.org:/home/antony/work2/wl3201.merge
This commit is contained in:
commit
53d4594cfe
@ -147,18 +147,9 @@ static_link="$static_link --with-client-ldflags=-all-static"
|
||||
local_infile_configs="--enable-local-infile"
|
||||
|
||||
|
||||
max_configs="--with-innodb --with-berkeley-db"
|
||||
max_configs="$max_configs --with-archive-storage-engine"
|
||||
max_configs="$max_configs --with-big-tables"
|
||||
max_configs="$max_configs --with-blackhole-storage-engine"
|
||||
max_configs="$max_configs --with-federated-storage-engine"
|
||||
max_configs="$max_configs --with-csv-storage-engine"
|
||||
max_configs="$max_configs --with-example-storage-engine"
|
||||
max_configs="$max_configs --with-partition $SSL_LIBRARY"
|
||||
|
||||
max_no_embedded_configs="$max_configs --with-ndbcluster"
|
||||
max_no_ndb_configs="$max_configs --without-ndbcluster --with-embedded-server"
|
||||
max_configs="$max_configs --with-ndbcluster --with-embedded-server"
|
||||
max_no_embedded_configs="$SSL_LIBRARY --with-modules=max"
|
||||
max_no_ndb_configs="$SSL_LIBRARY --with-modules=max-no-ndb --with-embedded-server"
|
||||
max_configs="$SSL_LIBRARY --with-modules=max --with-embedded-server"
|
||||
|
||||
#
|
||||
# CPU and platform specific compilation flags.
|
||||
|
@ -26,7 +26,6 @@ SUBDIRS = . include @docs_dirs@ @zlib_dir@ \
|
||||
@thread_dirs@ pstack \
|
||||
@sql_union_dirs@ storage \
|
||||
@sql_server@ scripts @man_dirs@ tests \
|
||||
@mysql_se_plugins@ \
|
||||
netware @libmysqld_dirs@ \
|
||||
mysql-test support-files @tools_dirs@ \
|
||||
plugin unittest win
|
||||
|
@ -9,56 +9,53 @@ SET(WITH_CSV_STORAGE_ENGINE TRUE)
|
||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/include/mysql_version.h.in
|
||||
${CMAKE_SOURCE_DIR}/include/mysql_version.h @ONLY)
|
||||
|
||||
SET(WITH_HEAP_STORAGE_ENGINE TRUE)
|
||||
ADD_DEFINITIONS(-D WITH_HEAP_STORAGE_ENGINE)
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_heap_plugin")
|
||||
|
||||
SET(WITH_MYISAM_STORAGE_ENGINE TRUE)
|
||||
ADD_DEFINITIONS(-D WITH_MYISAM_STORAGE_ENGINE)
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisam_plugin")
|
||||
|
||||
SET(WITH_MYISAMMRG_STORAGE_ENGINE TRUE)
|
||||
ADD_DEFINITIONS(-D WITH_MYISAMMRG_STORAGE_ENGINE)
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_myisammrg_plugin")
|
||||
|
||||
IF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &archive_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, archive_hton")
|
||||
SET (mysql_se_ha_src ${mysql_se_ha_src} "../sql/ha_archive.cc")
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_archive_plugin")
|
||||
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &blackhole_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, blackhole_hton")
|
||||
SET (mysql_se_ha_src ${mysql_se_ha_src} "../sql/ha_blackhole.cc")
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_blackhole_plugin")
|
||||
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
IF(WITH_CSV_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_CSV_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &tina_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, tina_hton")
|
||||
SET (mysql_se_ha_src ${mysql_se_ha_src} "../storage/csv/ha_tina.cc")
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_csv_plugin")
|
||||
ENDIF(WITH_CSV_STORAGE_ENGINE)
|
||||
IF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &example_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, example_hton")
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_example_plugin")
|
||||
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
IF(WITH_INNOBASE_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_INNOBASE_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &innobase_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, innobase_hton")
|
||||
SET (mysql_se_ha_src ${mysql_se_ha_src} "../sql/ha_innodb.cc")
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_innobase_plugin")
|
||||
ENDIF(WITH_INNOBASE_STORAGE_ENGINE)
|
||||
IF(WITH_PARTITION_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_PARTITION_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &partition_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, partition_hton")
|
||||
SET (mysql_se_ha_src ${mysql_se_ha_src} "../sql/ha_partition.cc")
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_partition_plugin")
|
||||
ENDIF(WITH_PARTITION_STORAGE_ENGINE)
|
||||
IF(WITH_FEDERATED_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_FEDERATED_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &federated_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, federated_hton")
|
||||
SET (mysql_se_ha_src ${mysql_se_ha_src} "../sql/ha_federated.cc")
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_federated_plugin")
|
||||
ENDIF(WITH_FEDERATED_STORAGE_ENGINE)
|
||||
IF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
ADD_DEFINITIONS(-D WITH_BERKELEY_STORAGE_ENGINE)
|
||||
SET (mysql_se_htons "${mysql_se_htons}, &berkeley_hton")
|
||||
SET (mysql_se_decls "${mysql_se_decls}, berkeley_hton")
|
||||
SET (mysql_se_ha_src ${mysql_se_ha_src} "../sql/ha_berkeley.cc")
|
||||
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_berkeley_plugin")
|
||||
ENDIF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
|
||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/handlerton.cc.in
|
||||
${CMAKE_SOURCE_DIR}/sql/handlerton.cc @ONLY)
|
||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc.in
|
||||
${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc @ONLY)
|
||||
|
||||
SET(localstatedir "C:\\mysql\\data")
|
||||
CONFIGURE_FILE(${CMAKE_SOURCE_DIR}/support-files/my-huge.cnf.sh
|
||||
@ -137,6 +134,12 @@ ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
IF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/bdb)
|
||||
ENDIF(WITH_BERKELEY_STORAGE_ENGINE)
|
||||
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/blackhole)
|
||||
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
IF(WITH_CSV_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/csv)
|
||||
ENDIF(WITH_CSV_STORAGE_ENGINE)
|
||||
IF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
ADD_SUBDIRECTORY(storage/example)
|
||||
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
|
@ -1,29 +0,0 @@
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CHECK_ARCHIVEDB
|
||||
dnl Sets HAVE_ARCHIVE_DB if --with-archive-storage-engine is used
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_DEFUN([MYSQL_CHECK_ARCHIVEDB], [
|
||||
AC_ARG_WITH([archive-storage-engine],
|
||||
[
|
||||
--with-archive-storage-engine
|
||||
Enable the Archive Storage Engine],
|
||||
[archivedb="$withval"],
|
||||
[archivedb=no])
|
||||
AC_MSG_CHECKING([for archive storage engine])
|
||||
|
||||
case "$archivedb" in
|
||||
yes )
|
||||
AC_DEFINE([HAVE_ARCHIVE_DB], [1], [Builds Archive Storage Engine])
|
||||
AC_MSG_RESULT([yes])
|
||||
[archivedb=yes]
|
||||
;;
|
||||
* )
|
||||
AC_MSG_RESULT([no])
|
||||
[archivedb=no]
|
||||
;;
|
||||
esac
|
||||
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl END OF MYSQL_CHECK_ARCHIVE SECTION
|
||||
dnl ---------------------------------------------------------------------------
|
@ -120,12 +120,9 @@ AC_DEFUN([MYSQL_SETUP_BERKELEY_DB], [
|
||||
sh $rel_srcdir/$bdb/dist/configure $bdb_conf_flags) || \
|
||||
AC_MSG_ERROR([could not configure Berkeley DB])
|
||||
|
||||
mysql_se_libs="$mysql_se_libs $bdb_libs_with_path"
|
||||
|
||||
AC_SUBST(bdb_includes)
|
||||
AC_SUBST(bdb_libs)
|
||||
AC_SUBST(bdb_libs_with_path)
|
||||
AC_CONFIG_FILES(storage/bdb/Makefile)
|
||||
])
|
||||
|
||||
AC_DEFUN([MYSQL_CHECK_INSTALLED_BDB], [
|
||||
|
@ -1,29 +0,0 @@
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CHECK_BLACKHOLEDB
|
||||
dnl Sets HAVE_BLACKHOLE_DB if --with-blackhole-storage-engine is used
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_DEFUN([MYSQL_CHECK_BLACKHOLEDB], [
|
||||
AC_ARG_WITH([blackhole-storage-engine],
|
||||
[
|
||||
--with-blackhole-storage-engine
|
||||
Enable the Blackhole Storage Engine],
|
||||
[blackholedb="$withval"],
|
||||
[blackholedb=no])
|
||||
AC_MSG_CHECKING([for blackhole storage engine])
|
||||
|
||||
case "$blackholedb" in
|
||||
yes )
|
||||
AC_DEFINE([HAVE_BLACKHOLE_DB], [1], [Builds Blackhole Storage Engine])
|
||||
AC_MSG_RESULT([yes])
|
||||
[blackholedb=yes]
|
||||
;;
|
||||
* )
|
||||
AC_MSG_RESULT([no])
|
||||
[blackholedb=no]
|
||||
;;
|
||||
esac
|
||||
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl END OF MYSQL_CHECK_BLACKHOLE SECTION
|
||||
dnl ---------------------------------------------------------------------------
|
@ -1,30 +0,0 @@
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CHECK_EXAMPLEDB
|
||||
dnl Sets HAVE_EXAMPLE_DB if --with-example-storage-engine is used
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_DEFUN([MYSQL_CHECK_EXAMPLEDB], [
|
||||
AC_ARG_WITH([example-storage-engine],
|
||||
[
|
||||
--with-example-storage-engine
|
||||
Enable the Example Storage Engine],
|
||||
[exampledb="$withval"],
|
||||
[exampledb=no])
|
||||
AC_MSG_CHECKING([for example storage engine])
|
||||
|
||||
case "$exampledb" in
|
||||
yes )
|
||||
AC_DEFINE([HAVE_EXAMPLE_DB], [1], [Builds Example DB])
|
||||
AC_MSG_RESULT([yes])
|
||||
[exampledb=yes]
|
||||
;;
|
||||
* )
|
||||
AC_MSG_RESULT([no])
|
||||
[exampledb=no]
|
||||
;;
|
||||
esac
|
||||
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl END OF MYSQL_CHECK_EXAMPLE SECTION
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
@ -1,29 +0,0 @@
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CHECK_FEDERATED
|
||||
dnl Sets HAVE_FEDERATED if --with-federated-storage-engine is used
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_DEFUN([MYSQL_CHECK_FEDERATED], [
|
||||
AC_ARG_WITH([federated-storage-engine],
|
||||
[
|
||||
--with-federated-storage-engine
|
||||
Enable the MySQL Federated Storage Engine],
|
||||
[federateddb="$withval"],
|
||||
[federateddb=no])
|
||||
AC_MSG_CHECKING([for MySQL federated storage engine])
|
||||
|
||||
case "$federateddb" in
|
||||
yes )
|
||||
AC_DEFINE([HAVE_FEDERATED_DB], [1], [Define to enable Federated Handler])
|
||||
AC_MSG_RESULT([yes])
|
||||
[federateddb=yes]
|
||||
;;
|
||||
* )
|
||||
AC_MSG_RESULT([no])
|
||||
[federateddb=no]
|
||||
;;
|
||||
esac
|
||||
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl END OF MYSQL_CHECK_FEDERATED SECTION
|
||||
dnl ---------------------------------------------------------------------------
|
@ -1,77 +0,0 @@
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CHECK_INNODB
|
||||
dnl Sets HAVE_INNOBASE_DB if --with-innodb is used
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_CHECK_INNODB], [
|
||||
AC_ARG_WITH([innodb],
|
||||
[
|
||||
--without-innodb Do not include the InnoDB table handler],
|
||||
[innodb="$withval"],
|
||||
[innodb=yes])
|
||||
|
||||
AC_MSG_CHECKING([for Innodb])
|
||||
|
||||
have_innodb=no
|
||||
innodb_includes=
|
||||
innodb_libs=
|
||||
case "$innodb" in
|
||||
yes )
|
||||
AC_MSG_RESULT([Using Innodb])
|
||||
AC_DEFINE([HAVE_INNOBASE_DB], [1], [Using Innobase DB])
|
||||
have_innodb="yes"
|
||||
innodb_includes="-I\$(top_builddir)/innobase/include"
|
||||
innodb_system_libs=""
|
||||
dnl Some libs are listed several times, in order for gcc to sort out
|
||||
dnl circular references.
|
||||
innodb_libs="\
|
||||
\$(top_builddir)/storage/innobase/usr/libusr.a\
|
||||
\$(top_builddir)/storage/innobase/srv/libsrv.a\
|
||||
\$(top_builddir)/storage/innobase/dict/libdict.a\
|
||||
\$(top_builddir)/storage/innobase/que/libque.a\
|
||||
\$(top_builddir)/storage/innobase/srv/libsrv.a\
|
||||
\$(top_builddir)/storage/innobase/ibuf/libibuf.a\
|
||||
\$(top_builddir)/storage/innobase/row/librow.a\
|
||||
\$(top_builddir)/storage/innobase/pars/libpars.a\
|
||||
\$(top_builddir)/storage/innobase/btr/libbtr.a\
|
||||
\$(top_builddir)/storage/innobase/trx/libtrx.a\
|
||||
\$(top_builddir)/storage/innobase/read/libread.a\
|
||||
\$(top_builddir)/storage/innobase/usr/libusr.a\
|
||||
\$(top_builddir)/storage/innobase/buf/libbuf.a\
|
||||
\$(top_builddir)/storage/innobase/ibuf/libibuf.a\
|
||||
\$(top_builddir)/storage/innobase/eval/libeval.a\
|
||||
\$(top_builddir)/storage/innobase/log/liblog.a\
|
||||
\$(top_builddir)/storage/innobase/fsp/libfsp.a\
|
||||
\$(top_builddir)/storage/innobase/fut/libfut.a\
|
||||
\$(top_builddir)/storage/innobase/fil/libfil.a\
|
||||
\$(top_builddir)/storage/innobase/lock/liblock.a\
|
||||
\$(top_builddir)/storage/innobase/mtr/libmtr.a\
|
||||
\$(top_builddir)/storage/innobase/page/libpage.a\
|
||||
\$(top_builddir)/storage/innobase/rem/librem.a\
|
||||
\$(top_builddir)/storage/innobase/thr/libthr.a\
|
||||
\$(top_builddir)/storage/innobase/sync/libsync.a\
|
||||
\$(top_builddir)/storage/innobase/data/libdata.a\
|
||||
\$(top_builddir)/storage/innobase/mach/libmach.a\
|
||||
\$(top_builddir)/storage/innobase/ha/libha.a\
|
||||
\$(top_builddir)/storage/innobase/dyn/libdyn.a\
|
||||
\$(top_builddir)/storage/innobase/mem/libmem.a\
|
||||
\$(top_builddir)/storage/innobase/sync/libsync.a\
|
||||
\$(top_builddir)/storage/innobase/ut/libut.a\
|
||||
\$(top_builddir)/storage/innobase/os/libos.a\
|
||||
\$(top_builddir)/storage/innobase/ut/libut.a"
|
||||
|
||||
AC_CHECK_LIB(rt, aio_read, [innodb_system_libs="-lrt"])
|
||||
;;
|
||||
* )
|
||||
AC_MSG_RESULT([Not using Innodb])
|
||||
;;
|
||||
esac
|
||||
|
||||
AC_SUBST(innodb_includes)
|
||||
AC_SUBST(innodb_libs)
|
||||
AC_SUBST(innodb_system_libs)
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl END OF MYSQL_CHECK_INNODB SECTION
|
||||
dnl ---------------------------------------------------------------------------
|
@ -191,7 +191,6 @@ AC_DEFUN([MYSQL_SETUP_NDBCLUSTER], [
|
||||
ndbcluster_libs="\$(top_builddir)/storage/ndb/src/.libs/libndbclient.a"
|
||||
ndbcluster_system_libs=""
|
||||
ndb_mgmclient_libs="\$(top_builddir)/storage/ndb/src/mgmclient/libndbmgmclient.la"
|
||||
mysql_se_objs="$mysql_se_objs ha_ndbcluster_binlog.o"
|
||||
|
||||
MYSQL_CHECK_NDB_OPTIONS
|
||||
NDBCLUSTER_WORKAROUNDS
|
||||
@ -282,9 +281,6 @@ AC_DEFUN([MYSQL_SETUP_NDBCLUSTER], [
|
||||
ndb_bin_am_ldflags=""
|
||||
fi
|
||||
|
||||
mysql_se_libs="$mysql_se_libs $ndbcluster_libs $ndbcluster_system_libs"
|
||||
mysql_se_libs="$mysql_se_libs $NDB_SCI_LIBS"
|
||||
|
||||
AC_SUBST(NDB_VERSION_MAJOR)
|
||||
AC_SUBST(NDB_VERSION_MINOR)
|
||||
AC_SUBST(NDB_VERSION_BUILD)
|
||||
@ -302,6 +298,7 @@ AC_DEFUN([MYSQL_SETUP_NDBCLUSTER], [
|
||||
AC_SUBST(ndbcluster_libs)
|
||||
AC_SUBST(ndbcluster_system_libs)
|
||||
AC_SUBST(ndb_mgmclient_libs)
|
||||
AC_SUBST(NDB_SCI_LIBS)
|
||||
|
||||
AC_SUBST(ndb_transporter_opt_objs)
|
||||
AC_SUBST(ndb_port)
|
||||
|
@ -1,33 +0,0 @@
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CHECK_PARTITIONDB
|
||||
dnl Sets HAVE_PARTITION_DB if --with-partition is used
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_DEFUN([MYSQL_CHECK_PARTITIONDB], [
|
||||
AC_ARG_WITH([partition],
|
||||
[
|
||||
--with-partition
|
||||
Enable the Partition Storage Engine],
|
||||
[partitiondb="$withval"],
|
||||
[partitiondb=no])
|
||||
AC_MSG_CHECKING([for partition])
|
||||
|
||||
dnl case "$partitiondb" in
|
||||
dnl yes )
|
||||
dnl AC_DEFINE([HAVE_PARTITION_DB], [1], [Builds Partition DB])
|
||||
dnl AC_MSG_RESULT([yes])
|
||||
dnl [partitiondb=yes]
|
||||
dnl ;;
|
||||
dnl * )
|
||||
dnl AC_MSG_RESULT([no])
|
||||
dnl [partitiondb=no]
|
||||
dnl ;;
|
||||
dnl esac
|
||||
AC_DEFINE([HAVE_PARTITION_DB], [1], [Builds Partition DB])
|
||||
AC_MSG_RESULT([yes])
|
||||
[partitiondb=yes]
|
||||
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl END OF MYSQL_CHECK_PARTITION SECTION
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
@ -1,29 +0,0 @@
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CHECK_CSVDB
|
||||
dnl Sets HAVE_CSV_DB if --with-csv-storage-engine is used
|
||||
dnl ---------------------------------------------------------------------------
|
||||
AC_DEFUN([MYSQL_CHECK_CSVDB], [
|
||||
AC_ARG_WITH([csv-storage-engine],
|
||||
[
|
||||
--with-csv-storage-engine
|
||||
Enable the CSV Storage Engine],
|
||||
[csvdb="$withval"],
|
||||
[csvdb=no])
|
||||
AC_MSG_CHECKING([for csv storage engine])
|
||||
|
||||
case "$csvdb" in
|
||||
yes )
|
||||
AC_DEFINE([HAVE_CSV_DB], [1], [Builds the CSV Storage Engine])
|
||||
AC_MSG_RESULT([yes])
|
||||
[csvdb=yes]
|
||||
;;
|
||||
* )
|
||||
AC_MSG_RESULT([no])
|
||||
[csvdb=no]
|
||||
;;
|
||||
esac
|
||||
|
||||
])
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl END OF MYSQL_CHECK_CSV SECTION
|
||||
dnl ---------------------------------------------------------------------------
|
665
config/ac-macros/plugins.m4
Normal file
665
config/ac-macros/plugins.m4
Normal file
@ -0,0 +1,665 @@
|
||||
dnl ===========================================================================
|
||||
dnl Support for plugable mysql server modules
|
||||
dnl ===========================================================================
|
||||
dnl
|
||||
dnl WorkLog#3201
|
||||
dnl
|
||||
dnl Framework for pluggable static and dynamic modules for mysql
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_MODULE
|
||||
dnl
|
||||
dnl Syntax:
|
||||
dnl MYSQL_MODULE([name],[Plugin module name],
|
||||
dnl [Plugin module description],
|
||||
dnl [group,group...])
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl First declaration for a plugin module (mandatory).
|
||||
dnl Adds module as member to configuration groups (if specified)
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_MODULE],[ dnl
|
||||
_MYSQL_MODULE(
|
||||
[$1],
|
||||
[__MYSQL_MODULE_]AS_TR_CPP([$1])[__],
|
||||
m4_default([$2], [$1 plugin]),
|
||||
m4_default([$3], [plugin for $1]),
|
||||
m4_default([$4], []),
|
||||
) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_MODULE],[ dnl
|
||||
m4_ifdef([$2], [ dnl
|
||||
AC_FATAL([[Duplicate MYSQL_MODULE declaration for ]][$3]) dnl
|
||||
],[ dnl
|
||||
m4_define([$2], [$1]) dnl
|
||||
_MYSQL_PLUGAPPEND([__mysql_plugin_list__],[$1]) dnl
|
||||
m4_define([MYSQL_MODULE_NAME_]AS_TR_CPP([$1]), [$3]) dnl
|
||||
m4_define([MYSQL_MODULE_DESC_]AS_TR_CPP([$1]), [$4]) dnl
|
||||
ifelse([$5], [], [], [ dnl
|
||||
_MYSQL_PLUGAPPEND_OPTS([$1], $5) dnl
|
||||
]) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_STORAGE_ENGINE
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl Short cut for storage engine declarations
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_STORAGE_ENGINE],[ dnl
|
||||
MYSQL_MODULE([$1], [$3], [$4], [[$5]]) dnl
|
||||
MYSQL_MODULE_DEFINE([$1], [WITH_]AS_TR_CPP([$1])[_STORAGE_ENGINE]) dnl
|
||||
ifelse([$2],[no],[],[ dnl
|
||||
_MYSQL_LEGACY_STORAGE_ENGINE([$1],m4_default([$2], [$1-storage-engine])) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_LEGACY_STORAGE_ENGINE],[
|
||||
if test "[${with_]m4_bpatsubst($2, -, _)[+set}]" = set; then
|
||||
[with_module_]m4_bpatsubst($1, -, _)="[$with_]m4_bpatsubst($2, -, _)"
|
||||
fi dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_MODULE_DEFINE
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl When a plugin module is to be statically linked, define the C macro
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_MODULE_DEFINE],[ dnl
|
||||
REQUIRE_PLUGIN([$1]) dnl
|
||||
m4_define([MYSQL_MODULE_DEFINE_]AS_TR_CPP([$1]), [$2]) dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_MODULE_DIRECTORY
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl Adds a directory to the build process
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_MODULE_DIRECTORY],[ dnl
|
||||
REQUIRE_PLUGIN([$1]) dnl
|
||||
m4_define([MYSQL_MODULE_DIRECTORY_]AS_TR_CPP([$1]), [$2]) dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_MODULE_STATIC
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl Declare the name for the static library
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_MODULE_STATIC],[ dnl
|
||||
REQUIRE_PLUGIN([$1]) dnl
|
||||
m4_define([MYSQL_MODULE_STATIC_]AS_TR_CPP([$1]), [$2]) dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_MODULE_DYNAMIC
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl Declare the name for the shared library
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_MODULE_DYNAMIC],[ dnl
|
||||
REQUIRE_PLUGIN([$1]) dnl
|
||||
m4_define([MYSQL_MODULE_DYNAMIC_]AS_TR_CPP([$1]), [$2]) dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_MODULE_MANDATORY
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl Marks the specified plugin as a mandatory module
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_MODULE_MANDATORY],[ dnl
|
||||
REQUIRE_PLUGIN([$1]) dnl
|
||||
_MYSQL_MODULE_MANDATORY([$1],
|
||||
[MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1])
|
||||
) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_MODULE_MANDATORY],[ dnl
|
||||
m4_define([$2], [yes]) dnl
|
||||
m4_ifdef([$3], [ dnl
|
||||
AC_WARNING([syntax],[Mandatory plugin $1 has been disabled]) dnl
|
||||
m4_undefine([$2]) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_MODULE_DISABLED
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl Marks the specified plugin as a disabled module
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_MODULE_DISABLED],[ dnl
|
||||
REQUIRE_PLUGIN([$1]) dnl
|
||||
_MYSQL_MODULE_DISABLED([$1],
|
||||
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1])
|
||||
) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_MODULE_DISABLED],[ dnl
|
||||
m4_define([$2], [yes]) dnl
|
||||
m4_ifdef([$3], [ dnl
|
||||
AC_FATAL([attempt to disable mandatory plugin $1]) dnl
|
||||
m4_undefine([$2]) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_MODULE_DEPENDS
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl Enables other modules neccessary for this module
|
||||
dnl Dependency checking is not recursive so if any
|
||||
dnl required module requires further modules, list them
|
||||
dnl here too!
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_MODULE_DEPENDS],[ dnl
|
||||
REQUIRE_PLUGIN([$1]) dnl
|
||||
ifelse($#, 0, [], $#, 1, [ dnl
|
||||
AC_FATAL([[bad number of arguments]]) dnl
|
||||
], $#, 2, [ dnl
|
||||
_MYSQL_MODULE_DEPEND([$1],[$2]) dnl
|
||||
],[ dnl
|
||||
_MYSQL_MODULE_DEPEND([$1],[$2]) dnl
|
||||
MYSQL_MODULE_DEPENDS([$1], m4_shift(m4_shift($@))) dnl
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_MODULE_DEPEND],[ dnl
|
||||
REQUIRE_PLUGIN([$2]) dnl
|
||||
_MYSQL_PLUGAPPEND([__mysql_plugdepends_$1__],[$2]) dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_MODULE_ACTIONS
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl Declares additional actions required to configure the module
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_MODULE_ACTIONS],[ dnl
|
||||
REQUIRE_PLUGIN([$1]) dnl
|
||||
m4_ifdef([$2],[ dnl
|
||||
m4_define([MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1]),m4_defn([$2])) dnl
|
||||
],[ dnl
|
||||
m4_define([MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1]), [$2]) dnl
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_CONFIGURE_PLUGINS
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl Called last, emits all required shell code to configure the modules
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_CONFIGURE_PLUGINS],[ dnl
|
||||
m4_ifdef([__mysql_plugin_configured__],[ dnl
|
||||
AC_FATAL([cannot call [MYSQL_CONFIGURE_PLUGINS] multiple times]) dnl
|
||||
],[ dnl
|
||||
m4_define([__mysql_plugin_configured__],[done]) dnl
|
||||
m4_ifdef([__mysql_plugin_list__],[ dnl
|
||||
_MYSQL_CHECK_PLUGIN_ARGS([$1])
|
||||
_MYSQL_CONFIGURE_PLUGINS(m4_bpatsubst(__mysql_plugin_list__, :, [,]))
|
||||
_MYSQL_DO_PLUGIN_ACTIONS(m4_bpatsubst(__mysql_plugin_list__, :, [,]))
|
||||
]) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_CONFIGURE_PLUGINS],[ dnl
|
||||
ifelse($#, 0, [], $#, 1, [ dnl
|
||||
_MYSQL_CHECK_PLUGIN([$1]) dnl
|
||||
],[ dnl
|
||||
_MYSQL_CHECK_PLUGIN([$1]) dnl
|
||||
_MYSQL_CONFIGURE_PLUGINS(m4_shift($@)) dnl
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_CHECK_PLUGIN],[ dnl
|
||||
_DO_MYSQL_CHECK_PLUGIN(
|
||||
[$1],
|
||||
[$1-plugin],
|
||||
[MYSQL_MODULE_NAME_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DESC_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DEFINE_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DIRECTORY_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_STATIC_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DYNAMIC_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1])
|
||||
) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_DO_MYSQL_CHECK_PLUGIN],[ dnl
|
||||
m4_ifdef([$5],[ dnl
|
||||
AH_TEMPLATE($5, [Include ]$4[ into mysqld])
|
||||
])
|
||||
AC_MSG_CHECKING([whether to use ]$3) dnl
|
||||
m4_ifdef([$10],[
|
||||
if test "[$mysql_module_]m4_bpatsubst([$1], -, _)" = yes -a \
|
||||
"[$with_module_]m4_bpatsubst([$1], -, _)" != no -o \
|
||||
"[$with_module_]m4_bpatsubst([$1], -, _)" = yes; then
|
||||
AC_MSG_ERROR([disabled])
|
||||
fi
|
||||
AC_MSG_RESULT([no]) dnl
|
||||
],[ dnl
|
||||
m4_ifdef([$9],[
|
||||
if test "[$with_module_]m4_bpatsubst([$1], -, _)" = no; then
|
||||
AC_MSG_ERROR([cannot disable mandatory module])
|
||||
fi
|
||||
[mysql_module_]m4_bpatsubst([$1], -, _)=yes dnl
|
||||
])
|
||||
if test "[$with_module_]m4_bpatsubst([$1], -, _)" != no; then
|
||||
if test "[$mysql_module_]m4_bpatsubst([$1], -, _)" != yes -a \
|
||||
"[$with_module_]m4_bpatsubst([$1], -, _)" != yes; then dnl
|
||||
m4_ifdef([$8],[ dnl
|
||||
m4_ifdef([$6],[
|
||||
mysql_plugin_dirs="$mysql_plugin_dirs $6" dnl
|
||||
])
|
||||
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_shared_target], "$8")
|
||||
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_static_target], [""])
|
||||
[with_module_]m4_bpatsubst([$1], -, _)=yes
|
||||
AC_MSG_RESULT([plugin]) dnl
|
||||
],[
|
||||
[with_module_]m4_bpatsubst([$1], -, _)=no
|
||||
AC_MSG_RESULT([no]) dnl
|
||||
])
|
||||
else dnl
|
||||
m4_ifdef([$7],[
|
||||
ifelse(m4_bregexp($7, [^lib[^.]+\.a$]), -2, [ dnl
|
||||
m4_ifdef([$6],[
|
||||
mysql_plugin_dirs="$mysql_plugin_dirs $6"
|
||||
mysql_plugin_libs="$mysql_plugin_libs -L[\$(top_builddir)]/$6" dnl
|
||||
])
|
||||
mysql_plugin_libs="$mysql_plugin_libs dnl
|
||||
[-l]m4_bregexp($7, [^lib\([^.]+\)], [\1])" dnl
|
||||
], m4_bregexp($7, [^\\\$]), 0, [ dnl
|
||||
m4_ifdef([$6],[
|
||||
mysql_plugin_dirs="$mysql_plugin_dirs $6" dnl
|
||||
])
|
||||
mysql_plugin_libs="$mysql_plugin_libs $7" dnl
|
||||
], [ dnl
|
||||
m4_ifdef([$6],[
|
||||
mysql_plugin_dirs="$mysql_plugin_dirs $6"
|
||||
mysql_plugin_libs="$mysql_plugin_libs \$(top_builddir)/$6/$7" dnl
|
||||
],[
|
||||
mysql_plugin_libs="$mysql_plugin_libs $7" dnl
|
||||
]) dnl
|
||||
]) dnl
|
||||
m4_ifdef([$5],[
|
||||
AC_DEFINE($5) dnl
|
||||
])
|
||||
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_static_target], "$7")
|
||||
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_shared_target], [""]) dnl
|
||||
],[ dnl
|
||||
m4_ifdef([$6],[
|
||||
AC_FATAL([plugin directory specified without library for ]$3) dnl
|
||||
],[ dnl
|
||||
m4_ifdef([$5],[
|
||||
AC_DEFINE($5)
|
||||
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_static_target], ["yes"])
|
||||
AC_SUBST([plugin_]m4_bpatsubst([$1], -, _)[_shared_target], [""]) dnl
|
||||
]) dnl
|
||||
]) dnl
|
||||
])
|
||||
mysql_plugin_defs="$mysql_plugin_defs, [builtin_]m4_bpatsubst([$2], -, _)"
|
||||
[with_module_]m4_bpatsubst([$1], -, _)=yes
|
||||
AC_MSG_RESULT([yes])
|
||||
fi
|
||||
else
|
||||
AC_MSG_RESULT([no])
|
||||
fi dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_DO_PLUGIN_ACTIONS],[ dnl
|
||||
ifelse($#, 0, [], $#, 1, [ dnl
|
||||
_MYSQL_PLUGIN_ACTIONS([$1]) dnl
|
||||
],[ dnl
|
||||
_MYSQL_PLUGIN_ACTIONS([$1]) dnl
|
||||
_MYSQL_DO_PLUGIN_ACTIONS(m4_shift($@)) dnl
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_PLUGIN_ACTIONS],[ dnl
|
||||
_DO_MYSQL_PLUGIN_ACTIONS(
|
||||
[$1],
|
||||
[$1-plugin],
|
||||
[MYSQL_MODULE_NAME_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DESC_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DEFINE_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DIRECTORY_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_STATIC_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DYNAMIC_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1])
|
||||
) dnl
|
||||
])
|
||||
|
||||
|
||||
AC_DEFUN([_DO_MYSQL_PLUGIN_ACTIONS],[ dnl
|
||||
m4_ifdef([$10], [], [
|
||||
if test "[$with_module_]m4_bpatsubst([$1], -, _)" = yes; then
|
||||
if test -z "[$plugin_]m4_bpatsubst([$1], -, _)[_static_target]" -a \
|
||||
-z "[$plugin_]m4_bpatsubst([$1], -, _)[_shared_target]"; then
|
||||
AC_MSG_ERROR([thats strange, $1 failed sanity check])
|
||||
fi
|
||||
$11
|
||||
fi dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
|
||||
|
||||
dnl ===========================================================================
|
||||
dnl Private helper macros
|
||||
dnl ===========================================================================
|
||||
|
||||
|
||||
AC_DEFUN([REQUIRE_PLUGIN],[ dnl
|
||||
_REQUIRE_PLUGIN([$1], [__MYSQL_MODULE_]AS_TR_CPP([$1])[__]) dnl
|
||||
])
|
||||
|
||||
define([_REQUIRE_PLUGIN],[ dnl
|
||||
ifdef([$2],[ dnl
|
||||
ifelse($2, [$1], [], [ dnl
|
||||
AC_FATAL([[Misspelt MYSQL_MODULE declaration for ]][$1]) dnl
|
||||
]) dnl
|
||||
],[ dnl
|
||||
AC_FATAL([[Missing MYSQL_MODULE declaration for ]][$1]) dnl
|
||||
])
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
AC_DEFUN([_MYSQL_MODULE_META_CHECK], [ifelse($#, 0, [], $#, 1, dnl
|
||||
[_MYSQL_CHECK_PLUGIN_META([$1], [__mysql_]m4_bpatsubst($1, -, _)[_plugins__]) dnl
|
||||
], dnl
|
||||
[_MYSQL_CHECK_PLUGIN_META([$1], [__mysql_]m4_bpatsubst($1, -, _)[_plugins__]) dnl
|
||||
_MYSQL_MODULE_META_CHECK(m4_shift($@))]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_CHECK_PLUGIN_META], [
|
||||
[$1] ) dnl
|
||||
m4_ifdef([$2], [
|
||||
mysql_modules='m4_bpatsubst($2, :, [ ])' dnl
|
||||
],[
|
||||
mysql_modules='' dnl
|
||||
])
|
||||
;; dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
AC_DEFUN([_MYSQL_PLUGAPPEND],[ dnl
|
||||
m4_ifdef([$1],[ dnl
|
||||
m4_define([__plugin_append_tmp__], m4_defn([$1])) dnl
|
||||
m4_undefine([$1]) dnl
|
||||
m4_define([$1], __plugin_append_tmp__[:$2]) dnl
|
||||
m4_undefine([__plugin_append_tmp__]) dnl
|
||||
],[ dnl
|
||||
m4_define([$1], [$2]) dnl
|
||||
$3 dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_PLUGAPPEND_OPTS],[ dnl
|
||||
ifelse($#, 0, [], $#, 1, [ dnl
|
||||
AC_FATAL([[bad number of args]])
|
||||
], $#, 2, [ dnl
|
||||
_MYSQL_PLUGAPPEND_OPTONE([$1],[$2]) dnl
|
||||
],[ dnl
|
||||
_MYSQL_PLUGAPPEND_OPTONE([$1],[$2]) dnl
|
||||
_MYSQL_PLUGAPPEND_OPTS([$1], m4_shift(m4_shift($@)))
|
||||
])
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_PLUGAPPEND_OPTONE],[ dnl
|
||||
ifelse([$2], [all], [ dnl
|
||||
AC_FATAL([[protected plugin group: all]]) dnl
|
||||
],[ dnl
|
||||
ifelse([$2], [none], [ dnl
|
||||
AC_FATAL([[protected plugin group: none]]) dnl
|
||||
],[ dnl
|
||||
_MYSQL_PLUGAPPEND([__mysql_$1_configs__],[$2]) dnl
|
||||
_MYSQL_PLUGAPPEND([__mysql_]m4_bpatsubst($2, -, _)[_plugins__],[$1], [ dnl
|
||||
_MYSQL_PLUGAPPEND([__mysql_metaplugin_list__],[$2]) dnl
|
||||
]) dnl
|
||||
]) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
AC_DEFUN([MYSQL_LIST_PLUGINS],[ dnl
|
||||
m4_ifdef([__mysql_plugin_list__],[ dnl
|
||||
_MYSQL_LIST_PLUGINS(m4_bpatsubst(__mysql_plugin_list__, :, [,])) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_LIST_PLUGINS],[ dnl
|
||||
ifelse($#, 0, [], $#, 1, [ dnl
|
||||
MYSQL_SHOW_PLUGIN([$1]) dnl
|
||||
],[ dnl
|
||||
MYSQL_SHOW_PLUGIN([$1]) dnl
|
||||
_MYSQL_LIST_PLUGINS(m4_shift($@)) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([MYSQL_SHOW_PLUGIN],[ dnl
|
||||
_MYSQL_SHOW_PLUGIN(
|
||||
[$1],
|
||||
[$1-plugin],
|
||||
[MYSQL_MODULE_NAME_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DESC_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DEFINE_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DIRECTORY_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_STATIC_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DYNAMIC_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_MANDATORY_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1]),
|
||||
__mysql_[$1]_configs__,
|
||||
)
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_SHOW_PLUGIN],[
|
||||
=== Plug-in: $3 ===
|
||||
Module Name: [$1]
|
||||
Description: $4
|
||||
Supports build: _PLUGIN_BUILD_TYPE([$7],[$8]) dnl
|
||||
m4_ifdef([$12],[
|
||||
Configurations: m4_bpatsubst($12, :, [, ])]) dnl
|
||||
m4_ifdef([$10],[
|
||||
Status: disabled], [ dnl
|
||||
m4_ifdef([$9],[
|
||||
Status: mandatory])])])
|
||||
|
||||
AC_DEFUN([_PLUGIN_BUILD_TYPE], dnl
|
||||
[m4_ifdef([$1],[ifelse($1,[no],[],[static ]m4_ifdef([$2],[and dnl
|
||||
]))])[]m4_ifdef([$2],[dynamic],[m4_ifdef([$1],[],[static])])])
|
||||
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
|
||||
AC_DEFUN([_MYSQL_MODULE_ARGS_CHECK],[ dnl
|
||||
ifelse($#, 0, [], $#, 1, [ dnl
|
||||
_MYSQL_CHECK_PLUGIN_ARG([$1],
|
||||
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1])) dnl
|
||||
],[ dnl
|
||||
_MYSQL_CHECK_PLUGIN_ARG([$1],
|
||||
[MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),
|
||||
[MYSQL_MODULE_ACTIONS_]AS_TR_CPP([$1])) dnl
|
||||
_MYSQL_MODULE_ARGS_CHECK(m4_shift($@)) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_CHECK_PLUGIN_ARG],[ dnl
|
||||
m4_ifdef([$3], [], [m4_define([$3],[ ])])
|
||||
[$1] ) dnl
|
||||
m4_ifdef([$2],[
|
||||
AC_MSG_ERROR([plugin $1 is disabled]) dnl
|
||||
],[
|
||||
[mysql_module_]m4_bpatsubst([$1], -, _)=yes dnl
|
||||
])
|
||||
;; dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_SANE_VARS], [ dnl
|
||||
ifelse($#, 0, [], $#, 1, [ dnl
|
||||
_MYSQL_SANEVAR([$1]) dnl
|
||||
],[ dnl
|
||||
_MYSQL_SANEVAR([$1]) dnl
|
||||
_MYSQL_SANE_VARS(m4_shift($@)) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_SANEVAR], [
|
||||
test -z "[$mysql_module_]m4_bpatsubst([$1], -, _)" && dnl
|
||||
[mysql_module_]m4_bpatsubst([$1], -, _)='.'
|
||||
test -z "[$with_module_]m4_bpatsubst([$1], -, _)" && dnl
|
||||
[with_module_]m4_bpatsubst([$1], -, _)='.' dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_CHECK_DEPENDENCIES], [ dnl
|
||||
ifelse($#, 0, [], $#, 1, [ dnl
|
||||
_MYSQL_CHECK_DEPENDS([$1],[__mysql_plugdepends_$1__]) dnl
|
||||
],[ dnl
|
||||
_MYSQL_CHECK_DEPENDS([$1],[__mysql_plugdepends_$1__]) dnl
|
||||
_MYSQL_CHECK_DEPENDENCIES(m4_shift($@)) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_CHECK_DEPENDS], [ dnl
|
||||
m4_ifdef([$2], [
|
||||
if test "[$mysql_module_]m4_bpatsubst([$1], -, _)" = yes -a \
|
||||
"[$with_module_]m4_bpatsubst([$1], -, _)" != no -o \
|
||||
"[$with_module_]m4_bpatsubst([$1], -, _)" = yes; then dnl
|
||||
_MYSQL_GEN_DEPENDS(m4_bpatsubst($2, :, [,]))
|
||||
fi dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_GEN_DEPENDS], [ dnl
|
||||
ifelse($#, 0, [], $#, 1, [ dnl
|
||||
_MYSQL_GEN_DEPEND([$1]) dnl
|
||||
],[ dnl
|
||||
_MYSQL_GEN_DEPEND([$1]) dnl
|
||||
_MYSQL_GEN_DEPENDS(m4_shift($@)) dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_GEN_DEPEND], [ dnl
|
||||
m4_ifdef([MYSQL_MODULE_DISABLED_]AS_TR_CPP([$1]),[
|
||||
AC_MSG_ERROR([depends upon disabled module $1]) dnl
|
||||
],[
|
||||
[mysql_module_]m4_bpatsubst([$1], -, _)=yes
|
||||
if test "[$with_module_]m4_bpatsubst([$1], -, _)" = no; then
|
||||
AC_MSG_ERROR([depends upon disabled module $1])
|
||||
fi dnl
|
||||
]) dnl
|
||||
])
|
||||
|
||||
AC_DEFUN([_MYSQL_CHECK_PLUGIN_ARGS],[
|
||||
AC_ARG_WITH([modules], [
|
||||
--with-modules=PLUGIN[[,PLUGIN..]]
|
||||
m4_text_wrap([Plugin modules to include in mysqld. (default is: $1)
|
||||
Must be configuration name or a comma seperated list of modules.],
|
||||
[ ])
|
||||
m4_text_wrap([Available configurations are: ]
|
||||
m4_bpatsubst(m4_ifdef([__mysql_metaplugin_list__], dnl
|
||||
none:all:__mysql_metaplugin_list__,none:all), :, [ ])[.],
|
||||
[ ])
|
||||
m4_text_wrap([Available plugin modules are: ] dnl
|
||||
m4_bpatsubst(__mysql_plugin_list__, :, [ ])[.], [ ])
|
||||
--without-module-PLUGIN
|
||||
m4_text_wrap([Disable the named module from being built. Otherwise,
|
||||
for modules which are not selected for inclusion in mysqld will be
|
||||
built dynamically (if supported)],[ ])
|
||||
],[mysql_modules="`echo $withval | tr ',.:;*[]' ' '`"],
|
||||
[mysql_modules=['$1']])
|
||||
|
||||
m4_divert_once([HELP_VAR_END],[
|
||||
Description of plugin modules:
|
||||
m4_indir([MYSQL_LIST_PLUGINS])
|
||||
])
|
||||
|
||||
case "$mysql_modules" in
|
||||
all )
|
||||
mysql_modules='m4_bpatsubst(__mysql_plugin_list__, :, [ ])'
|
||||
;;
|
||||
none )
|
||||
mysql_modules=''
|
||||
;; dnl
|
||||
m4_ifdef([__mysql_metaplugin_list__],[ dnl
|
||||
_MYSQL_MODULE_META_CHECK(m4_bpatsubst(__mysql_metaplugin_list__, :, [,])) dnl
|
||||
])
|
||||
esac
|
||||
|
||||
for plugin in $mysql_modules; do
|
||||
case "$plugin" in
|
||||
all )
|
||||
AC_MSG_ERROR([bad module name: $plugin])
|
||||
;;
|
||||
none )
|
||||
AC_MSG_ERROR([bad module name: $plugin])
|
||||
;; dnl
|
||||
_MYSQL_MODULE_ARGS_CHECK(m4_bpatsubst(__mysql_plugin_list__, :, [,]))
|
||||
* )
|
||||
AC_MSG_ERROR([unknown plugin module: $plugin])
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
_MYSQL_SANE_VARS(m4_bpatsubst(__mysql_plugin_list__, :, [,]))
|
||||
_MYSQL_CHECK_DEPENDENCIES(m4_bpatsubst(__mysql_plugin_list__, :, [,]))
|
||||
])
|
||||
|
||||
|
||||
dnl ===========================================================================
|
@ -1,55 +0,0 @@
|
||||
dnl ---------------------------------------------------------------------------
|
||||
dnl Macro: MYSQL_STORAGE_ENGINE
|
||||
dnl
|
||||
dnl What it does:
|
||||
dnl creates --with-xxx configure option
|
||||
dnl adds HAVE_XXX to config.h
|
||||
dnl appends &xxx_hton, to the list of hanldertons
|
||||
dnl appends a dir to the list of source directories
|
||||
dnl appends ha_xxx.cc to the list of handler files
|
||||
dnl
|
||||
dnl all names above are configurable with reasonable defaults.
|
||||
dnl
|
||||
dnl ---------------------------------------------------------------------------
|
||||
|
||||
AC_DEFUN([MYSQL_STORAGE_ENGINE],
|
||||
[_MYSQL_STORAGE_ENGINE(
|
||||
[$1], dnl name
|
||||
m4_default([$2], [$1 storage engine]), dnl verbose name
|
||||
m4_default([$3], [$1-storage-engine]), dnl with-name
|
||||
m4_default([$4], no), dnl default
|
||||
m4_default([$5], [WITH_]AS_TR_CPP([$1])[_STORAGE_ENGINE]),
|
||||
m4_default([$6], $1[_hton]), dnl hton
|
||||
m4_default([$7], []), dnl path to the code
|
||||
m4_default([$8], [ha_$1.o]), dnl path to the handler in
|
||||
m4_default([$9], []), dnl path to extra libraries
|
||||
[$10], dnl code-if-set
|
||||
)])
|
||||
|
||||
AC_DEFUN([_MYSQL_STORAGE_ENGINE],
|
||||
[
|
||||
AC_ARG_WITH([$3], AS_HELP_STRING([--with-$3], [enable $2 (default is $4)]),
|
||||
[], [ [with_]m4_bpatsubst([$3], -, _)=['$4']])
|
||||
AC_CACHE_CHECK([whether to use $2], [mysql_cv_use_]m4_bpatsubst([$3], -, _),
|
||||
[mysql_cv_use_]m4_bpatsubst([$3], -, _)=[$with_]m4_bpatsubst([$3], -, _))
|
||||
AH_TEMPLATE([$5], [Build $2])
|
||||
if test "[$mysql_cv_use_]m4_bpatsubst([$3], -, _)" != no; then
|
||||
if test "$6" != "no"
|
||||
then
|
||||
AC_DEFINE([$5])
|
||||
mysql_se_decls="${mysql_se_decls},$6"
|
||||
mysql_se_htons="${mysql_se_htons},&$6"
|
||||
if test "$8" != "no"
|
||||
then
|
||||
mysql_se_objs="$mysql_se_objs $8"
|
||||
fi
|
||||
mysql_se_dirs="$mysql_se_dirs $7"
|
||||
mysql_se_libs="$mysql_se_libs $9"
|
||||
else
|
||||
mysql_se_plugins="$mysql_se_plugins $7"
|
||||
fi
|
||||
$10
|
||||
fi
|
||||
])
|
||||
|
||||
dnl ---------------------------------------------------------------------------
|
183
configure.in
183
configure.in
@ -31,7 +31,7 @@ sinclude(config/ac-macros/alloca.m4)
|
||||
sinclude(config/ac-macros/check_cpu.m4)
|
||||
sinclude(config/ac-macros/character_sets.m4)
|
||||
sinclude(config/ac-macros/compiler_flag.m4)
|
||||
sinclude(config/ac-macros/storage.m4)
|
||||
sinclude(config/ac-macros/plugins.m4)
|
||||
sinclude(config/ac-macros/ha_berkeley.m4)
|
||||
sinclude(config/ac-macros/ha_ndbcluster.m4)
|
||||
sinclude(config/ac-macros/large_file.m4)
|
||||
@ -48,6 +48,92 @@ czech danish dutch english estonian french german greek hungarian \
|
||||
italian japanese korean norwegian norwegian-ny polish portuguese \
|
||||
romanian russian serbian slovak spanish swedish ukrainian"
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Declare our plugin modules
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
MYSQL_STORAGE_ENGINE(archive,, [Archive Storage Engine],
|
||||
[Archive Storage Engine], [max,max-no-ndb])
|
||||
MYSQL_MODULE_DIRECTORY(archive, [storage/archive])
|
||||
MYSQL_MODULE_STATIC(archive, [libarchive.a])
|
||||
MYSQL_MODULE_DYNAMIC(archive, [ha_archive.la])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(berkeley, berkeley-db, [BerkeleyDB Storage Engine],
|
||||
[Transactional Tables using BerkeleyDB], [max,max-no-ndb])
|
||||
MYSQL_MODULE_DIRECTORY(berkeley,[storage/bdb])
|
||||
MYSQL_MODULE_STATIC(berkeley, [[\$(bdb_libs_with_path)]])
|
||||
MYSQL_MODULE_ACTIONS(berkeley, [MYSQL_SETUP_BERKELEY_DB])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(blackhole,,[Blackhole Storage Engine],
|
||||
[Basic Write-only Read-never tables], [max,max-no-ndb])
|
||||
MYSQL_MODULE_DIRECTORY(blackhole, [storage/blackhole])
|
||||
MYSQL_MODULE_STATIC(blackhole, [libblackhole.a])
|
||||
MYSQL_MODULE_DYNAMIC(blackhole, [ha_blackhole.la])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(csv,, [CSV Storage Engine],
|
||||
[Stores tables in text CSV format])
|
||||
MYSQL_MODULE_DIRECTORY(csv, [storage/csv])
|
||||
MYSQL_MODULE_STATIC(csv, [libcsv.a])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(example,, [Example Storage Engine],
|
||||
[Skeleton for Storage Engines for developers], [max,max-no-ndb])
|
||||
MYSQL_MODULE_DIRECTORY(example, [storage/example])
|
||||
MYSQL_MODULE_STATIC(example, [libexample.a])
|
||||
MYSQL_MODULE_DYNAMIC(example, [ha_example.la])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(federated,,[Federated Storage Engine],
|
||||
[Connects to tables on remote MySQL servers], [max,max-no-ndb])
|
||||
|
||||
MYSQL_MODULE(ftexample, [Simple Parser],
|
||||
[Simple full-text parser plugin])
|
||||
MYSQL_MODULE_DIRECTORY(ftexample, [plugin/fulltext])
|
||||
MYSQL_MODULE_STATIC(ftexample, [libftexample.a])
|
||||
MYSQL_MODULE_DYNAMIC(ftexample, [ft_example.la])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(heap,no, [Memory Storage Engine],
|
||||
[In memory hashed tables])
|
||||
MYSQL_MODULE_DIRECTORY(heap, [storage/heap])
|
||||
MYSQL_MODULE_STATIC(heap, [libheap.a])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(innobase, innodb, [InnoDB Storage Engine],
|
||||
[Transactional Tables using InnoDB], [max,max-no-ndb])
|
||||
MYSQL_MODULE_DIRECTORY(innobase, [storage/innobase])
|
||||
MYSQL_MODULE_STATIC(innobase, [libinnobase.a])
|
||||
MYSQL_MODULE_ACTIONS(innobase, [
|
||||
AC_CHECK_LIB(rt, aio_read, [innodb_system_libs="-lrt"])
|
||||
AC_SUBST(innodb_includes)
|
||||
AC_SUBST(innodb_libs)
|
||||
AC_SUBST(innodb_system_libs)
|
||||
other_configures="$other_configures storage/innobase/configure"
|
||||
])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(myisam,no, [MyISAM Storage Engine],
|
||||
[Traditional non-transactional MySQL tables])
|
||||
MYSQL_MODULE_DIRECTORY(myisam, [storage/myisam])
|
||||
MYSQL_MODULE_STATIC(myisam, [libmyisam.a])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(myisammrg,no,[MyISAM MERGE Engine],
|
||||
[Merge multiple MySQL tables into one])
|
||||
MYSQL_MODULE_DIRECTORY(myisammrg,[storage/myisammrg])
|
||||
MYSQL_MODULE_STATIC(myisammrg, [libmyisammrg.a])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(ndbcluster, ndbcluster, [Cluster Storage Engine],
|
||||
[High Availability Clustered tables], [max])
|
||||
MYSQL_MODULE_DIRECTORY(ndbcluster,[storage/ndb])
|
||||
MYSQL_MODULE_STATIC(ndbcluster, [[\$(ndbcluster_libs) \$(ndbcluster_system_libs) \$(NDB_SCI_LIBS)]])
|
||||
MYSQL_MODULE_ACTIONS(ndbcluster,[MYSQL_SETUP_NDBCLUSTER])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(partition, partition, [Partition Support],
|
||||
[MySQL Partitioning Support], [max,max-no-ndb])
|
||||
|
||||
MYSQL_MODULE_MANDATORY(csv) dnl Used for logging
|
||||
MYSQL_MODULE_MANDATORY(heap) dnl Memory tables
|
||||
MYSQL_MODULE_MANDATORY(myisam) dnl Default
|
||||
MYSQL_MODULE_MANDATORY(myisammrg)
|
||||
|
||||
dnl -- ndbcluster requires partition to be enabled
|
||||
MYSQL_MODULE_DEPENDS(ndbcluster, partition)
|
||||
|
||||
#####
|
||||
#####
|
||||
|
||||
@ -672,6 +758,16 @@ MYSQL_SYS_LARGEFILE
|
||||
# Types that must be checked AFTER large file support is checked
|
||||
AC_TYPE_SIZE_T
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check for requested features
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
MYSQL_CHECK_BIG_TABLES
|
||||
MYSQL_CHECK_MAX_INDEXES
|
||||
MYSQL_CHECK_REPLICATION
|
||||
|
||||
MYSQL_CONFIGURE_PLUGINS([none])
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Check for system header files
|
||||
#--------------------------------------------------------------------
|
||||
@ -2421,73 +2517,6 @@ AC_SUBST(readline_basedir)
|
||||
AC_SUBST(readline_link)
|
||||
AC_SUBST(readline_h_ln_cmd)
|
||||
|
||||
MYSQL_CHECK_BIG_TABLES
|
||||
MYSQL_CHECK_MAX_INDEXES
|
||||
MYSQL_CHECK_REPLICATION
|
||||
|
||||
MYSQL_STORAGE_ENGINE(innobase,,innodb,,,,innobase,ha_innodb.o,[ dnl
|
||||
\$(top_builddir)/storage/innobase/usr/libusr.a dnl
|
||||
\$(top_builddir)/storage/innobase/srv/libsrv.a dnl
|
||||
\$(top_builddir)/storage/innobase/dict/libdict.a dnl
|
||||
\$(top_builddir)/storage/innobase/que/libque.a dnl
|
||||
\$(top_builddir)/storage/innobase/srv/libsrv.a dnl
|
||||
\$(top_builddir)/storage/innobase/ibuf/libibuf.a dnl
|
||||
\$(top_builddir)/storage/innobase/row/librow.a dnl
|
||||
\$(top_builddir)/storage/innobase/pars/libpars.a dnl
|
||||
\$(top_builddir)/storage/innobase/btr/libbtr.a dnl
|
||||
\$(top_builddir)/storage/innobase/trx/libtrx.a dnl
|
||||
\$(top_builddir)/storage/innobase/read/libread.a dnl
|
||||
\$(top_builddir)/storage/innobase/usr/libusr.a dnl
|
||||
\$(top_builddir)/storage/innobase/buf/libbuf.a dnl
|
||||
\$(top_builddir)/storage/innobase/ibuf/libibuf.a dnl
|
||||
\$(top_builddir)/storage/innobase/eval/libeval.a dnl
|
||||
\$(top_builddir)/storage/innobase/log/liblog.a dnl
|
||||
\$(top_builddir)/storage/innobase/fsp/libfsp.a dnl
|
||||
\$(top_builddir)/storage/innobase/fut/libfut.a dnl
|
||||
\$(top_builddir)/storage/innobase/fil/libfil.a dnl
|
||||
\$(top_builddir)/storage/innobase/lock/liblock.a dnl
|
||||
\$(top_builddir)/storage/innobase/mtr/libmtr.a dnl
|
||||
\$(top_builddir)/storage/innobase/page/libpage.a dnl
|
||||
\$(top_builddir)/storage/innobase/rem/librem.a dnl
|
||||
\$(top_builddir)/storage/innobase/thr/libthr.a dnl
|
||||
\$(top_builddir)/storage/innobase/sync/libsync.a dnl
|
||||
\$(top_builddir)/storage/innobase/data/libdata.a dnl
|
||||
\$(top_builddir)/storage/innobase/mach/libmach.a dnl
|
||||
\$(top_builddir)/storage/innobase/ha/libha.a dnl
|
||||
\$(top_builddir)/storage/innobase/dyn/libdyn.a dnl
|
||||
\$(top_builddir)/storage/innobase/mem/libmem.a dnl
|
||||
\$(top_builddir)/storage/innobase/sync/libsync.a dnl
|
||||
\$(top_builddir)/storage/innobase/ut/libut.a dnl
|
||||
\$(top_builddir)/storage/innobase/os/libos.a dnl
|
||||
\$(top_builddir)/storage/innobase/ut/libut.a],[
|
||||
AC_CHECK_LIB(rt, aio_read, [innodb_system_libs="-lrt"])
|
||||
AC_SUBST(innodb_includes)
|
||||
AC_SUBST(innodb_libs)
|
||||
AC_SUBST(innodb_system_libs)
|
||||
other_configures="$other_configures storage/innobase/configure"
|
||||
])
|
||||
|
||||
MYSQL_STORAGE_ENGINE(berkeley,,berkeley-db,,,,bdb,,,[
|
||||
MYSQL_SETUP_BERKELEY_DB
|
||||
])
|
||||
MYSQL_STORAGE_ENGINE(example,,,,,,example,no,
|
||||
\$(top_builddir)/storage/example/libexample.a,[
|
||||
AC_CONFIG_FILES(storage/example/Makefile)
|
||||
])
|
||||
MYSQL_STORAGE_ENGINE(archive,,,,,,archive,,
|
||||
\$(top_builddir)/storage/archive/libarchive.a, [
|
||||
AC_CONFIG_FILES(storage/archive/Makefile)
|
||||
])
|
||||
MYSQL_STORAGE_ENGINE(csv,,,"yes",,tina_hton,csv,no,
|
||||
\$(top_builddir)/storage/csv/libcsv.a,[
|
||||
AC_CONFIG_FILES(storage/csv/Makefile)
|
||||
])
|
||||
MYSQL_STORAGE_ENGINE(blackhole)
|
||||
MYSQL_STORAGE_ENGINE(federated)
|
||||
MYSQL_STORAGE_ENGINE(ndbcluster,,ndbcluster,,,,ndb,,,[
|
||||
MYSQL_SETUP_NDBCLUSTER
|
||||
])
|
||||
MYSQL_STORAGE_ENGINE(partition,,partition)
|
||||
|
||||
# If we have threads generate some library functions and test programs
|
||||
sql_server_dirs=
|
||||
@ -2544,7 +2573,7 @@ then
|
||||
AC_SUBST(THREAD_LOBJECTS)
|
||||
server_scripts="mysqld_safe mysql_install_db"
|
||||
sql_server_dirs="strings mysys dbug extra regex"
|
||||
mysql_se_dirs="myisam myisammrg heap $mysql_se_dirs"
|
||||
|
||||
sql_server="$sql_server vio sql"
|
||||
fi
|
||||
|
||||
@ -2560,12 +2589,9 @@ AC_SUBST(sql_server)
|
||||
AC_SUBST(thread_dirs)
|
||||
AC_SUBST(server_scripts)
|
||||
|
||||
AC_SUBST(mysql_se_dirs)
|
||||
AC_SUBST(mysql_se_libs)
|
||||
AC_SUBST(mysql_se_objs)
|
||||
AC_SUBST(mysql_se_htons)
|
||||
AC_SUBST(mysql_se_decls)
|
||||
AC_SUBST(mysql_se_plugins)
|
||||
AC_SUBST(mysql_plugin_dirs)
|
||||
AC_SUBST(mysql_plugin_libs)
|
||||
AC_SUBST(mysql_plugin_defs)
|
||||
|
||||
|
||||
# Now that sql_client_dirs and sql_server_dirs are stable, determine the union.
|
||||
@ -2610,12 +2636,15 @@ AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl
|
||||
unittest/Makefile dnl
|
||||
unittest/mytap/Makefile unittest/mytap/t/Makefile dnl
|
||||
unittest/mysys/Makefile unittest/examples/Makefile dnl
|
||||
strings/Makefile regex/Makefile storage/Makefile storage/heap/Makefile dnl
|
||||
strings/Makefile regex/Makefile dnl
|
||||
storage/Makefile dnl
|
||||
storage/archive/Makefile storage/bdb/Makefile storage/blackhole/Makefile dnl
|
||||
storage/csv/Makefile storage/example/Makefile storage/heap/Makefile dnl
|
||||
storage/myisam/Makefile storage/myisammrg/Makefile dnl
|
||||
man/Makefile BUILD/Makefile vio/Makefile dnl
|
||||
libmysql/Makefile client/Makefile dnl
|
||||
pstack/Makefile pstack/aout/Makefile sql/Makefile sql/share/Makefile dnl
|
||||
sql/handlerton.cc sql-common/Makefile dnl
|
||||
sql/sql_builtin.cc sql-common/Makefile dnl
|
||||
dbug/Makefile scripts/Makefile dnl
|
||||
include/Makefile dnl
|
||||
server-tools/Makefile server-tools/instance-manager/Makefile dnl
|
||||
|
@ -37,10 +37,25 @@
|
||||
be a st_mysql_plugin struct for each plugin to be declared.
|
||||
*/
|
||||
|
||||
#define mysql_declare_plugin \
|
||||
int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
||||
int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \
|
||||
|
||||
#ifndef MYSQL_DYNAMIC_PLUGIN
|
||||
#define __DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
|
||||
int VERSION= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
||||
int PSIZE= sizeof(struct st_mysql_plugin); \
|
||||
struct st_mysql_plugin DECLS[]= {
|
||||
#else
|
||||
#define __DECLARE_PLUGIN(NAME, VERSION, PSIZE, DECLS) \
|
||||
int _mysql_plugin_interface_version_= MYSQL_PLUGIN_INTERFACE_VERSION; \
|
||||
int _mysql_sizeof_struct_st_plugin_= sizeof(struct st_mysql_plugin); \
|
||||
struct st_mysql_plugin _mysql_plugin_declarations_[]= {
|
||||
#endif
|
||||
|
||||
#define _DECLARE_PLUGIN(NAME) \
|
||||
__DECLARE_PLUGIN(NAME, builtin_ ## NAME ## _plugin_interface_version, \
|
||||
builtin_ ## NAME ## _sizeof_struct_st_plugin, \
|
||||
builtin_ ## NAME ## _plugin)
|
||||
|
||||
#define mysql_declare_plugin(NAME) _DECLARE_PLUGIN(NAME)
|
||||
#define mysql_declare_plugin_end ,{0,0,0,0,0,0,0,0,0}}
|
||||
|
||||
/*
|
||||
|
@ -44,7 +44,10 @@ libmysqlsources = errmsg.c get_password.c libmysql.c client.c pack.c \
|
||||
noinst_HEADERS = embedded_priv.h emb_qcache.h
|
||||
|
||||
sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \
|
||||
ha_heap.cc ha_myisam.cc ha_myisammrg.cc handler.cc sql_handler.cc \
|
||||
ha_heap.cc ha_myisam.cc ha_myisammrg.cc \
|
||||
ha_innodb.cc ha_berkeley.cc ha_federated.cc ha_ndbcluster.cc \
|
||||
ha_ndbcluster_binlog.cc ha_partition.cc \
|
||||
handler.cc sql_handler.cc \
|
||||
hostname.cc init.cc password.c \
|
||||
item.cc item_buff.cc item_cmpfunc.cc item_create.cc \
|
||||
item_func.cc item_strfunc.cc item_sum.cc item_timefunc.cc \
|
||||
@ -65,17 +68,12 @@ sqlsources = derror.cc field.cc field_conv.cc strfunc.cc filesort.cc \
|
||||
spatial.cc gstream.cc sql_help.cc tztime.cc sql_cursor.cc \
|
||||
sp_head.cc sp_pcontext.cc sp.cc sp_cache.cc sp_rcontext.cc \
|
||||
parse_file.cc sql_view.cc sql_trigger.cc my_decimal.cc \
|
||||
event_executor.cc event.cc event_timed.cc \
|
||||
rpl_filter.cc sql_partition.cc handlerton.cc sql_plugin.cc \
|
||||
sql_tablespace.cc \
|
||||
rpl_injector.cc my_user.c partition_info.cc
|
||||
event_executor.cc event.cc event_timed.cc \
|
||||
rpl_filter.cc sql_partition.cc sql_builtin.cc sql_plugin.cc \
|
||||
sql_tablespace.cc \
|
||||
rpl_injector.cc my_user.c partition_info.cc
|
||||
|
||||
libmysqld_int_a_SOURCES= $(libmysqld_sources) $(libmysqlsources) $(sqlsources)
|
||||
EXTRA_libmysqld_a_SOURCES = ha_innodb.cc ha_berkeley.cc ha_archive.cc \
|
||||
ha_blackhole.cc ha_federated.cc ha_ndbcluster.cc \
|
||||
ha_ndbcluster_binlog.cc \
|
||||
ha_partition.cc
|
||||
libmysqld_a_DEPENDENCIES= @mysql_se_objs@
|
||||
libmysqld_a_SOURCES=
|
||||
|
||||
sqlstoragesources = $(EXTRA_libmysqld_a_SOURCES)
|
||||
@ -85,15 +83,11 @@ sql_yacc.cc sql_yacc.h: $(top_srcdir)/sql/sql_yacc.yy
|
||||
|
||||
# The following libraries should be included in libmysqld.a
|
||||
INC_LIB= $(top_builddir)/regex/libregex.a \
|
||||
$(top_builddir)/storage/myisam/libmyisam.a \
|
||||
$(top_builddir)/storage/myisammrg/libmyisammrg.a \
|
||||
$(top_builddir)/storage/archive/libarchive.a \
|
||||
$(top_builddir)/storage/heap/libheap.a \
|
||||
$(top_builddir)/mysys/libmysys.a \
|
||||
$(top_builddir)/strings/libmystrings.a \
|
||||
$(top_builddir)/dbug/libdbug.a \
|
||||
$(top_builddir)/vio/libvio.a \
|
||||
@mysql_se_libs@ \
|
||||
@mysql_plugin_libs@ \
|
||||
$(yassl_las)
|
||||
|
||||
if HAVE_YASSL
|
||||
|
@ -1,6 +1,27 @@
|
||||
SUBDIRS= fulltext
|
||||
# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
||||
#
|
||||
# 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; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
# extra plugin example files are listed here, to
|
||||
# keep its Makefile.am cleaner as a template
|
||||
EXTRA_DIST= fulltext/configure.in
|
||||
# Process this file with automake to create Makefile.in
|
||||
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
|
||||
# These are built from source in the Docs directory
|
||||
EXTRA_DIST = fulltext/configure.in
|
||||
SUBDIRS =
|
||||
DIST_SUBDIRS = . fulltext
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
@ -1,9 +1,44 @@
|
||||
#Makefile.am example for a plugin
|
||||
|
||||
pkglibdir=$(libdir)/mysql
|
||||
INCLUDES= -I$(top_builddir)/include -I$(top_srcdir)/include
|
||||
noinst_LTLIBRARIES= mypluglib.la
|
||||
#pkglib_LTLIBRARIES= mypluglib.la
|
||||
mypluglib_la_SOURCES= plugin_example.c
|
||||
mypluglib_la_LDFLAGS= -module -rpath $(pkglibdir)
|
||||
#MYSQL_MODULE(ftexample, [Simple Parser],
|
||||
# [Simple full-text parser plugin])
|
||||
#MYSQL_MODULE_DIRECTORY(ftexample, [plugin/fulltext])
|
||||
#MYSQL_MODULE_STATIC(ftexample, [libftexample.a])
|
||||
#MYSQL_MODULE_DYNAMIC(ftexample, [ft_example.la])
|
||||
|
||||
|
||||
#called from the top level Makefile
|
||||
|
||||
MYSQLDATAdir = $(localstatedir)
|
||||
MYSQLSHAREdir = $(pkgdatadir)
|
||||
MYSQLBASEdir= $(prefix)
|
||||
MYSQLLIBdir= $(pkglibdir)
|
||||
INCLUDES = -I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/regex \
|
||||
-I$(top_srcdir)/sql \
|
||||
-I$(srcdir)
|
||||
WRAPLIBS=
|
||||
|
||||
LDADD =
|
||||
|
||||
DEFS = @DEFS@
|
||||
|
||||
noinst_HEADERS =
|
||||
|
||||
EXTRA_LTLIBRARIES = ft_example.la
|
||||
pkglib_LTLIBRARIES = @plugin_ftexample_shared_target@
|
||||
ft_example_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
|
||||
ft_example_la_CXXFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ft_example_la_CFLAGS= $(AM_CFLAGS) -DMYSQL_DYNAMIC_PLUGIN
|
||||
ft_example_la_SOURCES = plugin_example.c
|
||||
|
||||
|
||||
EXTRA_LIBRARIES = libftexample.a
|
||||
noinst_LIBRARIES = @plugin_ftexample_static_target@
|
||||
libftexample_a_CXXFLAGS=$(AM_CFLAGS)
|
||||
libftexample_a_CFLAGS = $(AM_CFLAGS)
|
||||
libftexample_a_SOURCES= plugin_example.c
|
||||
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
@ -216,7 +216,7 @@ static struct st_mysql_show_var simple_status[]=
|
||||
Plugin library descriptor
|
||||
*/
|
||||
|
||||
mysql_declare_plugin
|
||||
mysql_declare_plugin(ftexample)
|
||||
{
|
||||
MYSQL_FTPARSER_PLUGIN, /* type */
|
||||
&simple_parser_descriptor, /* descriptor */
|
||||
|
@ -30,10 +30,7 @@ libexec_PROGRAMS = mysqld
|
||||
noinst_PROGRAMS = gen_lex_hash
|
||||
bin_PROGRAMS = mysql_tzinfo_to_sql
|
||||
gen_lex_hash_LDFLAGS = @NOINST_LDFLAGS@
|
||||
LDADD = $(top_builddir)/storage/myisam/libmyisam.a \
|
||||
$(top_builddir)/storage/myisammrg/libmyisammrg.a \
|
||||
$(top_builddir)/storage/heap/libheap.a \
|
||||
$(top_builddir)/vio/libvio.a \
|
||||
LDADD = $(top_builddir)/vio/libvio.a \
|
||||
$(top_builddir)/mysys/libmysys.a \
|
||||
$(top_builddir)/dbug/libdbug.a \
|
||||
$(top_builddir)/regex/libregex.a \
|
||||
@ -41,7 +38,7 @@ LDADD = $(top_builddir)/storage/myisam/libmyisam.a \
|
||||
|
||||
mysqld_LDADD = @MYSQLD_EXTRA_LDFLAGS@ \
|
||||
@pstack_libs@ \
|
||||
@mysql_se_objs@ @mysql_se_libs@ \
|
||||
@mysql_plugin_libs@ \
|
||||
$(LDADD) $(CXXLDFLAGS) $(WRAPLIBS) @LIBDL@ \
|
||||
@yassl_libs@ @openssl_libs@
|
||||
noinst_HEADERS = item.h item_func.h item_sum.h item_cmpfunc.h \
|
||||
@ -53,6 +50,9 @@ noinst_HEADERS = item.h item_func.h item_sum.h item_cmpfunc.h \
|
||||
sql_manager.h sql_map.h sql_string.h unireg.h \
|
||||
sql_error.h field.h handler.h mysqld_suffix.h \
|
||||
ha_heap.h ha_myisam.h ha_myisammrg.h ha_partition.h \
|
||||
ha_innodb.h ha_berkeley.h ha_federated.h \
|
||||
ha_ndbcluster.h ha_ndbcluster_binlog.h \
|
||||
ha_ndbcluster_tables.h
|
||||
opt_range.h protocol.h rpl_tblmap.h \
|
||||
log.h sql_show.h rpl_rli.h \
|
||||
sql_select.h structs.h table.h sql_udf.h hash_filo.h\
|
||||
@ -61,12 +61,12 @@ noinst_HEADERS = item.h item_func.h item_sum.h item_cmpfunc.h \
|
||||
rpl_injector.h \
|
||||
stacktrace.h sql_sort.h sql_cache.h set_var.h \
|
||||
spatial.h gstream.h client_settings.h tzfile.h \
|
||||
tztime.h my_decimal.h\
|
||||
tztime.h my_decimal.h\
|
||||
sp_head.h sp_pcontext.h sp_rcontext.h sp.h sp_cache.h \
|
||||
parse_file.h sql_view.h sql_trigger.h \
|
||||
sql_array.h sql_cursor.h event.h event_priv.h \
|
||||
sql_plugin.h authors.h sql_partition.h \
|
||||
partition_info.h partition_element.h
|
||||
partition_info.h partition_element.h
|
||||
mysqld_SOURCES = sql_lex.cc sql_handler.cc sql_partition.cc \
|
||||
item.cc item_sum.cc item_buff.cc item_func.cc \
|
||||
item_cmpfunc.cc item_strfunc.cc item_timefunc.cc \
|
||||
@ -79,7 +79,7 @@ mysqld_SOURCES = sql_lex.cc sql_handler.cc sql_partition.cc \
|
||||
mysqld.cc password.c hash_filo.cc hostname.cc \
|
||||
set_var.cc sql_parse.cc sql_yacc.yy \
|
||||
sql_base.cc table.cc sql_select.cc sql_insert.cc \
|
||||
sql_prepare.cc sql_error.cc \
|
||||
sql_prepare.cc sql_error.cc \
|
||||
sql_update.cc sql_delete.cc uniques.cc sql_do.cc \
|
||||
procedure.cc item_uniq.cc sql_test.cc \
|
||||
log.cc log_event.cc init.cc derror.cc sql_acl.cc \
|
||||
@ -87,6 +87,9 @@ mysqld_SOURCES = sql_lex.cc sql_handler.cc sql_partition.cc \
|
||||
discover.cc time.cc opt_range.cc opt_sum.cc \
|
||||
records.cc filesort.cc handler.cc \
|
||||
ha_heap.cc ha_myisam.cc ha_myisammrg.cc \
|
||||
ha_partition.cc ha_innodb.cc ha_berkeley.cc \
|
||||
ha_federated.cc \
|
||||
ha_ndbcluster.cc ha_ndbcluster_binlog.cc \
|
||||
sql_db.cc sql_table.cc sql_rename.cc sql_crypt.cc \
|
||||
sql_load.cc mf_iocache.cc field_conv.cc sql_show.cc \
|
||||
sql_udf.cc sql_analyse.cc sql_analyse.h sql_cache.cc \
|
||||
@ -102,15 +105,9 @@ mysqld_SOURCES = sql_lex.cc sql_handler.cc sql_partition.cc \
|
||||
sp_cache.cc parse_file.cc sql_trigger.cc \
|
||||
event_executor.cc event.cc event_timed.cc \
|
||||
sql_plugin.cc sql_binlog.cc \
|
||||
handlerton.cc sql_tablespace.cc partition_info.cc
|
||||
EXTRA_mysqld_SOURCES = ha_innodb.cc ha_berkeley.cc ha_archive.cc \
|
||||
ha_innodb.h ha_berkeley.h ha_archive.h \
|
||||
ha_blackhole.cc ha_federated.cc ha_ndbcluster.cc \
|
||||
ha_blackhole.h ha_federated.h ha_ndbcluster.h \
|
||||
ha_ndbcluster_binlog.cc ha_ndbcluster_binlog.h \
|
||||
ha_ndbcluster_tables.h \
|
||||
ha_partition.cc ha_partition.h
|
||||
mysqld_DEPENDENCIES = @mysql_se_objs@
|
||||
sql_builtin.cc sql_tablespace.cc partition_info.cc
|
||||
|
||||
|
||||
gen_lex_hash_SOURCES = gen_lex_hash.cc
|
||||
gen_lex_hash_LDADD = $(LDADD) $(CXXLDFLAGS)
|
||||
mysql_tzinfo_to_sql_SOURCES = mysql_tzinfo_to_sql.cc
|
||||
@ -162,6 +159,7 @@ sql_yacc.o: sql_yacc.cc sql_yacc.h $(HEADERS)
|
||||
lex_hash.h: gen_lex_hash$(EXEEXT)
|
||||
./gen_lex_hash$(EXEEXT) > $@
|
||||
|
||||
# the following three should eventually be moved out of this directory
|
||||
ha_berkeley.o: ha_berkeley.cc ha_berkeley.h
|
||||
$(CXXCOMPILE) @bdb_includes@ $(LM_CFLAGS) -c $<
|
||||
|
||||
|
@ -16,7 +16,7 @@ SET_SOURCE_FILES_PROPERTIES(${CMAKE_SOURCE_DIR}/sql/message.rc
|
||||
${CMAKE_SOURCE_DIR}/sql/sql_yacc.h
|
||||
${CMAKE_SOURCE_DIR}/sql/sql_yacc.cc
|
||||
${CMAKE_SOURCE_DIR}/include/mysql_version.h
|
||||
${CMAKE_SOURCE_DIR}/sql/handlerton.cc
|
||||
${CMAKE_SOURCE_DIR}/sql/sql_builtin.cc
|
||||
${CMAKE_SOURCE_DIR}/sql/lex_hash.h
|
||||
${PROJECT_SOURCE_DIR}/include/mysqld_error.h
|
||||
${PROJECT_SOURCE_DIR}/include/mysqld_ername.h
|
||||
@ -29,7 +29,8 @@ ADD_DEFINITIONS(-DHAVE_ROW_BASED_REPLICATION -DMYSQL_SERVER
|
||||
ADD_EXECUTABLE(mysqld ../sql-common/client.c derror.cc des_key_file.cc
|
||||
discover.cc ../libmysql/errmsg.c field.cc field_conv.cc
|
||||
filesort.cc gstream.cc ha_heap.cc ha_myisam.cc ha_myisammrg.cc
|
||||
${mysql_se_ha_src} handler.cc hash_filo.cc hash_filo.h
|
||||
ha_innodb.cc ha_partition.cc ha_federated.cc ha_berkeley.cc
|
||||
handler.cc hash_filo.cc hash_filo.h
|
||||
hostname.cc init.cc item.cc item_buff.cc item_cmpfunc.cc
|
||||
item_create.cc item_func.cc item_geofunc.cc item_row.cc
|
||||
item_strfunc.cc item_subselect.cc item_sum.cc item_timefunc.cc
|
||||
@ -59,13 +60,19 @@ ADD_EXECUTABLE(mysqld ../sql-common/client.c derror.cc des_key_file.cc
|
||||
${PROJECT_SOURCE_DIR}/include/mysqld_ername.h
|
||||
${PROJECT_SOURCE_DIR}/include/sql_state.h
|
||||
${PROJECT_SOURCE_DIR}/include/mysql_version.h
|
||||
${PROJECT_SOURCE_DIR}/sql/handlerton.cc
|
||||
${PROJECT_SOURCE_DIR}/sql/sql_builtin.cc
|
||||
${PROJECT_SOURCE_DIR}/sql/lex_hash.h)
|
||||
TARGET_LINK_LIBRARIES(mysqld heap myisam myisammrg mysys yassl zlib dbug yassl
|
||||
taocrypt strings vio regex wsock32)
|
||||
IF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
TARGET_LINK_LIBRARIES(mysqld archive)
|
||||
ENDIF(WITH_ARCHIVE_STORAGE_ENGINE)
|
||||
IF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
TARGET_LINK_LIBRARIES(mysqld blackhole)
|
||||
ENDIF(WITH_BLACKHOLE_STORAGE_ENGINE)
|
||||
IF(WITH_CSV_STORAGE_ENGINE)
|
||||
TARGET_LINK_LIBRARIES(mysqld csv)
|
||||
ENDIF(WITH_CSV_STORAGE_ENGINE)
|
||||
IF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
TARGET_LINK_LIBRARIES(mysqld example)
|
||||
ENDIF(WITH_EXAMPLE_STORAGE_ENGINE)
|
||||
|
@ -56,10 +56,14 @@
|
||||
#include <m_ctype.h>
|
||||
#include <myisampack.h>
|
||||
#include <hash.h>
|
||||
|
||||
#ifdef WITH_BERKELEY_STORAGE_ENGINE
|
||||
#include "ha_berkeley.h"
|
||||
#include "sql_manager.h"
|
||||
#include <stdarg.h>
|
||||
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
#define HA_BERKELEY_ROWS_IN_TABLE 10000 /* to get optimization right */
|
||||
#define HA_BERKELEY_RANGE_COUNT 100
|
||||
#define HA_BERKELEY_MAX_ROWS 10000000 /* Max rows in table */
|
||||
@ -2725,3 +2729,17 @@ bool ha_berkeley::check_if_incompatible_data(HA_CREATE_INFO *info,
|
||||
}
|
||||
|
||||
|
||||
mysql_declare_plugin(berkeley)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&berkeley_hton,
|
||||
berkeley_hton.name,
|
||||
"MySQL AB",
|
||||
"BerkeleyDB Storage Engine",
|
||||
NULL, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
||||
#endif
|
||||
|
@ -351,9 +351,13 @@
|
||||
#pragma implementation // gcc: Class implementation
|
||||
#endif
|
||||
|
||||
#ifdef WITH_FEDERATED_STORAGE_ENGINE
|
||||
#include "ha_federated.h"
|
||||
|
||||
#include "m_string.h"
|
||||
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
/* Variables for federated share methods */
|
||||
static HASH federated_open_tables; // To track open tables
|
||||
pthread_mutex_t federated_mutex; // To init the hash
|
||||
@ -2804,3 +2808,18 @@ int ha_federated::execute_simple_query(const char *query, int len)
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
mysql_declare_plugin(federated)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&federated_hton,
|
||||
federated_hton.name,
|
||||
"Patrick Galbraith and Brian Aker, MySQL AB",
|
||||
"Federated Storage Engine",
|
||||
NULL, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
||||
#endif
|
||||
|
@ -706,3 +706,16 @@ bool ha_heap::check_if_incompatible_data(HA_CREATE_INFO *info,
|
||||
return COMPATIBLE_DATA_NO;
|
||||
return COMPATIBLE_DATA_YES;
|
||||
}
|
||||
|
||||
mysql_declare_plugin(heap)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&heap_hton,
|
||||
heap_hton.name,
|
||||
NULL,
|
||||
heap_hton.comment,
|
||||
NULL,
|
||||
NULL,
|
||||
0
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
@ -42,6 +42,7 @@ have disables the InnoDB inlining in this file. */
|
||||
|
||||
#define MAX_ULONG_BIT ((ulong) 1 << (sizeof(ulong)*8-1))
|
||||
|
||||
#ifdef WITH_INNOBASE_STORAGE_ENGINE
|
||||
#include "ha_innodb.h"
|
||||
|
||||
pthread_mutex_t innobase_share_mutex, /* to protect innobase_open_files */
|
||||
@ -7432,3 +7433,19 @@ bool ha_innobase::check_if_incompatible_data(
|
||||
|
||||
return COMPATIBLE_DATA_YES;
|
||||
}
|
||||
|
||||
|
||||
mysql_declare_plugin(innobase)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&innobase_hton,
|
||||
innobase_hton.name,
|
||||
"Innobase OY",
|
||||
"InnoDB Storage Engine",
|
||||
NULL, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
||||
#endif
|
||||
|
@ -31,6 +31,8 @@
|
||||
#include "../storage/myisam/rt_index.h"
|
||||
#endif
|
||||
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
ulong myisam_recover_options= HA_RECOVER_NONE;
|
||||
|
||||
/* bits in myisam_recover_options */
|
||||
@ -1787,3 +1789,17 @@ bool ha_myisam::check_if_incompatible_data(HA_CREATE_INFO *info,
|
||||
return COMPATIBLE_DATA_NO;
|
||||
return COMPATIBLE_DATA_YES;
|
||||
}
|
||||
|
||||
|
||||
mysql_declare_plugin(myisam)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&myisam_hton,
|
||||
myisam_hton.name,
|
||||
"MySQL AB",
|
||||
"MyISAM Storage Engine",
|
||||
NULL, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
@ -28,6 +28,8 @@
|
||||
#include "../storage/myisammrg/myrg_def.h"
|
||||
#endif
|
||||
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
/*****************************************************************************
|
||||
** MyISAM MERGE tables
|
||||
*****************************************************************************/
|
||||
@ -573,3 +575,16 @@ bool ha_myisammrg::check_if_incompatible_data(HA_CREATE_INFO *info,
|
||||
*/
|
||||
return COMPATIBLE_DATA_NO;
|
||||
}
|
||||
|
||||
mysql_declare_plugin(myisammrg)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&myisammrg_hton,
|
||||
myisammrg_hton.name,
|
||||
"MySQL AB",
|
||||
"MyISAMMRG Storage Engine",
|
||||
NULL, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
@ -27,6 +27,7 @@
|
||||
#include "mysql_priv.h"
|
||||
|
||||
#include <my_dir.h>
|
||||
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
|
||||
#include "ha_ndbcluster.h"
|
||||
#include <ndbapi/NdbApi.hpp>
|
||||
#include <ndbapi/NdbScanFilter.hpp>
|
||||
@ -36,6 +37,8 @@
|
||||
#include "ha_ndbcluster_binlog.h"
|
||||
#include "ha_ndbcluster_tables.h"
|
||||
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
#ifdef ndb_dynamite
|
||||
#undef assert
|
||||
#define assert(x) do { if(x) break; ::printf("%s %d: assert failed: %s\n", __FILE__, __LINE__, #x); ::fflush(stdout); ::signal(SIGABRT,SIG_DFL); ::abort(); ::kill(::getpid(),6); ::kill(::getpid(),9); } while (0)
|
||||
@ -10253,3 +10256,19 @@ static int ndbcluster_fill_files_table(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
mysql_declare_plugin(ndbcluster)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&ndbcluster_hton,
|
||||
ndbcluster_hton.name,
|
||||
"MySQL AB",
|
||||
"NDB Storage Engine",
|
||||
NULL, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
||||
#endif
|
||||
|
@ -16,6 +16,7 @@
|
||||
*/
|
||||
|
||||
#include "mysql_priv.h"
|
||||
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
|
||||
#include "ha_ndbcluster.h"
|
||||
|
||||
#ifdef HAVE_NDB_BINLOG
|
||||
@ -3648,3 +3649,4 @@ ndbcluster_show_status_binlog(THD* thd, stat_print_fn *stat_print,
|
||||
}
|
||||
|
||||
#endif /* HAVE_NDB_BINLOG */
|
||||
#endif
|
||||
|
@ -54,8 +54,11 @@
|
||||
|
||||
#include "mysql_priv.h"
|
||||
|
||||
#ifdef WITH_PARTITION_STORAGE_ENGINE
|
||||
#include "ha_partition.h"
|
||||
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
static const char *ha_par_ext= ".par";
|
||||
#ifdef NOT_USED
|
||||
static int free_share(PARTITION_SHARE * share);
|
||||
@ -5438,3 +5441,19 @@ static int free_share(PARTITION_SHARE *share)
|
||||
return 0;
|
||||
}
|
||||
#endif /* NOT_USED */
|
||||
|
||||
|
||||
mysql_declare_plugin(partition)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&partition_hton,
|
||||
partition_hton.name,
|
||||
"Mikael Ronstrom, MySQL AB",
|
||||
"Partitioning Support",
|
||||
NULL, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
||||
#endif
|
||||
|
162
sql/handler.cc
162
sql/handler.cc
@ -35,6 +35,7 @@
|
||||
#define NDB_MAX_ATTRIBUTES_IN_TABLE 128
|
||||
#include "ha_ndbcluster.h"
|
||||
#endif
|
||||
|
||||
#ifdef WITH_PARTITION_STORAGE_ENGINE
|
||||
#include "ha_partition.h"
|
||||
#endif
|
||||
@ -43,7 +44,10 @@
|
||||
#include "ha_innodb.h"
|
||||
#endif
|
||||
|
||||
extern handlerton *sys_table_types[];
|
||||
/* While we have legacy_db_type, we have this array to
|
||||
check for dups and to find handlerton from legacy_db_type.
|
||||
Remove when legacy_db_type is finally gone */
|
||||
static handlerton *installed_htons[128];
|
||||
|
||||
#define BITMAP_STACKBUF_SIZE (128/8)
|
||||
|
||||
@ -138,30 +142,8 @@ handlerton *ha_resolve_by_name(THD *thd, LEX_STRING *name)
|
||||
}
|
||||
|
||||
|
||||
struct plugin_find_dbtype_st
|
||||
{
|
||||
enum legacy_db_type db_type;
|
||||
handlerton *hton;
|
||||
};
|
||||
|
||||
|
||||
static my_bool plugin_find_dbtype(THD *unused, st_plugin_int *plugin,
|
||||
void *arg)
|
||||
{
|
||||
handlerton *types= (handlerton *) plugin->plugin->info;
|
||||
if (types->db_type == ((struct plugin_find_dbtype_st *)arg)->db_type)
|
||||
{
|
||||
((struct plugin_find_dbtype_st *)arg)->hton= types;
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
const char *ha_get_storage_engine(enum legacy_db_type db_type)
|
||||
{
|
||||
struct plugin_find_dbtype_st info;
|
||||
|
||||
switch (db_type)
|
||||
{
|
||||
case DB_TYPE_DEFAULT:
|
||||
@ -169,13 +151,10 @@ const char *ha_get_storage_engine(enum legacy_db_type db_type)
|
||||
case DB_TYPE_UNKNOWN:
|
||||
return "UNKNOWN";
|
||||
default:
|
||||
info.db_type= db_type;
|
||||
|
||||
if (!plugin_foreach(NULL, plugin_find_dbtype,
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN, &info))
|
||||
if (db_type > DB_TYPE_UNKNOWN && db_type < DB_TYPE_DEFAULT &&
|
||||
installed_htons[db_type])
|
||||
return installed_htons[db_type]->name;
|
||||
return "*NONE*";
|
||||
|
||||
return info.hton->name;
|
||||
}
|
||||
}
|
||||
|
||||
@ -190,8 +169,6 @@ static handler *create_default(TABLE_SHARE *table)
|
||||
|
||||
handlerton *ha_resolve_by_legacy_type(THD *thd, enum legacy_db_type db_type)
|
||||
{
|
||||
struct plugin_find_dbtype_st info;
|
||||
|
||||
switch (db_type)
|
||||
{
|
||||
case DB_TYPE_DEFAULT:
|
||||
@ -202,12 +179,9 @@ handlerton *ha_resolve_by_legacy_type(THD *thd, enum legacy_db_type db_type)
|
||||
case DB_TYPE_UNKNOWN:
|
||||
return NULL;
|
||||
default:
|
||||
info.db_type= db_type;
|
||||
if (!plugin_foreach(NULL, plugin_find_dbtype,
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN, &info))
|
||||
if (db_type > DB_TYPE_UNKNOWN && db_type < DB_TYPE_DEFAULT)
|
||||
return installed_htons[db_type];
|
||||
return NULL;
|
||||
|
||||
return info.hton;
|
||||
}
|
||||
}
|
||||
|
||||
@ -394,32 +368,77 @@ static int ha_finish_errors(void)
|
||||
}
|
||||
|
||||
|
||||
static void ha_was_inited_ok(handlerton *ht)
|
||||
int ha_finalize_handlerton(st_plugin_int *plugin)
|
||||
{
|
||||
uint tmp= ht->savepoint_offset;
|
||||
ht->savepoint_offset= savepoint_alloc_size;
|
||||
savepoint_alloc_size+= tmp;
|
||||
ht->slot= total_ha++;
|
||||
if (ht->prepare)
|
||||
total_ha_2pc++;
|
||||
}
|
||||
handlerton *hton;
|
||||
DBUG_ENTER("ha_finalize_handlerton");
|
||||
|
||||
|
||||
int ha_initialize_handlerton(handlerton *hton)
|
||||
{
|
||||
DBUG_ENTER("ha_initialize_handlerton");
|
||||
|
||||
if (hton == NULL)
|
||||
if (!(hton= (handlerton *) plugin->plugin->info))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
switch (hton->state)
|
||||
{
|
||||
case SHOW_OPTION_NO:
|
||||
case SHOW_OPTION_DISABLED:
|
||||
break;
|
||||
case SHOW_OPTION_YES:
|
||||
if (hton->panic && hton->panic(HA_PANIC_CLOSE))
|
||||
DBUG_RETURN(1);
|
||||
if (installed_htons[hton->db_type] == hton)
|
||||
installed_htons[hton->db_type]= NULL;
|
||||
break;
|
||||
};
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
int ha_initialize_handlerton(st_plugin_int *plugin)
|
||||
{
|
||||
handlerton *hton;
|
||||
DBUG_ENTER("ha_initialize_handlerton");
|
||||
|
||||
if (!(hton= (handlerton *) plugin->plugin->info))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
/* for the sake of sanity, we set the handlerton name to be the
|
||||
same as the plugin name */
|
||||
hton->name= plugin->name.str;
|
||||
|
||||
|
||||
switch (hton->state) {
|
||||
case SHOW_OPTION_NO:
|
||||
break;
|
||||
case SHOW_OPTION_YES:
|
||||
if (!hton->init || !hton->init())
|
||||
{
|
||||
ha_was_inited_ok(hton);
|
||||
uint tmp= hton->savepoint_offset;
|
||||
hton->savepoint_offset= savepoint_alloc_size;
|
||||
savepoint_alloc_size+= tmp;
|
||||
hton->slot= total_ha++;
|
||||
if (hton->prepare)
|
||||
total_ha_2pc++;
|
||||
|
||||
/* now check the db_type for conflict */
|
||||
if (hton->db_type <= DB_TYPE_UNKNOWN ||
|
||||
hton->db_type >= DB_TYPE_DEFAULT ||
|
||||
installed_htons[hton->db_type])
|
||||
{
|
||||
int idx= (int) DB_TYPE_FIRST_DYNAMIC;
|
||||
|
||||
while (idx < (int) DB_TYPE_DEFAULT && installed_htons[idx])
|
||||
idx++;
|
||||
|
||||
if (idx == (int) DB_TYPE_DEFAULT)
|
||||
{
|
||||
sql_print_warning("Too many storage engines!");
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
if (hton->db_type != DB_TYPE_UNKNOWN)
|
||||
sql_print_warning("Storage engine '%s' has conflicting typecode. "
|
||||
"Assigning value %d.", hton->name, idx);
|
||||
hton->db_type= (enum legacy_db_type) idx;
|
||||
}
|
||||
installed_htons[hton->db_type]= hton;
|
||||
break;
|
||||
}
|
||||
/* fall through */
|
||||
@ -436,7 +455,7 @@ static my_bool init_handlerton(THD *unused1, st_plugin_int *plugin,
|
||||
{
|
||||
if (plugin->state == PLUGIN_IS_UNINITIALIZED)
|
||||
{
|
||||
ha_initialize_handlerton((handlerton *) plugin->plugin->info);
|
||||
ha_initialize_handlerton(plugin);
|
||||
plugin->state= PLUGIN_IS_READY;
|
||||
}
|
||||
return FALSE;
|
||||
@ -447,12 +466,15 @@ int ha_init()
|
||||
{
|
||||
int error= 0;
|
||||
total_ha= savepoint_alloc_size= 0;
|
||||
DBUG_ENTER("ha_init");
|
||||
|
||||
bzero(installed_htons, sizeof(installed_htons));
|
||||
|
||||
if (ha_init_errors())
|
||||
return 1;
|
||||
DBUG_RETURN(1);
|
||||
|
||||
if (plugin_foreach(NULL, init_handlerton, MYSQL_STORAGE_ENGINE_PLUGIN, 0))
|
||||
return 1;
|
||||
DBUG_RETURN(1);
|
||||
|
||||
DBUG_ASSERT(total_ha < MAX_HA);
|
||||
/*
|
||||
@ -462,37 +484,7 @@ int ha_init()
|
||||
*/
|
||||
opt_using_transactions= total_ha>(ulong)opt_bin_log;
|
||||
savepoint_alloc_size+= sizeof(SAVEPOINT);
|
||||
return error;
|
||||
}
|
||||
|
||||
|
||||
int ha_register_builtin_plugins()
|
||||
{
|
||||
handlerton **hton;
|
||||
uint size= 0;
|
||||
struct st_mysql_plugin *plugin;
|
||||
DBUG_ENTER("ha_register_builtin_plugins");
|
||||
|
||||
for (hton= sys_table_types; *hton; hton++)
|
||||
size+= sizeof(struct st_mysql_plugin);
|
||||
|
||||
if (!(plugin= (struct st_mysql_plugin *)
|
||||
my_once_alloc(size, MYF(MY_WME | MY_ZEROFILL))))
|
||||
DBUG_RETURN(1);
|
||||
|
||||
for (hton= sys_table_types; *hton; hton++, plugin++)
|
||||
{
|
||||
plugin->type= MYSQL_STORAGE_ENGINE_PLUGIN;
|
||||
plugin->info= *hton;
|
||||
plugin->version= 0;
|
||||
plugin->name= (*hton)->name;
|
||||
plugin->author= NULL;
|
||||
plugin->descr= (*hton)->comment;
|
||||
|
||||
if (plugin_register_builtin(plugin))
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
DBUG_RETURN(0);
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
|
||||
|
@ -233,6 +233,7 @@ enum legacy_db_type
|
||||
DB_TYPE_BLACKHOLE_DB,
|
||||
DB_TYPE_PARTITION_DB,
|
||||
DB_TYPE_BINLOG,
|
||||
DB_TYPE_FIRST_DYNAMIC=32,
|
||||
DB_TYPE_DEFAULT=127 // Must be last
|
||||
};
|
||||
|
||||
@ -1552,8 +1553,8 @@ static inline bool ha_storage_engine_is_enabled(const handlerton *db_type)
|
||||
|
||||
/* basic stuff */
|
||||
int ha_init(void);
|
||||
int ha_register_builtin_plugins();
|
||||
int ha_initialize_handlerton(handlerton *hton);
|
||||
int ha_initialize_handlerton(st_plugin_int *plugin);
|
||||
int ha_finalize_handlerton(st_plugin_int *plugin);
|
||||
|
||||
TYPELIB *ha_known_exts(void);
|
||||
int ha_panic(enum ha_panic_function flag);
|
||||
|
@ -1,72 +0,0 @@
|
||||
#include "mysql_priv.h"
|
||||
|
||||
extern handlerton heap_hton;
|
||||
extern handlerton myisam_hton;
|
||||
extern handlerton myisammrg_hton;
|
||||
extern handlerton binlog_hton;
|
||||
#ifdef WITH_INNOBASE_STORAGE_ENGINE
|
||||
extern handlerton innobase_hton;
|
||||
#endif
|
||||
#ifdef WITH_BERKELEY_STORAGE_ENGINE
|
||||
extern handlerton berkeley_hton;
|
||||
#endif
|
||||
#ifdef WITH_EXAMPLE_STORAGE_ENGINE
|
||||
extern handlerton example_hton;
|
||||
#endif
|
||||
#ifdef WITH_ARCHIVE_STORAGE_ENGINE
|
||||
extern handlerton archive_hton;
|
||||
#endif
|
||||
#ifdef WITH_CSV_STORAGE_ENGINE
|
||||
extern handlerton tina_hton;
|
||||
#endif
|
||||
#ifdef WITH_BLACKHOLE_STORAGE_ENGINE
|
||||
extern handlerton blackhole_hton;
|
||||
#endif
|
||||
#ifdef WITH_FEDERATED_STORAGE_ENGINE
|
||||
extern handlerton federated_hton;
|
||||
#endif
|
||||
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
|
||||
extern handlerton ndbcluster_hton;
|
||||
#endif
|
||||
#ifdef WITH_PARTITION_STORAGE_ENGINE
|
||||
extern handlerton partition_hton;
|
||||
#endif
|
||||
|
||||
/*
|
||||
This array is used for processing compiled in engines.
|
||||
*/
|
||||
handlerton *sys_table_types[]=
|
||||
{
|
||||
&heap_hton,
|
||||
&myisam_hton,
|
||||
#ifdef WITH_INNOBASE_STORAGE_ENGINE
|
||||
&innobase_hton,
|
||||
#endif
|
||||
#ifdef WITH_BERKELEY_STORAGE_ENGINE
|
||||
&berkeley_hton,
|
||||
#endif
|
||||
#ifdef WITH_EXAMPLE_STORAGE_ENGINE
|
||||
&example_hton,
|
||||
#endif
|
||||
#ifdef WITH_ARCHIVE_STORAGE_ENGINE
|
||||
&archive_hton,
|
||||
#endif
|
||||
#ifdef WITH_CSV_STORAGE_ENGINE
|
||||
&tina_hton,
|
||||
#endif
|
||||
#ifdef WITH_BLACKHOLE_STORAGE_ENGINE
|
||||
&blackhole_hton,
|
||||
#endif
|
||||
#ifdef WITH_FEDERATED_STORAGE_ENGINE
|
||||
&federated_hton,
|
||||
#endif
|
||||
#ifdef WITH_NDBCLUSTER_STORAGE_ENGINE
|
||||
&ndbcluster_hton,
|
||||
#endif
|
||||
#ifdef WITH_PARTITION_STORAGE_ENGINE
|
||||
&partition_hton,
|
||||
#endif
|
||||
&myisammrg_hton,
|
||||
&binlog_hton,
|
||||
NULL
|
||||
};
|
@ -1,14 +0,0 @@
|
||||
|
||||
#include "mysql_priv.h"
|
||||
|
||||
extern handlerton heap_hton,myisam_hton,myisammrg_hton,
|
||||
binlog_hton@mysql_se_decls@;
|
||||
|
||||
/*
|
||||
This array is used for processing compiled in engines.
|
||||
*/
|
||||
handlerton *sys_table_types[]=
|
||||
{
|
||||
&heap_hton,&myisam_hton@mysql_se_htons@,&myisammrg_hton,&binlog_hton,NULL
|
||||
};
|
||||
|
15
sql/log.cc
15
sql/log.cc
@ -30,6 +30,8 @@
|
||||
#include "message.h"
|
||||
#endif
|
||||
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
/* max size of the log message */
|
||||
#define MAX_LOG_BUFFER_SIZE 1024
|
||||
#define MAX_USER_HOST_SIZE 512
|
||||
@ -4343,3 +4345,16 @@ err1:
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
mysql_declare_plugin(binlog)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&binlog_hton,
|
||||
binlog_hton.name,
|
||||
"MySQL AB",
|
||||
"Binlog Engine",
|
||||
NULL, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
|
@ -2637,12 +2637,6 @@ static int init_common_variables(const char *conf_file_name, int argc,
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (ha_register_builtin_plugins())
|
||||
{
|
||||
sql_print_error("Failed to register built-in storage engines.");
|
||||
return 1;
|
||||
}
|
||||
|
||||
load_defaults(conf_file_name, groups, &argc, &argv);
|
||||
defaults_argv=argv;
|
||||
get_options(argc,argv);
|
||||
@ -3012,6 +3006,19 @@ static int init_server_components()
|
||||
}
|
||||
}
|
||||
|
||||
if (xid_cache_init())
|
||||
{
|
||||
sql_print_error("Out of memory");
|
||||
unireg_abort(1);
|
||||
}
|
||||
|
||||
/* We have to initialize the storage engines before CSV logging */
|
||||
if (ha_init())
|
||||
{
|
||||
sql_print_error("Can't init databases");
|
||||
unireg_abort(1);
|
||||
}
|
||||
|
||||
#ifdef WITH_CSV_STORAGE_ENGINE
|
||||
if (opt_bootstrap)
|
||||
log_output_options= LOG_FILE;
|
||||
@ -3175,17 +3182,6 @@ server.");
|
||||
using_update_log=1;
|
||||
}
|
||||
|
||||
if (xid_cache_init())
|
||||
{
|
||||
sql_print_error("Out of memory");
|
||||
unireg_abort(1);
|
||||
}
|
||||
if (ha_init())
|
||||
{
|
||||
sql_print_error("Can't init databases");
|
||||
unireg_abort(1);
|
||||
}
|
||||
|
||||
/*
|
||||
Check that the default storage engine is actually available.
|
||||
*/
|
||||
|
@ -21,9 +21,10 @@
|
||||
#endif
|
||||
|
||||
#include "mysql_priv.h"
|
||||
#include "ha_partition.h"
|
||||
|
||||
#ifdef WITH_PARTITION_STORAGE_ENGINE
|
||||
#include "ha_partition.h"
|
||||
|
||||
|
||||
partition_info *partition_info::get_clone()
|
||||
{
|
||||
|
13
sql/sql_builtin.cc.in
Normal file
13
sql/sql_builtin.cc.in
Normal file
@ -0,0 +1,13 @@
|
||||
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
typedef struct st_mysql_plugin builtin_plugin[];
|
||||
|
||||
extern builtin_plugin
|
||||
builtin_binlog_plugin@mysql_plugin_defs@;
|
||||
|
||||
struct st_mysql_plugin *mysqld_builtins[]=
|
||||
{
|
||||
builtin_binlog_plugin@mysql_plugin_defs@,(struct st_mysql_plugin *)0
|
||||
};
|
||||
|
@ -21,7 +21,9 @@
|
||||
*/
|
||||
|
||||
#include "mysql_priv.h"
|
||||
#ifdef WITH_INNOBASE_STORAGE_ENGINE
|
||||
#include "ha_innodb.h"
|
||||
#endif
|
||||
#include "sql_select.h"
|
||||
#include "sp_head.h"
|
||||
#include "sql_trigger.h"
|
||||
|
@ -19,6 +19,8 @@
|
||||
#define REPORT_TO_LOG 1
|
||||
#define REPORT_TO_USER 2
|
||||
|
||||
extern struct st_mysql_plugin *mysqld_builtins[];
|
||||
|
||||
char *opt_plugin_dir_ptr;
|
||||
char opt_plugin_dir[FN_REFLEN];
|
||||
LEX_STRING plugin_type_names[]=
|
||||
@ -548,6 +550,53 @@ err:
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
|
||||
static int plugin_finalize(THD *thd, struct st_plugin_int *plugin)
|
||||
{
|
||||
int rc;
|
||||
DBUG_ENTER("plugin_finalize");
|
||||
|
||||
if (plugin->ref_count)
|
||||
{
|
||||
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
|
||||
"Plugin is busy and will be uninstalled on shutdown");
|
||||
goto err;
|
||||
}
|
||||
|
||||
switch (plugin->plugin->type)
|
||||
{
|
||||
case MYSQL_STORAGE_ENGINE_PLUGIN:
|
||||
if (ha_finalize_handlerton(plugin))
|
||||
{
|
||||
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
|
||||
"Storage engine shutdown failed. "
|
||||
"It will be uninstalled on shutdown");
|
||||
sql_print_warning("Storage engine '%s' shutdown failed. "
|
||||
"It will be uninstalled on shutdown", plugin->name.str);
|
||||
goto err;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (plugin->plugin->deinit)
|
||||
{
|
||||
if ((rc= plugin->plugin->deinit()))
|
||||
{
|
||||
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
|
||||
"Plugin deinit failed. "
|
||||
"It will be uninstalled on shutdown");
|
||||
sql_print_warning("Plugin '%s' deinit failed. "
|
||||
"It will be uninstalled on shutdown", plugin->name.str);
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
DBUG_RETURN(0);
|
||||
err:
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
|
||||
static void plugin_call_initializer(void)
|
||||
{
|
||||
uint i;
|
||||
@ -606,6 +655,8 @@ static byte *get_hash_key(const byte *buff, uint *length,
|
||||
int plugin_init(void)
|
||||
{
|
||||
int i;
|
||||
struct st_mysql_plugin **builtins;
|
||||
struct st_mysql_plugin *plugin;
|
||||
DBUG_ENTER("plugin_init");
|
||||
|
||||
if (initialized)
|
||||
@ -625,6 +676,16 @@ int plugin_init(void)
|
||||
get_hash_key, NULL, 0))
|
||||
goto err;
|
||||
}
|
||||
|
||||
/* Register all the built-in plugins */
|
||||
for (builtins= mysqld_builtins; *builtins; builtins++)
|
||||
{
|
||||
for (plugin= *builtins; plugin->info; plugin++)
|
||||
{
|
||||
if (plugin_register_builtin(plugin))
|
||||
goto err;
|
||||
}
|
||||
}
|
||||
|
||||
initialized= 1;
|
||||
|
||||
@ -831,18 +892,10 @@ my_bool mysql_uninstall_plugin(THD *thd, LEX_STRING *name)
|
||||
goto err;
|
||||
}
|
||||
|
||||
if (plugin->ref_count)
|
||||
{
|
||||
plugin->state= PLUGIN_IS_DELETED;
|
||||
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_WARN, 0,
|
||||
"Plugin is not deleted, waiting on tables.");
|
||||
}
|
||||
else
|
||||
{
|
||||
if (plugin->plugin->deinit)
|
||||
plugin->plugin->deinit();
|
||||
if (!plugin_finalize(thd, plugin))
|
||||
plugin_del(name);
|
||||
}
|
||||
else
|
||||
plugin->state= PLUGIN_IS_DELETED;
|
||||
|
||||
table->field[0]->store(name->str, name->length, system_charset_info);
|
||||
table->file->extra(HA_EXTRA_RETRIEVE_ALL_COLS);
|
||||
|
@ -111,6 +111,10 @@ static my_bool show_plugins(THD *thd, st_plugin_int *plugin,
|
||||
CHARSET_INFO *cs= system_charset_info;
|
||||
char version_buf[20];
|
||||
|
||||
/* we normally hide all the built-in plugins */
|
||||
if (!plugin->plugin_dl && !thd->lex->verbose)
|
||||
return 0;
|
||||
|
||||
restore_record(table, s->default_values);
|
||||
|
||||
table->field[0]->store(plugin->name.str, plugin->name.length, cs);
|
||||
@ -3000,46 +3004,53 @@ int fill_schema_charsets(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
}
|
||||
|
||||
|
||||
int fill_schema_engines(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
static my_bool iter_schema_engines(THD *thd, st_plugin_int *plugin,
|
||||
void *ptable)
|
||||
{
|
||||
TABLE *table= (TABLE *) ptable;
|
||||
handlerton *hton= (handlerton *) plugin->plugin->info;
|
||||
const char *wild= thd->lex->wild ? thd->lex->wild->ptr() : NullS;
|
||||
TABLE *table= tables->table;
|
||||
CHARSET_INFO *scs= system_charset_info;
|
||||
handlerton **types;
|
||||
DBUG_ENTER("iter_schema_engines");
|
||||
|
||||
DBUG_ENTER("fill_schema_engines");
|
||||
|
||||
for (types= sys_table_types; *types; types++)
|
||||
if (!(hton->flags & HTON_HIDDEN))
|
||||
{
|
||||
if ((*types)->flags & HTON_HIDDEN)
|
||||
continue;
|
||||
|
||||
if (!(wild && wild[0] &&
|
||||
wild_case_compare(scs, (*types)->name,wild)))
|
||||
wild_case_compare(scs, hton->name,wild)))
|
||||
{
|
||||
const char *tmp;
|
||||
restore_record(table, s->default_values);
|
||||
|
||||
table->field[0]->store((*types)->name, strlen((*types)->name), scs);
|
||||
tmp= (*types)->state ? "DISABLED" : "ENABLED";
|
||||
table->field[0]->store(hton->name, strlen(hton->name), scs);
|
||||
tmp= hton->state ? "DISABLED" : "ENABLED";
|
||||
table->field[1]->store( tmp, strlen(tmp), scs);
|
||||
table->field[2]->store((*types)->comment, strlen((*types)->comment), scs);
|
||||
tmp= (*types)->commit ? "YES" : "NO";
|
||||
table->field[2]->store(hton->comment, strlen(hton->comment), scs);
|
||||
tmp= hton->commit ? "YES" : "NO";
|
||||
table->field[3]->store( tmp, strlen(tmp), scs);
|
||||
tmp= (*types)->prepare ? "YES" : "NO";
|
||||
tmp= hton->prepare ? "YES" : "NO";
|
||||
table->field[4]->store( tmp, strlen(tmp), scs);
|
||||
tmp= (*types)->savepoint_set ? "YES" : "NO";
|
||||
tmp= hton->savepoint_set ? "YES" : "NO";
|
||||
table->field[5]->store( tmp, strlen(tmp), scs);
|
||||
|
||||
if (schema_table_store_record(thd, table))
|
||||
DBUG_RETURN(1);
|
||||
}
|
||||
}
|
||||
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
|
||||
int fill_schema_engines(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
{
|
||||
const char *wild= thd->lex->wild ? thd->lex->wild->ptr() : NullS;
|
||||
TABLE *table= tables->table;
|
||||
CHARSET_INFO *scs= system_charset_info;
|
||||
|
||||
return plugin_foreach(thd, iter_schema_engines,
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN, table);
|
||||
}
|
||||
|
||||
|
||||
int fill_schema_collation(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
{
|
||||
CHARSET_INFO **cs;
|
||||
|
@ -8119,7 +8119,7 @@ show_param:
|
||||
if (prepare_schema_table(YYTHD, lex, 0, SCH_OPEN_TABLES))
|
||||
YYABORT;
|
||||
}
|
||||
| PLUGIN_SYM
|
||||
| opt_full PLUGIN_SYM
|
||||
{
|
||||
LEX *lex= Lex;
|
||||
WARN_DEPRECATED(yythd, "5.2", "SHOW PLUGIN", "'SHOW PLUGINS'");
|
||||
|
@ -14,20 +14,48 @@
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
|
||||
@ZLIB_INCLUDES@
|
||||
#called from the top level Makefile
|
||||
|
||||
LDADD = libarchive.a \
|
||||
$(top_builddir)/mysys/libmysys.a \
|
||||
$(top_builddir)/dbug/libdbug.a \
|
||||
$(top_builddir)/strings/libmystrings.a \
|
||||
@ZLIB_LIBS@
|
||||
pkglib_LIBRARIES = libarchive.a
|
||||
MYSQLDATAdir = $(localstatedir)
|
||||
MYSQLSHAREdir = $(pkgdatadir)
|
||||
MYSQLBASEdir= $(prefix)
|
||||
MYSQLLIBdir= $(pkglibdir)
|
||||
INCLUDES = -I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/regex \
|
||||
-I$(top_srcdir)/sql \
|
||||
-I$(srcdir) @ZLIB_INCLUDES@
|
||||
WRAPLIBS=
|
||||
|
||||
LDADD =
|
||||
|
||||
DEFS = @DEFS@
|
||||
|
||||
noinst_HEADERS = ha_archive.h azlib.h
|
||||
noinst_PROGRAMS = archive_test
|
||||
|
||||
EXTRA_LTLIBRARIES = ha_archive.la
|
||||
pkglib_LTLIBRARIES = @plugin_archive_shared_target@
|
||||
ha_archive_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
|
||||
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
|
||||
|
||||
|
||||
EXTRA_LIBRARIES = libarchive.a
|
||||
noinst_LIBRARIES = @plugin_archive_static_target@
|
||||
libarchive_a_CXXFLAGS = $(AM_CFLAGS)
|
||||
libarchive_a_CFLAGS = $(AM_CFLAGS)
|
||||
libarchive_a_SOURCES = ha_archive.cc azio.c
|
||||
|
||||
|
||||
archive_test_SOURCES = archive_test.c azio.c
|
||||
archive_test_CFLAGS = $(AM_CFLAGS)
|
||||
archive_test_LDADD = $(top_srcdir)/mysys/libmysys.a \
|
||||
$(top_srcdir)/dbug/libdbug.a \
|
||||
$(top_srcdir)/strings/libmystrings.a \
|
||||
@ZLIB_LIBS@
|
||||
archive_test_LDFLAGS = @NOINST_LDFLAGS@
|
||||
noinst_HEADERS = azlib.h
|
||||
libarchive_a_SOURCES = azio.c
|
||||
EXTRA_DIST = cmakelists.txt
|
||||
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
@ -2,5 +2,5 @@ SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/zlib)
|
||||
ADD_LIBRARY(archive azio.c)
|
||||
ADD_LIBRARY(archive azio.c ha_archive.cc ha_archive.h)
|
||||
TARGET_LINK_LIBRARIES(archive zlib mysys dbug strings)
|
||||
|
@ -19,10 +19,13 @@
|
||||
#endif
|
||||
|
||||
#include "mysql_priv.h"
|
||||
#include <myisam.h>
|
||||
|
||||
#include "ha_archive.h"
|
||||
#include <my_dir.h>
|
||||
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
/*
|
||||
First, if you want to understand storage engines you should look at
|
||||
ha_example.cc and ha_example.h.
|
||||
@ -214,6 +217,8 @@ static byte* archive_get_key(ARCHIVE_SHARE *share,uint *length,
|
||||
bool archive_db_init()
|
||||
{
|
||||
DBUG_ENTER("archive_db_init");
|
||||
if (archive_inited)
|
||||
DBUG_RETURN(FALSE);
|
||||
if (pthread_mutex_init(&archive_mutex, MY_MUTEX_INIT_FAST))
|
||||
goto error;
|
||||
if (hash_init(&archive_open_tables, system_charset_info, 32, 0, 0,
|
||||
@ -227,7 +232,6 @@ bool archive_db_init()
|
||||
DBUG_RETURN(FALSE);
|
||||
}
|
||||
error:
|
||||
have_archive_db= SHOW_OPTION_DISABLED; // If we couldn't use handler
|
||||
DBUG_RETURN(TRUE);
|
||||
}
|
||||
|
||||
@ -235,14 +239,14 @@ error:
|
||||
Release the archive handler.
|
||||
|
||||
SYNOPSIS
|
||||
archive_db_end()
|
||||
archive_db_done()
|
||||
void
|
||||
|
||||
RETURN
|
||||
FALSE OK
|
||||
*/
|
||||
|
||||
int archive_db_end(ha_panic_function type)
|
||||
int archive_db_done()
|
||||
{
|
||||
if (archive_inited)
|
||||
{
|
||||
@ -253,6 +257,12 @@ int archive_db_end(ha_panic_function type)
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
int archive_db_end(ha_panic_function type)
|
||||
{
|
||||
return archive_db_done();
|
||||
}
|
||||
|
||||
ha_archive::ha_archive(TABLE_SHARE *table_arg)
|
||||
:handler(&archive_hton, table_arg), delayed_insert(0), bulk_insert(0)
|
||||
{
|
||||
@ -830,7 +840,7 @@ int ha_archive::write_row(byte *buf)
|
||||
if (share->crashed)
|
||||
DBUG_RETURN(HA_ERR_CRASHED_ON_USAGE);
|
||||
|
||||
statistic_increment(table->in_use->status_var.ha_write_count, &LOCK_status);
|
||||
ha_statistic_increment(&SSV::ha_write_count);
|
||||
if (table->timestamp_field_type & TIMESTAMP_AUTO_SET_ON_INSERT)
|
||||
table->timestamp_field->set_time();
|
||||
pthread_mutex_lock(&share->mutex);
|
||||
@ -1147,8 +1157,7 @@ int ha_archive::rnd_next(byte *buf)
|
||||
DBUG_RETURN(HA_ERR_END_OF_FILE);
|
||||
scan_rows--;
|
||||
|
||||
statistic_increment(table->in_use->status_var.ha_read_rnd_next_count,
|
||||
&LOCK_status);
|
||||
ha_statistic_increment(&SSV::ha_read_rnd_next_count);
|
||||
current_position= aztell(&archive);
|
||||
rc= get_row(&archive, buf);
|
||||
|
||||
@ -1184,8 +1193,7 @@ void ha_archive::position(const byte *record)
|
||||
int ha_archive::rnd_pos(byte * buf, byte *pos)
|
||||
{
|
||||
DBUG_ENTER("ha_archive::rnd_pos");
|
||||
statistic_increment(table->in_use->status_var.ha_read_rnd_next_count,
|
||||
&LOCK_status);
|
||||
ha_statistic_increment(&SSV::ha_read_rnd_next_count);
|
||||
current_position= (my_off_t)my_get_ptr(pos, ref_length);
|
||||
(void)azseek(&archive, current_position, SEEK_SET);
|
||||
|
||||
@ -1369,8 +1377,8 @@ THR_LOCK_DATA **ha_archive::store_lock(THD *thd,
|
||||
*/
|
||||
|
||||
if ((lock_type >= TL_WRITE_CONCURRENT_INSERT &&
|
||||
lock_type <= TL_WRITE) && !thd->in_lock_tables
|
||||
&& !thd->tablespace_op)
|
||||
lock_type <= TL_WRITE) && !thd_in_lock_tables(thd)
|
||||
&& !thd_tablespace_op(thd))
|
||||
lock_type = TL_WRITE_ALLOW_WRITE;
|
||||
|
||||
/*
|
||||
@ -1381,7 +1389,7 @@ THR_LOCK_DATA **ha_archive::store_lock(THD *thd,
|
||||
concurrent inserts to t2.
|
||||
*/
|
||||
|
||||
if (lock_type == TL_READ_NO_INSERT && !thd->in_lock_tables)
|
||||
if (lock_type == TL_READ_NO_INSERT && !thd_in_lock_tables(thd))
|
||||
lock_type = TL_READ;
|
||||
|
||||
lock.type=lock_type;
|
||||
@ -1494,11 +1502,11 @@ int ha_archive::check(THD* thd, HA_CHECK_OPT* check_opt)
|
||||
{
|
||||
int rc= 0;
|
||||
byte *buf;
|
||||
const char *old_proc_info=thd->proc_info;
|
||||
const char *old_proc_info;
|
||||
ha_rows count= share->rows_recorded;
|
||||
DBUG_ENTER("ha_archive::check");
|
||||
|
||||
thd->proc_info= "Checking table";
|
||||
old_proc_info= thd_proc_info(thd, "Checking table");
|
||||
/* Flush any waiting data */
|
||||
azflush(&(share->archive_write), Z_SYNC_FLUSH);
|
||||
share->forced_flushes++;
|
||||
@ -1523,7 +1531,7 @@ int ha_archive::check(THD* thd, HA_CHECK_OPT* check_opt)
|
||||
|
||||
my_free((char*)buf, MYF(0));
|
||||
|
||||
thd->proc_info= old_proc_info;
|
||||
thd_proc_info(thd, old_proc_info);
|
||||
|
||||
if ((rc && rc != HA_ERR_END_OF_FILE) || count)
|
||||
{
|
||||
@ -1548,3 +1556,17 @@ bool ha_archive::check_and_repair(THD *thd)
|
||||
|
||||
DBUG_RETURN(repair(thd, &check_opt));
|
||||
}
|
||||
|
||||
|
||||
mysql_declare_plugin(archive)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&archive_hton,
|
||||
archive_hton.name,
|
||||
"Brian Aker, MySQL AB",
|
||||
"Archive Storage Engine",
|
||||
NULL, /* Plugin Init */
|
||||
archive_db_done, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
@ -19,7 +19,7 @@
|
||||
#endif
|
||||
|
||||
#include <zlib.h>
|
||||
#include "../storage/archive/azlib.h"
|
||||
#include "azlib.h"
|
||||
|
||||
/*
|
||||
Please read ha_archive.cc first. If you are looking for more general
|
51
storage/blackhole/Makefile.am
Normal file
51
storage/blackhole/Makefile.am
Normal file
@ -0,0 +1,51 @@
|
||||
# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
||||
#
|
||||
# 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; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
#called from the top level Makefile
|
||||
|
||||
MYSQLDATAdir = $(localstatedir)
|
||||
MYSQLSHAREdir = $(pkgdatadir)
|
||||
MYSQLBASEdir= $(prefix)
|
||||
MYSQLLIBdir= $(pkglibdir)
|
||||
INCLUDES = -I$(top_srcdir)/include \
|
||||
-I$(top_srcdir)/regex \
|
||||
-I$(top_srcdir)/sql \
|
||||
-I$(srcdir)
|
||||
WRAPLIBS=
|
||||
|
||||
LDADD =
|
||||
|
||||
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)
|
||||
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
|
||||
|
||||
|
||||
EXTRA_LIBRARIES = libblackhole.a
|
||||
noinst_LIBRARIES = @plugin_blackhole_static_target@
|
||||
libblackhole_a_CXXFLAGS=$(AM_CFLAGS)
|
||||
libblackhole_a_CFLAGS = $(AM_CFLAGS)
|
||||
libblackhole_a_SOURCES= ha_blackhole.cc
|
||||
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
5
storage/blackhole/cmakelists.txt
Normal file
5
storage/blackhole/cmakelists.txt
Normal file
@ -0,0 +1,5 @@
|
||||
SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
||||
SET(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -DSAFEMALLOC -DSAFE_MUTEX")
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
|
||||
ADD_LIBRARY(blackhole ha_blackhole.cc ha_blackhole.h)
|
@ -22,6 +22,8 @@
|
||||
#include "mysql_priv.h"
|
||||
#include "ha_blackhole.h"
|
||||
|
||||
#include <mysql/plugin.h>
|
||||
|
||||
/* Static declarations for handlerton */
|
||||
|
||||
static handler *blackhole_create_handler(TABLE_SHARE *table);
|
||||
@ -250,3 +252,15 @@ int ha_blackhole::index_last(byte * buf)
|
||||
DBUG_RETURN(HA_ERR_END_OF_FILE);
|
||||
}
|
||||
|
||||
mysql_declare_plugin(blackhole)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&blackhole_hton,
|
||||
blackhole_hton.name,
|
||||
"MySQL AB",
|
||||
"Blackhole Storage Engine",
|
||||
NULL, /* Plugin Init */
|
||||
NULL, /* Plugin Deinit */
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
@ -25,15 +25,20 @@ INCLUDES = -I$(top_builddir)/include \
|
||||
-I$(top_srcdir)/regex \
|
||||
-I$(top_srcdir)/sql \
|
||||
-I$(srcdir)
|
||||
|
||||
pkglib_LIBRARIES = libcsv.a
|
||||
|
||||
LDADD =
|
||||
|
||||
DEFS = @DEFS@
|
||||
noinst_HEADERS = ha_tina.h
|
||||
|
||||
EXTRA_LTLIBRARIES = ha_csv.la
|
||||
pkglib_LTLIBRARIES = @plugin_csv_shared_target@
|
||||
ha_csv_la_LDFLAGS = -module -rpath $(MYSQLLIBdir)
|
||||
ha_csv_la_CXXFLAGS = $(AM_CFLAGS) -DMYSQL_PLUGIN
|
||||
ha_csv_la_SOURCES = ha_tina.cc
|
||||
|
||||
EXTRA_LIBRARIES = libcsv.a
|
||||
noinst_LIBRARIES = @plugin_csv_static_target@
|
||||
libcsv_a_CXXFLAGS = $(AM_CFLAGS)
|
||||
noinst_HEADERS = ha_tina.h
|
||||
libcsv_a_SOURCES = ha_tina.cc
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
|
@ -1398,8 +1398,8 @@ bool ha_tina::check_if_incompatible_data(HA_CREATE_INFO *info,
|
||||
return COMPATIBLE_DATA_YES;
|
||||
}
|
||||
|
||||
#ifdef MYSQL_PLUGIN
|
||||
mysql_declare_plugin
|
||||
|
||||
mysql_declare_plugin(csv)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&tina_hton,
|
||||
@ -1411,4 +1411,4 @@ mysql_declare_plugin
|
||||
0x0100 /* 1.0 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
#endif
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB
|
||||
#
|
||||
#
|
||||
# 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; either version 2 of the License, or
|
||||
# (at your option) any later version.
|
||||
#
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful,
|
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
# GNU General Public License for more details.
|
||||
#
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License
|
||||
# along with this program; if not, write to the Free Software
|
||||
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
@ -26,14 +26,26 @@ INCLUDES = -I$(top_srcdir)/include \
|
||||
-I$(srcdir)
|
||||
WRAPLIBS=
|
||||
|
||||
pkglib_LIBRARIES = libexample.a
|
||||
|
||||
noinst_HEADERS = ha_example.h
|
||||
libexample_a_SOURCES = ha_example.cc
|
||||
EXTRA_DIST = cmakelists.txt
|
||||
LDADD =
|
||||
|
||||
DEFS = -DMYSQL_SERVER @DEFS@
|
||||
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)
|
||||
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
|
||||
|
||||
|
||||
EXTRA_LIBRARIES = libexample.a
|
||||
noinst_LIBRARIES = @plugin_example_static_target@
|
||||
libexample_a_CXXFLAGS = $(AM_CFLAGS)
|
||||
libexample_a_CFLAGS = $(AM_CFLAGS)
|
||||
libexample_a_SOURCES= ha_example.cc
|
||||
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
@ -742,8 +742,8 @@ int ha_example::create(const char *name, TABLE *table_arg,
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
||||
#ifdef MYSQL_PLUGIN
|
||||
mysql_declare_plugin
|
||||
|
||||
mysql_declare_plugin(example)
|
||||
{
|
||||
MYSQL_STORAGE_ENGINE_PLUGIN,
|
||||
&example_hton,
|
||||
@ -755,4 +755,4 @@ mysql_declare_plugin
|
||||
0x0001 /* 0.1 */,
|
||||
}
|
||||
mysql_declare_plugin_end;
|
||||
#endif
|
||||
|
||||
|
@ -79,5 +79,34 @@ EXTRA_DIST = include/btr0btr.h include/btr0btr.ic include/btr0cur.h include/btr
|
||||
include/ut0sort.h include/ut0ut.h include/ut0ut.ic include/ut0vec.h include/ut0vec.ic \
|
||||
cmakelists.txt
|
||||
|
||||
noinst_LIBRARIES = libinnobase.a
|
||||
libinnobase_a_LIBADD = usr/libusr.a srv/libsrv.a dict/libdict.a \
|
||||
que/libque.a srv/libsrv.a ibuf/libibuf.a \
|
||||
row/librow.a pars/libpars.a btr/libbtr.a \
|
||||
trx/libtrx.a read/libread.a usr/libusr.a \
|
||||
buf/libbuf.a ibuf/libibuf.a eval/libeval.a \
|
||||
log/liblog.a fsp/libfsp.a fut/libfut.a \
|
||||
fil/libfil.a lock/liblock.a mtr/libmtr.a \
|
||||
page/libpage.a rem/librem.a thr/libthr.a \
|
||||
sync/libsync.a data/libdata.a mach/libmach.a \
|
||||
ha/libha.a dyn/libdyn.a mem/libmem.a \
|
||||
ut/libut.a os/libos.a ut/libut.a
|
||||
libinnobase_a_SOURCES =
|
||||
|
||||
|
||||
libinnobase.a: $(libinnobase_a_LIBADD)
|
||||
-rm -f $@
|
||||
if test "$(host_os)" = "netware" ; \
|
||||
then \
|
||||
$(libmysqld_a_AR) $@ $(libinnobase_a_LIBADD) ; \
|
||||
else \
|
||||
(for arc in $(libinnobase_a_LIBADD); do \
|
||||
arpath=`echo $$arc|sed 's|[^/]*$$||'`; \
|
||||
$(AR) t $$arc|xargs -n 1 find $$arpath -name; \
|
||||
$(AR) t $$arc|xargs -n 1 find `dirname $$arpath` -path \*/`basename $$arpath`/\* -name; \
|
||||
done ) | sort -u | xargs $(AR) cq $@ ; \
|
||||
$(RANLIB) $@ ; \
|
||||
fi
|
||||
|
||||
# Don't update the files from bitkeeper
|
||||
%::SCCS/s.%
|
||||
|
Loading…
x
Reference in New Issue
Block a user