Commit 8ea19fa7 authored by unknown's avatar unknown

Merge a bunch of small fixes from release tree into main lp:maria.

parents ffee15b1 3bc02550
......@@ -173,7 +173,7 @@ local_infile_configs="--enable-local-infile"
max_no_embedded_configs="$SSL_LIBRARY --with-plugins=max"
max_no_ndb_configs="$SSL_LIBRARY --with-plugins=max-no-ndb --with-embedded-server --with-libevent"
max_configs="$SSL_LIBRARY --with-plugins=max --with-embedded-server -with-libevent"
max_configs="$SSL_LIBRARY --with-plugins=max --with-embedded-server --with-libevent"
# Disable NDB in maria max builds
max_configs=$max_no_ndb_configs
......
......@@ -233,6 +233,9 @@ FOREACH(SUBDIR ${STORAGE_SUBDIRS})
# where appropriate.
STRING (REGEX MATCH "MYSQL_STORAGE_ENGINE.[a-z]*" PLUGIN_NAME ${PLUGIN_FILE_CONTENT})
STRING (REGEX REPLACE "MYSQL_STORAGE_ENGINE.(.*)" "\\1" PLUGIN_NAME ${PLUGIN_NAME})
# Also remember this "xtradb"/"innobase" name discrepancy for libmysqld/CMakeLists.txt:
SET (plugin_dir_${PLUGIN_NAME} ${DIRNAME})
IF(MYSQL_PLUGIN_MANDATORY)
SET(WITH_${ENGINE}_STORAGE_ENGINE TRUE)
......@@ -245,6 +248,7 @@ FOREACH(SUBDIR ${STORAGE_SUBDIRS})
ELSE(WITH_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_STATIC)
SET(ENGINE_BUILD_TYPE "NONE")
ENDIF(WITH_${ENGINE}_STORAGE_ENGINE AND MYSQL_PLUGIN_STATIC)
IF (ENGINE_BUILD_TYPE STREQUAL "STATIC")
SET (mysql_plugin_defs "${mysql_plugin_defs},builtin_${PLUGIN_NAME}_plugin")
SET (MYSQLD_STATIC_ENGINE_LIBS ${MYSQLD_STATIC_ENGINE_LIBS} ${PLUGIN_NAME})
......
......@@ -60,6 +60,11 @@ dist-hook:
--srcdir=$(top_srcdir)
storage/myisam/myisamchk --silent --fast $(distdir)/win/data/mysql/*.MYI
# Simple target to allow scripts etc. to get the name of the source
# tarball easily.
show-dist-name:
@echo "$(PACKAGE)-$(VERSION)"
all-local: @ABI_CHECK@
tags:
......@@ -81,6 +86,9 @@ tags:
# environment variable MTR_BUILD_THREAD. The script "mysql-test-run"
# will then calculate the various port numbers it needs from this,
# making sure each user use different ports.
#
# Set MTR_EXTRA_OPTIONS to add custom options for mysql-test-run,
# like MTR_EXTRA_OPTIONS"--parallel=3 --mem".
test-unit:
cd unittest; $(MAKE) test
......@@ -90,29 +98,29 @@ test-unit-big:
test-ps:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl $(force) --ps-protocol --mysqld=--binlog-format=mixed
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) $(force) --ps-protocol --mysqld=--binlog-format=mixed
test-nr:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl $(force) --mysqld=--binlog-format=row
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) $(force) --mysqld=--binlog-format=row
test-pr:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl $(force) $(mem) --ps-protocol --mysqld=--binlog-format=row #@libevent_test_option@
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) $(force) $(mem) --ps-protocol --mysqld=--binlog-format=row #@libevent_test_option@
test-ns:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl $(force) $(mem) --mysqld=--binlog-format=mixed
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) $(force) $(mem) --mysqld=--binlog-format=mixed
test-binlog-statement:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl $(force) --mysqld=--binlog-format=statement
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) $(force) --mysqld=--binlog-format=statement
# This code is duplicated in "test-bt", see the Changeset comment of 2007-Dec-07
test-embedded:
if [ -e bin/mysqltest_embedded -o -e libmysqld/examples/mysqltest_embedded ] ; then \
cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=embedded --force --timer \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=embedded --force --timer \
--embedded-server --skip-rpl --skip-ndbcluster ; \
else \
echo "no program found for 'embedded' tests - skipped testing" ; \
......@@ -120,14 +128,14 @@ test-embedded:
test-reprepare:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl $(force) $(mem) --ps-protocol \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) $(force) $(mem) --ps-protocol \
--mysqld=--debug=+d,reprepare_each_statement
test: test-ns test-pr
smoke:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl --do-test=s
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --do-test=s
test-full: test test-nr test-ps
......@@ -143,43 +151,43 @@ test-force-mem:
test-bt:
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=normal --force --timer \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=normal --force --timer \
--skip-ndbcluster --report-features
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=ps --force --timer \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=ps --force --timer \
--skip-ndbcluster --ps-protocol
-if [ -e bin/ndbd -o -e storage/ndb/src/kernel/ndbd ] ; then \
cd mysql-test ; \
MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=ndb+rpl_ndb+ps --force --timer \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=ndb+rpl_ndb+ps --force --timer \
--ps-protocol --mysqld=--binlog-format=row --suite=ndb,rpl_ndb ; \
MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=ndb --force --timer \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=ndb --force --timer \
--with-ndbcluster-only ; \
else \
echo "no program found for 'ndbcluster' tests - skipped testing" ; \
fi
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --force --comment=funcs1+ps --ps-protocol --reorder --suite=funcs_1
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --comment=funcs1+ps --ps-protocol --reorder --suite=funcs_1
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --force --comment=funcs2 --suite=funcs_2
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --comment=funcs2 --suite=funcs_2
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --force --comment=partitions --suite=parts
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --comment=partitions --suite=parts
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --force --comment=stress --suite=stress
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --comment=stress --suite=stress
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --force --comment=jp --suite=jp
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --comment=jp --suite=jp
-if [ -d mysql-test/suite/nist ] ; then \
cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=nist --force --suite=nist ; \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=nist --force --suite=nist ; \
fi
-if [ -d mysql-test/suite/nist ] ; then \
cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=nist+ps --force --suite=nist --ps-protocol ; \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=nist+ps --force --suite=nist --ps-protocol ; \
fi
-if [ -e bin/mysqltest_embedded -o -e libmysqld/examples/mysqltest_embedded ] ; then \
cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=embedded --force --timer \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=embedded --force --timer \
--embedded-server --skip-rpl --skip-ndbcluster ; \
else \
echo "no program found for 'embedded' tests - skipped testing" ; \
......@@ -187,22 +195,22 @@ test-bt:
test-bt-fast:
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=ps --force --timer \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=ps --force --timer \
--skip-ndbcluster --ps-protocol --report-features
-if [ -e bin/ndbd -o -e storage/ndb/src/kernel/ndbd ] ; then \
cd mysql-test ; \
MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=ndb --force --timer \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=ndb --force --timer \
--with-ndbcluster-only ; \
else \
echo "no program found for 'ndbcluster' tests - skipped testing" ; \
fi
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --force --comment=stress --suite=stress
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --comment=stress --suite=stress
test-bt-debug:
-cd mysql-test ; MTR_BUILD_THREAD=auto \
@PERL@ ./mysql-test-run.pl --comment=debug --force --timer \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --comment=debug --force --timer \
--skip-ndbcluster --skip-rpl --report-features
test-bt-debug-fast:
......@@ -216,32 +224,32 @@ test-force-full-pl: test-force-full
test-ext-funcs:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl --force --reorder --suite=funcs_1 ; \
@PERL@ ./mysql-test-run.pl --force --suite=funcs_2
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --reorder --suite=funcs_1 ; \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --suite=funcs_2
test-ext-rpl:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl --force --suite=rpl
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --suite=rpl
test-ext-partitions:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl --force --suite=parts
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --suite=parts
test-ext-jp:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl --force --suite=jp
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --suite=jp
test-ext-stress:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl --force --big-test --suite=stress
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) --force --big-test --suite=stress
test-ext: test-ext-funcs test-ext-rpl test-ext-partitions test-ext-jp test-ext-stress
test-fast:
cd mysql-test ; \
@PERL@ ./mysql-test-run.pl $(subset) --force --skip-ndb --skip-innodb --skip-im --skip-rpl ; \
@PERL@ ./mysql-test-run.pl $(subset) --force --suite=funcs_1 --do-test=myisam ; \
@PERL@ ./mysql-test-run.pl $(subset) --force --suite=stress --do-test=ddl_myisam
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) $(subset) --force --skip-ndb --skip-innodb --skip-im --skip-rpl ; \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) $(subset) --force --suite=funcs_1 --do-test=myisam ; \
@PERL@ ./mysql-test-run.pl $(MTR_EXTRA_OPTIONS) $(subset) --force --suite=stress --do-test=ddl_myisam
test-fast-view:
$(MAKE) subset=--view-protocol test-fast
......
......@@ -13,7 +13,7 @@ AC_DEFUN([MYSQL_USE_BUNDLED_LIBEVENT], [
AC_SUBST([libevent_dir])
libevent_libs="\$(top_builddir)/extra/libevent/libevent.a"
libevent_includes="-I\$(top_builddir)/extra/libevent"
libevent_includes="-I\$(top_srcdir)/extra/libevent"
libevent_test_option="--mysqld=--thread-handling=pool-of-threads"
AC_SUBST(libevent_libs)
AC_SUBST(libevent_includes)
......
......@@ -2697,7 +2697,7 @@ case $SYSTEM_TYPE in
fi
# if there is no readline, but we want to build with readline, we fail
if [test "$want_to_use_readline" = "yes"] && [test ! -d "./cmd-line-utils/readline"]
if [test "$want_to_use_readline" = "yes"] && [test ! -d "$srcdir/cmd-line-utils/readline"]
then
AC_MSG_ERROR([This commercially licensed MySQL source package can't
be built with libreadline. Please use --with-libedit to use
......
......@@ -22,7 +22,7 @@ include_HEADERS = event.h evutil.h event-config.h
BUILT_SOURCES = event-config.h
event-config.h: $(top_srcdir)/include/config.h
event-config.h: $(top_builddir)/include/config.h
echo '/* event-config.h' > $@
echo ' * Generated by autoconf; post-processed by libevent.' >> $@
echo ' * Do not edit this file.' >> $@
......@@ -33,7 +33,7 @@ event-config.h: $(top_srcdir)/include/config.h
sed -e 's/#define /#define _EVENT_/' \
-e 's/#undef /#undef _EVENT_/' \
-e 's/#ifndef /#ifndef _EVENT_/' < $(top_srcdir)/include/config.h >> $@
-e 's/#ifndef /#ifndef _EVENT_/' < $(top_builddir)/include/config.h >> $@
echo "#endif" >> $@
AM_CPPFLAGS = -Icompat -I$(top_srcdir)/include
......@@ -151,3 +151,4 @@ EXPORTS
mysql_get_character_set_info
get_defaults_options
modify_defaults_file
mysql_get_server_name
......@@ -88,10 +88,10 @@ FOREACH(rpath ${VIO_SOURCES})
ENDFOREACH(rpath)
FOREACH (ENGINE_LIB ${MYSQLD_STATIC_ENGINE_LIBS})
INCLUDE(${CMAKE_SOURCE_DIR}/storage/${ENGINE_LIB}/CMakeLists.txt)
INCLUDE(${CMAKE_SOURCE_DIR}/storage/${plugin_dir_${ENGINE_LIB}}/CMakeLists.txt)
STRING(TOUPPER ${ENGINE_LIB} ENGINE_LIB_UPPER)
FOREACH(rpath ${${ENGINE_LIB_UPPER}_SOURCES})
SET(LIB_SOURCES ${LIB_SOURCES} ${CMAKE_SOURCE_DIR}/storage/${ENGINE_LIB}/${rpath})
SET(LIB_SOURCES ${LIB_SOURCES} ${CMAKE_SOURCE_DIR}/storage/${plugin_dir_${ENGINE_LIB}}/${rpath})
ENDFOREACH(rpath)
ENDFOREACH(ENGINE_LIB)
......@@ -112,6 +112,7 @@ SET(LIBMYSQLD_SOURCES emb_qcache.cc libmysqld.c lib_sql.cc
../sql/item_xmlfunc.cc ../sql/key.cc ../sql/lock.cc ../sql/log.cc
../sql/log_event.cc ../sql/mf_iocache.cc ../sql/my_decimal.cc
../sql/net_serv.cc ../sql/opt_range.cc ../sql/opt_sum.cc
../sql/opt_table_elimination.cc
../sql/parse_file.cc ../sql/procedure.cc ../sql/protocol.cc
../sql/records.cc ../sql/repl_failsafe.cc ../sql/rpl_filter.cc
../sql/rpl_record.cc
......
......@@ -108,3 +108,4 @@ EXPORTS
mysql_stmt_attr_get
mysql_stmt_attr_set
mysql_stmt_field_count
mysql_get_server_name
#
# Check if we have a working DNS.
# Some 'wildcard dns' return some address even for non-existing hosts. This
# makes it hard to test connections to such host names.
# The actual check for working DNS is done in Perl, and the result available
# in an environment variable.
#
--require r/have_working_dns.require
disable_query_log;
eval SELECT LENGTH('$HAVE_BROKEN_DNS') = 0 AS 'have_working_dns';
enable_query_log;
......@@ -12,7 +12,7 @@ BEGIN
-- Dump all global variables except those
-- that are supposed to change
SELECT * FROM INFORMATION_SCHEMA.GLOBAL_VARIABLES
WHERE variable_name != 'timestamp' AND variable_name != "debug"
WHERE variable_name != 'timestamp'
AND variable_name != 'INNODB_IBUF_MAX_SIZE'
ORDER BY variable_name;
......
......@@ -126,13 +126,13 @@ my $path_config_file; # The generated config file, var/my.cnf
# executables will be used by the test suite.
our $opt_vs_config = $ENV{'MTR_VS_CONFIG'};
my $DEFAULT_SUITES= "binlog,federated,main,maria,rpl,innodb";
my $DEFAULT_SUITES= "binlog,federated,main,maria,rpl,innodb,parts";
my $opt_suites;
our $opt_usage;
our $opt_list_options;
our $opt_suites;
our $opt_suites_default= "main,backup,backup_engines,binlog,rpl"; # Default suites to run
our $opt_suites_default= "main,backup,backup_engines,binlog,rpl,parts"; # Default suites to run
our $opt_script_debug= 0; # Script debugging, enable with --script-debug
our $opt_verbose= 0; # Verbose output, enable with --verbose
our $exe_mysql;
......@@ -844,7 +844,7 @@ sub command_line_setup {
'ssl|with-openssl' => \$opt_ssl,
'skip-ssl' => \$opt_skip_ssl,
'compress' => \$opt_compress,
'vs-config' => \$opt_vs_config,
'vs-config=s' => \$opt_vs_config,
# Max number of parallel threads to use
'parallel=s' => \$opt_parallel,
......@@ -1886,7 +1886,8 @@ sub environment_setup {
# --------------------------------------------------------------------------
my $lib_udf_example=
mtr_file_exists(vs_config_dirs('sql', 'udf_example.dll'),
"$basedir/sql/.libs/udf_example.so",);
"$basedir/sql/.libs/udf_example.so",
"$basedir/lib/mysql/plugin/udf_example.so",);
if ( $lib_udf_example )
{
......@@ -1913,7 +1914,8 @@ sub environment_setup {
}
my $lib_example_plugin=
mtr_file_exists(vs_config_dirs('storage/example',$plugin_filename),
"$basedir/storage/example/.libs/".$plugin_filename);
"$basedir/storage/example/.libs/".$plugin_filename,
"$basedir/lib/mysql/plugin/".$plugin_filename);
$ENV{'EXAMPLE_PLUGIN'}=
($lib_example_plugin ? basename($lib_example_plugin) : "");
$ENV{'EXAMPLE_PLUGIN_OPT'}= "--plugin-dir=".
......@@ -1928,7 +1930,8 @@ sub environment_setup {
# ----------------------------------------------------
my $lib_simple_parser=
mtr_file_exists(vs_config_dirs('plugin/fulltext', 'mypluglib.dll'),
"$basedir/plugin/fulltext/.libs/mypluglib.so",);
"$basedir/plugin/fulltext/.libs/mypluglib.so",
"$basedir/lib/mysql/plugin/mypluglib.so",);
$ENV{'SIMPLE_PARSER'}=
($lib_simple_parser ? basename($lib_simple_parser) : "");
......@@ -2000,6 +2003,15 @@ sub environment_setup {
$ENV{'MYSQL_TMP_DIR'}= $opt_tmpdir;
$ENV{'MYSQLTEST_VARDIR'}= $opt_vardir;
#
# Some stupid^H^H^H^H^H^Hignorant network providers set up "wildcard DNS"
# servers that return some given web server address for any lookup of a
# non-existent host name. This confuses test cases that want to test the
# behaviour when connecting to a non-existing host, so we need to be able
# to disable those tests when DNS is broken.
#
$ENV{HAVE_BROKEN_DNS}= defined(gethostbyname('invalid_hostname'));
# ----------------------------------------------------
# Setup env for NDB
# ----------------------------------------------------
......
RESET MASTER;
SET NAMES gbk;
CREATE TABLE t1 (
f1 BLOB
......
......@@ -1385,7 +1385,7 @@ who
other connection here
SELECT IF(`time` > 0, 'OK', `time`) AS time_low,
IF(`time` < 1000, 'OK', `time`) AS time_high,
IF(time_ms > 900, 'OK', time_ms) AS time_ms_low,
IF(time_ms > 1500, 'OK', time_ms) AS time_ms_low,
IF(time_ms < 1000000, 'OK', time_ms) AS time_ms_high
FROM INFORMATION_SCHEMA.PROCESSLIST
WHERE ID=@tid;
......
......@@ -464,7 +464,7 @@ ERROR 23000: Cannot delete or update a parent row: a foreign key constraint fail
drop index dc on t4;
ERROR 42000: Can't DROP 'dc'; check that column/key exists
alter table t3 drop foreign key dc;
ERROR HY000: Error on rename of './test/t3' to '#sql2-temporary' (errno: 152)
ERROR HY000: Error on rename of './test/t3' to './#sql2-temporary' (errno: 152)
alter table t4 drop foreign key dc;
select * from t2;
a b c d e
......
......@@ -7,6 +7,7 @@ drop table if exists t1,t2,t3,t4,t5,t6;
CREATE TABLE t1 (c1 INT) ENGINE= MyISAM;
LOCK TABLE t1 WRITE;
# connection con1
SET @orig_debug=@@debug;
SET GLOBAL debug="+d,sleep_open_and_lock_after_open";
INSERT INTO t1 VALUES (1);
# connection default
......@@ -21,6 +22,6 @@ SELECT * FROM t1;
c1
UNLOCK TABLES;
# connection con1
SET GLOBAL debug="-d,sleep_open_and_lock_after_open";
SET GLOBAL debug=@orig_debug;
# connection default
DROP TABLE t1;
flush logs;
RESET MASTER;
create table t3 (f text character set utf8);
create table t4 (f text character set cp932);
flush logs;
......
#
# We need big packets.
#
SET @old_global_max_allowed_packet=@@global.max_allowed_packet;
SET @@global.max_allowed_packet= 1024*1024*1024;
#
# Preparatory cleanup.
#
DROP TABLE IF EXISTS t1;
......@@ -104,5 +99,4 @@ FLUSH LOGS;
# reset variable value to pass testcase checks
SET @@global.max_allowed_packet = 1048576;
DROP TABLE t1;
SET @@global.max_allowed_packet=@old_global_max_allowed_packet;
remove_file $MYSQLTEST_VARDIR/tmp/mysqlbinlog_big_1.out
set session transaction_prealloc_size=1024*1024*1024*1;
select @pid_temp = (select ID from information_schema.processlist) as 'TRUE';
TRUE
1
set session transaction_prealloc_size=1024*1024*1024*2;
select @pid_temp = (select ID from information_schema.processlist) as 'TRUE';
TRUE
1
set session transaction_prealloc_size=1024*1024*1024*3;
select @pid_temp = (select ID from information_schema.processlist) as 'TRUE';
TRUE
1
set session transaction_prealloc_size=1024*1024*1024*4;
select @pid_temp = (select ID from information_schema.processlist) as 'TRUE';
TRUE
1
set session transaction_prealloc_size=1024*1024*1024*5;
select @pid_temp = (select ID from information_schema.processlist) as 'TRUE';
TRUE
1
SET SESSION transaction_prealloc_size=1024*1024*1024*1;
SHOW PROCESSLIST;
Id User Host db Command Time State Info
<Id> root localhost test Query <Time> NULL SHOW PROCESSLIST
SET SESSION transaction_prealloc_size=1024*1024*1024*2;
SHOW PROCESSLIST;
Id User Host db Command Time State Info
<Id> root localhost test Query <Time> NULL SHOW PROCESSLIST
SET SESSION transaction_prealloc_size=1024*1024*1024*3;
SHOW PROCESSLIST;
Id User Host db Command Time State Info
<Id> root localhost test Query <Time> NULL SHOW PROCESSLIST
SET SESSION transaction_prealloc_size=1024*1024*1024*4;
SHOW PROCESSLIST;
Id User Host db Command Time State Info
<Id> root localhost test Query <Time> NULL SHOW PROCESSLIST
SET SESSION transaction_prealloc_size=1024*1024*1024*5;
SHOW PROCESSLIST;
Id User Host db Command Time State Info
<Id> root localhost test Query <Time> NULL SHOW PROCESSLIST
......@@ -10,18 +10,3 @@ set debug= '-P';
select @@debug;
@@debug
T
set session debug="t";
show session variables like 'debug';
Variable_name Value
debug t
set session debug="t";
show session variables like 'debug';
Variable_name Value
debug t
set session debug="d:t";
show session variables like 'debug';
Variable_name Value
debug d:t
show session variables like 'debug';
Variable_name Value
debug t
set session debug="t";
show session variables like 'debug';
Variable_name Value
debug t
set session debug="t";
show session variables like 'debug';
Variable_name Value
debug t
set session debug="d:t";
show session variables like 'debug';
Variable_name Value
debug d:t
show session variables like 'debug';
Variable_name Value
debug t
RESET MASTER;
CREATE TABLE t1 (a INT);
INSERT INTO t1 VALUES (1),(2),(3);
SELECT * FROM t1;
......
RESET MASTER;
create table foo (a int);
flush logs;
create temporary table tmp1_foo like foo;
......
......@@ -6,6 +6,7 @@ source include/have_log_bin.inc;
source include/have_debug.inc;
let $MYSQLD_DATADIR= `select @@datadir`;
RESET MASTER;
CREATE TABLE t1 (a INT);
......@@ -24,4 +25,4 @@ exec $MYSQL_BINLOG --start-position=106 $MYSQLD_DATADIR/master-bin.000001 >$MYSQ
eval SELECT cont LIKE '%RELOAD DATABASE; # Shall generate syntax error%' AS `Contain RELOAD DATABASE` FROM (SELECT load_file('$MYSQLTEST_VARDIR/tmp/binlog_incident-bug44442.sql') AS cont) AS tbl;
--enable_query_log
remove_file $MYSQLTEST_VARDIR/tmp/binlog_incident-bug44442.sql;
\ No newline at end of file
remove_file $MYSQLTEST_VARDIR/tmp/binlog_incident-bug44442.sql;
......@@ -30,6 +30,7 @@ source include/have_binlog_format_mixed_or_statement.inc;
connect (master,127.0.0.1,root,,test,$MASTER_MYPORT,);
connect (master1,127.0.0.1,root,,test,$MASTER_MYPORT,);
RESET MASTER;
create table foo (a int);
......
# In MariaDB, max key parts is extended from 16 to 32. But 33 keys don't work.
--error ER_TOO_MANY_KEY_PARTS
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3,a4)) engine=$engine
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3,a4) (
partition pa1 max_rows=20 min_rows=2,
partition pa2 max_rows=30 min_rows=3,
partition pa3 max_rows=30 min_rows=4,
partition pa4 max_rows=40 min_rows=2);
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3)) engine=$engine
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3) (
partition pa1 max_rows=20 min_rows=2,
partition pa2 max_rows=30 min_rows=3,
partition pa3 max_rows=30 min_rows=4,
partition pa4 max_rows=40 min_rows=2);
drop table t1;
eval create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine=$engine
partition by key(a,b,c,d,e,f,g,h) (
......
......@@ -127,13 +127,20 @@ a b c d e f g h a1 b1 c1 d1 e1 f1 g1 h1 i
1980-10-14 fgbbd dtzndtz w 67856 5463354.67 3567845333 124 1980-10-14 fgbbd dtzndtz w 67856 5463354.67 3567845333 124 d,f söierugsig msireg siug ei5ggth lrutluitgzeöjrtnb.rkjthuekuhzrkuthgjdnffjmbr
1975-01-01 abcde abcde m 1234 123.45 32412341234 113 1975-01-01 abcde abcde m 1234 123.45 32412341234 113 tbhth nrzh ztfghgfh fzh ftzhj fztjh
drop table t1;
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3,a4)) engine='InnoDB'
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3,a4) (
partition pa1 max_rows=20 min_rows=2,
partition pa2 max_rows=30 min_rows=3,
partition pa3 max_rows=30 min_rows=4,
partition pa4 max_rows=40 min_rows=2);
ERROR 42000: Too many key parts specified; max 32 parts allowed
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3)) engine='InnoDB'
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3) (
partition pa1 max_rows=20 min_rows=2,
partition pa2 max_rows=30 min_rows=3,
partition pa3 max_rows=30 min_rows=4,
partition pa4 max_rows=40 min_rows=2);
ERROR 42000: Too many key parts specified; max 16 parts allowed
drop table t1;
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine='InnoDB'
partition by key(a,b,c,d,e,f,g,h) (
partition pa1 max_rows=20 min_rows=2,
......
......@@ -127,13 +127,20 @@ a b c d e f g h a1 b1 c1 d1 e1 f1 g1 h1 i
1980-10-14 fgbbd dtzndtz w 67856 5463354.67 3567845333 124 1980-10-14 fgbbd dtzndtz w 67856 5463354.67 3567845333 124 d,f söierugsig msireg siug ei5ggth lrutluitgzeöjrtnb.rkjthuekuhzrkuthgjdnffjmbr
1975-01-01 abcde abcde m 1234 123.45 32412341234 113 1975-01-01 abcde abcde m 1234 123.45 32412341234 113 tbhth nrzh ztfghgfh fzh ftzhj fztjh
drop table t1;
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3,a4)) engine='MyISAM'
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3,a4) (
partition pa1 max_rows=20 min_rows=2,
partition pa2 max_rows=30 min_rows=3,
partition pa3 max_rows=30 min_rows=4,
partition pa4 max_rows=40 min_rows=2);
ERROR 42000: Too many key parts specified; max 32 parts allowed
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3)) engine='MyISAM'
partition by key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1,a2,b2,c2,d2,e2,f2,g2,h2,a3,b3,c3,d3,e3,f3,g3,h3) (
partition pa1 max_rows=20 min_rows=2,
partition pa2 max_rows=30 min_rows=3,
partition pa3 max_rows=30 min_rows=4,
partition pa4 max_rows=40 min_rows=2);
ERROR 42000: Too many key parts specified; max 16 parts allowed
drop table t1;
create table t1 (a date not null, b varchar(50) not null, c varchar(50) not null, d enum('m', 'w') not null, e int not null, f decimal (18,2) not null, g bigint not null, h tinyint not null, a1 date not null, b1 varchar(50) not null, c1 varchar(50) not null, d1 enum('m', 'w') not null, e1 int not null, f1 decimal (18,2) not null, g1 bigint not null, h1 tinyint not null, a2 date not null, b2 varchar(50) not null, c2 varchar(50) not null, d2 enum('m', 'w') not null, e2 int not null, f2 decimal (18,2) not null, g2 bigint not null, h2 tinyint not null, a3 date not null, b3 varchar(50) not null, c3 varchar(50) not null, d3 enum('m', 'w') not null, e3 int not null, f3 decimal (18,2) not null, g3 bigint not null, h3 tinyint not null, i char(255), primary key(a,b,c,d,e,f,g,h,a1,b1,c1,d1,e1,f1,g1,h1)) engine='MyISAM'
partition by key(a,b,c,d,e,f,g,h) (
partition pa1 max_rows=20 min_rows=2,
......
-- source include/have_binlog_format_mixed_or_statement.inc
-- source include/have_gbk.inc
RESET MASTER;
SET NAMES gbk;
--character_set gbk
......
......@@ -36,6 +36,9 @@ let $N = 5;
# after a tests would be a perfect replacement.
#
# Can't test with embedded server that doesn't support grants
-- source include/not_embedded.inc
--source include/big_test.inc
......
......@@ -1105,13 +1105,13 @@ connect (pslistcon,localhost,root,,test);
let $ID= `select connection_id()`;
SELECT 'other connection here' AS who;
connection default;
sleep 1;
sleep 2;
--disable_query_log
eval SET @tid=$ID;
--enable_query_log
SELECT IF(`time` > 0, 'OK', `time`) AS time_low,
IF(`time` < 1000, 'OK', `time`) AS time_high,
IF(time_ms > 900, 'OK', time_ms) AS time_ms_low,
IF(time_ms > 1500, 'OK', time_ms) AS time_ms_low,
IF(time_ms < 1000000, 'OK', time_ms) AS time_ms_high
FROM INFORMATION_SCHEMA.PROCESSLIST
WHERE ID=@tid;
......
......@@ -148,7 +148,9 @@ delete from t1;
--error ER_CANT_DROP_FIELD_OR_KEY
drop index dc on t4;
# there is no foreign key dc on t3
--replace_regex /'\.\/test\/#sql2-[0-9a-f-]*'/'#sql2-temporary'/
# Embedded server doesn't chdir to data directory
--replace_result $MYSQLTEST_VARDIR . mysqld.1/data/ ''
--replace_regex /\/test\/#sql2-[0-9a-f-]*'/\/#sql2-temporary'/
--error ER_ERROR_ON_RENAME
alter table t3 drop foreign key dc;
alter table t4 drop foreign key dc;
......
......@@ -43,6 +43,7 @@ LOCK TABLE t1 WRITE;
--echo # connection con1
connect (con1,localhost,root,,);
let $con1_id= `SELECT CONNECTION_ID()`;
SET @orig_debug=@@debug;
SET GLOBAL debug="+d,sleep_open_and_lock_after_open";
send INSERT INTO t1 VALUES (1);
--echo # connection default
......@@ -74,7 +75,7 @@ UNLOCK TABLES;
--echo # connection con1
connection con1;
reap;
SET GLOBAL debug="-d,sleep_open_and_lock_after_open";
SET GLOBAL debug=@orig_debug;
disconnect con1;
--echo # connection default
connection default;
......
-- source include/have_working_dns.inc
# This test should work in embedded server after we fix mysqltest
-- source include/not_embedded.inc
#
......
-- source include/have_working_dns.inc
# Can't run test of external client with embedded server
-- source include/not_embedded.inc
......
......@@ -5,8 +5,9 @@
-- source include/have_cp932.inc
-- source include/have_log_bin.inc
RESET MASTER;
# Bug#16217 (mysql client did not know how not switch its internal charset)
flush logs;
create table t3 (f text character set utf8);
create table t4 (f text character set cp932);
--exec $MYSQL --default-character-set=utf8 test -e "insert into t3 values(_utf8'ソ')"
......@@ -14,7 +15,7 @@ create table t4 (f text character set cp932);
flush logs;
rename table t3 to t03, t4 to t04;
let $MYSQLD_DATADIR= `select @@datadir`;
--exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000002 | $MYSQL --default-character-set=utf8
--exec $MYSQL_BINLOG --short-form $MYSQLD_DATADIR/master-bin.000001 | $MYSQL --default-character-set=utf8
# original and recovered data must be equal
select HEX(f) from t03;
select HEX(f) from t3;
......
......@@ -23,16 +23,6 @@
# This is a big test.
--source include/big_test.inc
--echo #
--echo # We need big packets.
--echo #
connect (con1, localhost, root,,);
connection con1;
SET @old_global_max_allowed_packet=@@global.max_allowed_packet;
SET @@global.max_allowed_packet= 1024*1024*1024;
connect (con2, localhost, root,,);
connection con2;
--echo #
--echo # Preparatory cleanup.
--echo #
......@@ -154,14 +144,9 @@ let $MYSQLD_DATADIR= `select @@datadir`;
eval SET @@global.max_allowed_packet = $orig_max_allowed_packet;
DROP TABLE t1;
connection con1;
SET @@global.max_allowed_packet=@old_global_max_allowed_packet;
--echo remove_file \$MYSQLTEST_VARDIR/$mysqlbinlog_output
#
# NOTE: If you want to see the *huge* mysqlbinlog output, disable next line:
#
--remove_file $MYSQLTEST_VARDIR/$mysqlbinlog_output
disconnect con1
disconnect con2
......@@ -5,7 +5,7 @@
--source include/big_test.inc
#
# Bug #27322 failure to allocate transaction_prealloc_size causes crash
# Bug#27322 failure to allocate transaction_prealloc_size causes crash
#
#
# Manual (6.0):
......@@ -35,20 +35,21 @@
# timeout if the testing box is not powerful enough.
#
set @pid_temp = (select ID from information_schema.processlist);
set session transaction_prealloc_size=1024*1024*1024*1;
--replace_column 1 #
select @pid_temp = (select ID from information_schema.processlist) as 'TRUE';
set session transaction_prealloc_size=1024*1024*1024*2;
--replace_column 1 #
select @pid_temp = (select ID from information_schema.processlist) as 'TRUE';
--replace_column 1 #
set session transaction_prealloc_size=1024*1024*1024*3;
--replace_column 1 #
select @pid_temp = (select ID from information_schema.processlist) as 'TRUE';
set session transaction_prealloc_size=1024*1024*1024*4;
--replace_column 1 #
select @pid_temp = (select ID from information_schema.processlist) as 'TRUE';
set session transaction_prealloc_size=1024*1024*1024*5;
--replace_column 1 #
select @pid_temp = (select ID from information_schema.processlist) as 'TRUE';
--disable_warnings
SET SESSION transaction_prealloc_size=1024*1024*1024*1;
--replace_column 1 <Id> 6 <Time>
SHOW PROCESSLIST;
SET SESSION transaction_prealloc_size=1024*1024*1024*2;
--replace_column 1 <Id> 6 <Time>
SHOW PROCESSLIST;
SET SESSION transaction_prealloc_size=1024*1024*1024*3;
--replace_column 1 <Id> 6 <Time>
SHOW PROCESSLIST;
SET SESSION transaction_prealloc_size=1024*1024*1024*4;
--replace_column 1 <Id> 6 <Time>
SHOW PROCESSLIST;
SET SESSION transaction_prealloc_size=1024*1024*1024*5;
--replace_column 1 <Id> 6 <Time>
SHOW PROCESSLIST;
--enable_warnings
......@@ -10,31 +10,3 @@ set debug= '+P';
select @@debug;
set debug= '-P';
select @@debug;
#
# Checks that assigning variable 'debug' in one session has no influence on
# other session. (BUG#45632 of bugs.mysql.com)
#
connect(con1,localhost,root,,test,,);
connect(con2,localhost,root,,test,,);
# makes output independant of current debug status
connection con1;
set session debug="t";
show session variables like 'debug';
connection con2;
set session debug="t";
show session variables like 'debug';
# checks influence one session debug variable on another
connection con1;
set session debug="d:t";
show session variables like 'debug';
connection con2;
show session variables like 'debug';
disconnect con1;
disconnect con2;
connection default;
#
# Checks that assigning variable 'debug' in one session has no influence on
# other session. (BUG#45632 of bugs.mysql.com)
#
# (this will not work with embedded server because mysqltest_embedded uses the
# same thread for all connections)
#
--source include/have_debug.inc
--source include/not_embedded.inc
connect(con1,localhost,root,,test,,);
connect(con2,localhost,root,,test,,);
# makes output independant of current debug status
connection con1;
set session debug="t";
show session variables like 'debug';
connection con2;
set session debug="t";
show session variables like 'debug';
# checks influence one session debug variable on another
connection con1;
set session debug="d:t";
show session variables like 'debug';
connection con2;
show session variables like 'debug';
disconnect con1;
disconnect con2;
connection default;
......@@ -1168,6 +1168,22 @@ int plugin_init(int *argc, char **argv, int flags)
!my_strnncoll(&my_charset_latin1, (const uchar*) plugin->name,
6, (const uchar*) "InnoDB", 6))
continue;
#ifdef EMBEDDED_LIBRARY
/*
MariaDB: disable PBXT in embedded server. We do this for two reasons
- PBXT currently doesn't work in embedded server (see
https://bugs.launchpad.net/maria/+bug/439889)
- Embedded server is supposed to be "leaner" and our current
understanding of that is "without PBXT". At the same time, we want
regular server to be with PBXT, and since we don't support compiling
embedded server with different options than the regular server,
the only way was to disable PBXT from here.
*/
if (!my_strnncoll(&my_charset_latin1, (const uchar*) plugin->name,
4, (const uchar*) "PBXT", 4))
continue;
#endif
bzero(&tmp, sizeof(tmp));
tmp.plugin= plugin;
tmp.name.str= (char *)plugin->name;
......
......@@ -5448,7 +5448,7 @@ static size_t fill_insert_undo_parts(MARIA_HA *info, const uchar *record,
Store total blob length to make buffer allocation easier during UNDO
*/
log_parts->str= info->length_buff;
log_parts->length= (uint) (ma_store_length((uchar *) log_parts->str,
log_parts->length= (uint) (ma_store_length(info->length_buff,
info->cur_row.blob_length) -
(uchar*) log_parts->str);
row_length+= log_parts->length;
......@@ -5592,7 +5592,7 @@ static size_t fill_update_undo_parts(MARIA_HA *info, const uchar *oldrec,
MARIA_SHARE *share= info->s;
MARIA_COLUMNDEF *column, *end_column;
MARIA_ROW *old_row= &info->cur_row, *new_row= &info->new_row;
uchar *field_data, *start_field_data;
uchar *field_data, *start_field_data, *length_str;
uchar *old_field_lengths= old_row->field_lengths;
uchar *new_field_lengths= new_row->field_lengths;
size_t row_length= 0;
......@@ -5749,9 +5749,9 @@ static size_t fill_update_undo_parts(MARIA_HA *info, const uchar *oldrec,
/* Store length of field length data before the field/field_lengths */
field_lengths= (uint) (field_data - start_field_data);
start_log_parts->str= ((start_field_data -
ma_calc_length_for_store_length(field_lengths)));
ma_store_length((uchar*)start_log_parts->str, field_lengths);
length_str= start_field_data - ma_calc_length_for_store_length(field_lengths);
start_log_parts->str= length_str;
ma_store_length(length_str, field_lengths);
start_log_parts->length= (size_t) (field_data - start_log_parts->str);
row_length+= start_log_parts->length;
DBUG_RETURN(row_length);
......
......@@ -32,22 +32,72 @@ INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include ${CMAKE_SOURCE_DIR}/sql
${CMAKE_SOURCE_DIR}/regex
${CMAKE_SOURCE_DIR}/extra/yassl/include)
SET(PBXT_SOURCES ha_pbxt.cc bsearch_xt.cc index_xt.cc strutil_xt.cc cache_xt.cc linklist_xt.cc
ccutils_xt.cc lock_xt.cc table_xt.cc database_xt.cc thread_xt.cc
datadic_xt.cc memory_xt.cc trace_xt.cc datalog_xt.cc myxt_xt.cc util_xt.cc
filesys_xt.cc pthread_xt.cc xaction_xt.cc restart_xt.cc xactlog_xt.cc
hashtab_xt.cc sortedlist_xt.cc heap_xt.cc streaming_xt.cc tabcache_xt.cc
systab_xt.cc ha_xtsys.cc discover_xt.cc
bsearch_xt.h linklist_xt.h tabcache_xt.h cache_xt.h lock_xt.h table_xt.h
ccutils_xt.h thread_xt.h database_xt.h memory_xt.h trace_xt.h
datadic_xt.h pbms.h util_xt.h datalog_xt.h myxt_xt.h xaction_xt.h
filesys_xt.h pthread_xt.h xactlog_xt.h ha_pbxt.h restart_xt.h xt_config.h
hashtab_xt.h sortedlist_xt.h xt_defs.h heap_xt.h streaming_xt.h xt_errno.h
systab_xt.h ha_xtsys.h discover_xt.h
index_xt.h strutil_xt.h)
IF(NOT SOURCE_SUBLIBS)
ADD_LIBRARY(pbxt ${PBXT_SOURCES})
ADD_DEPENDENCIES(pbxt GenError)
ENDIF(NOT SOURCE_SUBLIBS)
SET(PBXT_SOURCES
src/bsearch_xt.cc
src/bsearch_xt.h
src/cache_xt.cc
src/cache_xt.h
src/ccutils_xt.cc
src/ccutils_xt.h
src/database_xt.cc
src/database_xt.h
src/datadic_xt.cc
src/datadic_xt.h
src/datalog_xt.cc
src/datalog_xt.h
src/discover_xt.cc
src/discover_xt.h
src/filesys_xt.cc
src/filesys_xt.h
src/hashtab_xt.cc
src/hashtab_xt.h
src/ha_pbxt.cc
src/ha_pbxt.h
src/ha_xtsys.cc
src/ha_xtsys.h
src/heap_xt.cc
src/heap_xt.h
src/index_xt.cc
src/index_xt.h
src/linklist_xt.cc
src/linklist_xt.h
src/locklist_xt.cc
src/locklist_xt.h
src/lock_xt.cc
src/lock_xt.h
src/memory_xt.cc
src/memory_xt.h
src/myxt_xt.cc
src/myxt_xt.h
src/pbms.h
src/pbms_enabled.cc
src/pbms_enabled.h
src/pthread_xt.cc
src/pthread_xt.h
src/restart_xt.cc
src/restart_xt.h
src/sortedlist_xt.cc
src/sortedlist_xt.h
src/strutil_xt.cc
src/strutil_xt.h
src/systab_xt.cc
src/systab_xt.h
src/tabcache_xt.cc
src/tabcache_xt.h
src/table_xt.cc
src/table_xt.h
src/thread_xt.cc
src/thread_xt.h
src/trace_xt.cc
src/trace_xt.h
src/util_xt.cc
src/util_xt.h
src/xaction_xt.cc
src/xaction_xt.h
src/xactlog_xt.cc
src/xactlog_xt.h
src/xt_config.h
src/xt_defs.h
src/xt_errno.h)
MYSQL_STORAGE_ENGINE(PBXT)
SUBDIRS = src
EXTRA_DIST = plug.in
EXTRA_DIST = CMakeLists.txt plug.in
......@@ -49,4 +49,4 @@ libpbxt_a_SOURCES = $(libpbxt_la_SOURCES)
libpbxt_a_CXXFLAGS = $(AM_CXXFLAGS)
libpbxt_a_CFLAGS = $(AM_CFLAGS) -std=c99
EXTRA_DIST = CMakeLists.txt pbms_enabled.cc
EXTRA_DIST = pbms_enabled.cc
......@@ -29,6 +29,12 @@
*
*/
/*
The following two lines backported by psergey. Remove them when we merge from PBXT again.
*/
#include "xt_config.h"
#ifdef PBMS_ENABLED
#define PBMS_API pbms_enabled_api
#include "pbms_enabled.h"
......@@ -236,3 +242,4 @@ void pbms_completed(TABLE *table, bool ok)
return ;
}
#endif
\ No newline at end of file
......@@ -1016,7 +1016,7 @@ extern "C" void *thr_main(void *data)
#endif
try_(a) {
if (!xt_set_key(thr_key, self, &self->t_exception))
if (!xt_set_key((pthread_key_t)thr_key, self, &self->t_exception))
throw_();
td->td_started = TRUE;
return_data = (*start_routine)(self);
......@@ -1352,12 +1352,12 @@ xtPublic XTThreadPtr xt_get_self(void)
return self;
/* Then it must be a background process, and the
* thread info is stored in the local key: */
return (XTThreadPtr) xt_get_key(thr_key);
return (XTThreadPtr) xt_get_key((pthread_key_t)thr_key);
}
xtPublic void xt_set_self(XTThreadPtr self)
{
xt_set_key(thr_key, self, NULL);
xt_set_key((pthread_key_t)thr_key, self, NULL);
}
xtPublic void xt_clear_exception(XTThreadPtr thread)
......@@ -1386,7 +1386,7 @@ xtPublic XTThreadPtr xt_create_thread(c_char *name, xtBool main_thread, xtBool u
return NULL;
}
if (!xt_set_key(thr_key, self, e)) {
if (!xt_set_key((pthread_key_t)thr_key, self, e)) {
xt_free_ns(self);
return NULL;
}
......@@ -1400,7 +1400,7 @@ xtPublic XTThreadPtr xt_create_thread(c_char *name, xtBool main_thread, xtBool u
}
catch_(a) {
*e = self->t_exception;
xt_set_key(thr_key, NULL, NULL);
xt_set_key((pthread_key_t)thr_key, NULL, NULL);
xt_free_ns(self);
self = NULL;
}
......@@ -1464,8 +1464,8 @@ void xt_free_thread(XTThreadPtr self)
* PBXT resources on all MySQL THDs created by PBMS for it's own pthreads. So the 'self'
* being freed is not the same 'self' associated with the PBXT 'thr_key'.
*/
if (thr_key && (self == ((XTThreadPtr) xt_get_key(thr_key)))) {
xt_set_key(thr_key, NULL, NULL);
if (thr_key && (self == ((XTThreadPtr) xt_get_key((pthread_key_t)thr_key)))) {
xt_set_key((pthread_key_t)thr_key, NULL, NULL);
}
xt_free_ns(self);
}
......
......@@ -109,3 +109,6 @@ ma_packrec.c : .*result of 32-bit shift implicitly converted to 64 bits.* : 550-
#
.* : .*no matching operator delete found; memory will not be freed if initialization throws an exception.*
ctype-simple.c : .*unary minus operator applied to unsigned type, result still unsigned.*
# Wrong warning due to GCC bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29478
regexec\.c : .*passing argument 3 of.*matcher.* discards qualifiers from pointer target type.*
......@@ -16,7 +16,8 @@
## Process this file with automake to create Makefile.in
EXTRA_DIST = build-vs71.bat build-vs8.bat build-vs8_x64.bat build-vs9.bat \
build-vs9_x64.bat configure.js README mysql_manifest.cmake \
create_manifest.js create_def_file.js
create_manifest.js create_def_file.js build-nmake.bat \
build-nmake-x64.bat
# Don't update the files from bitkeeper
%::SCCS/s.%
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment