mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
merge
BitKeeper/etc/logging_ok: auto-union configure.in: Auto merged libmysqld/Makefile.am: Auto merged mysql-test/mysql-test-run.sh: Auto merged sql/field.cc: Auto merged sql/field.h: Auto merged sql/ha_ndbcluster.cc: Auto merged sql/ha_ndbcluster.h: Auto merged sql/handler.cc: Auto merged sql/handler.h: Auto merged sql/item.cc: Auto merged sql/mysqld.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_delete.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_update.cc: Auto merged sql/table.cc: Auto merged sql/unireg.cc: Auto merged storage/innobase/row/row0mysql.c: Auto merged storage/myisam/mi_create.c: Auto merged storage/myisam/mi_dynrec.c: Auto merged storage/myisam/mi_key.c: Auto merged storage/myisam/mi_locking.c: Auto merged storage/myisam/mi_static.c: Auto merged storage/myisam/mi_statrec.c: Auto merged storage/myisam/mi_write.c: Auto merged storage/myisam/myisamdef.h: Auto merged storage/ndb/src/cw/cpcd/APIService.cpp: Auto merged storage/ndb/src/cw/cpcd/APIService.hpp: Auto merged storage/ndb/src/kernel/blocks/dbdict/Dbdict.cpp: Auto merged storage/ndb/src/kernel/blocks/dbdict/Dbdict.hpp: Auto merged storage/ndb/src/kernel/blocks/dbdict/SchemaFile.hpp: Auto merged storage/ndb/src/kernel/blocks/dbdict/printSchemaFile.cpp: Auto merged storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp: Auto merged storage/ndb/src/ndbapi/NdbDictionaryImpl.cpp: Auto merged storage/ndb/test/ndbapi/testNodeRestart.cpp: Auto merged storage/ndb/test/ndbapi/testScan.cpp: Auto merged storage/ndb/test/run-test/main.cpp: Auto merged storage/ndb/test/run-test/run-test.hpp: Auto merged
This commit is contained in:
5
mysql-test/include/have_outfile.inc
Normal file
5
mysql-test/include/have_outfile.inc
Normal file
@ -0,0 +1,5 @@
|
||||
-- require r/have_outfile.require
|
||||
disable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile.test"));
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile.test
|
||||
enable_query_log;
|
1
mysql-test/include/test_outfile.inc
Normal file
1
mysql-test/include/test_outfile.inc
Normal file
@ -0,0 +1 @@
|
||||
eval select "Outfile OK" into outfile "$MYSQL_TEST_DIR/var/tmp/outfile.test";
|
@ -1,4 +1,5 @@
|
||||
USE mysql;
|
||||
use mysql;
|
||||
set table_type=myisam;
|
||||
|
||||
CREATE TABLE db (
|
||||
Host char(60) binary DEFAULT '' NOT NULL,
|
||||
@ -206,7 +207,7 @@ INSERT INTO time_zone_name (Name, Time_Zone_id) VALUES
|
||||
|
||||
CREATE TABLE time_zone (
|
||||
Time_zone_id int unsigned NOT NULL auto_increment,
|
||||
Use_leap_seconds enum('Y','N') DEFAULT 'N' NOT NULL,
|
||||
Use_leap_seconds enum('Y','N') COLLATE utf8_general_ci DEFAULT 'N' NOT NULL,
|
||||
PRIMARY KEY TzId (Time_zone_id)
|
||||
) engine=MyISAM
|
||||
CHARACTER SET utf8
|
||||
|
@ -344,7 +344,7 @@ sub mtr_kill_leftovers () {
|
||||
# We scan the "var/run/" directory for other process id's to kill
|
||||
|
||||
# FIXME $path_run_dir or something
|
||||
my $rundir= "$::glob_mysql_test_dir/var/run";
|
||||
my $rundir= "$::opt_vardir/run";
|
||||
|
||||
if ( -d $rundir )
|
||||
{
|
||||
|
@ -89,9 +89,10 @@ sub mtr_report_test_passed ($) {
|
||||
my $tinfo= shift;
|
||||
|
||||
my $timer= "";
|
||||
if ( $::opt_timer and -f "$::glob_mysql_test_dir/var/log/timer" )
|
||||
if ( $::opt_timer and -f "$::opt_vardir/log/timer" )
|
||||
{
|
||||
$timer= mtr_fromfile("$::glob_mysql_test_dir/var/log/timer");
|
||||
$timer= mtr_fromfile("$::opt_vardir/log/timer");
|
||||
$::glob_tot_real_time += $timer;
|
||||
$timer= sprintf "%12s", $timer;
|
||||
}
|
||||
$tinfo->{'result'}= 'MTR_RES_PASSED';
|
||||
@ -177,8 +178,8 @@ sub mtr_report_stats ($) {
|
||||
|
||||
# Report if there was any fatal warnings/errors in the log files
|
||||
#
|
||||
unlink("$::glob_mysql_test_dir/var/log/warnings");
|
||||
unlink("$::glob_mysql_test_dir/var/log/warnings.tmp");
|
||||
unlink("$::opt_vardir/log/warnings");
|
||||
unlink("$::opt_vardir/log/warnings.tmp");
|
||||
# Remove some non fatal warnings from the log files
|
||||
|
||||
# FIXME what is going on ????? ;-)
|
||||
@ -196,11 +197,11 @@ sub mtr_report_stats ($) {
|
||||
# found_error=1
|
||||
# }
|
||||
# done
|
||||
# unlink("$::glob_mysql_test_dir/var/log/warnings.tmp");
|
||||
# unlink("$::opt_vardir/log/warnings.tmp");
|
||||
# if ( $found_error= "1" )
|
||||
# {
|
||||
# print "WARNING: Got errors/warnings while running tests. Please examine\n"
|
||||
# print "$::glob_mysql_test_dir/var/log/warnings for details.\n"
|
||||
# print "$::opt_vardir/log/warnings for details.\n"
|
||||
# }
|
||||
# }
|
||||
}
|
||||
|
@ -84,7 +84,7 @@ use Sys::Hostname;
|
||||
#use Carp;
|
||||
use IO::Socket;
|
||||
use IO::Socket::INET;
|
||||
#use Data::Dumper;
|
||||
use Data::Dumper;
|
||||
use strict;
|
||||
#use diagnostics;
|
||||
|
||||
@ -177,6 +177,7 @@ our $path_timefile;
|
||||
our $path_manager_log; # Used by mysqldadmin
|
||||
our $path_slave_load_tmpdir; # What is this?!
|
||||
our $path_my_basedir;
|
||||
our $opt_vardir; # A path but set directly on cmd line
|
||||
our $opt_tmpdir; # A path but set directly on cmd line
|
||||
|
||||
our $opt_usage;
|
||||
@ -447,8 +448,6 @@ sub initial_setup () {
|
||||
$glob_basedir= dirname($glob_mysql_test_dir);
|
||||
$glob_mysql_bench_dir= "$glob_basedir/mysql-bench"; # FIXME make configurable
|
||||
|
||||
$path_timefile= "$glob_mysql_test_dir/var/log/mysqltest-time";
|
||||
|
||||
# needs to be same length to test logging (FIXME what???)
|
||||
$path_slave_load_tmpdir= "../../var/tmp";
|
||||
|
||||
@ -469,11 +468,6 @@ sub command_line_setup () {
|
||||
# These are defaults for things that are set on the command line
|
||||
|
||||
$opt_suite= "main"; # Special default suite
|
||||
$opt_tmpdir= "$glob_mysql_test_dir/var/tmp";
|
||||
# FIXME maybe unneded?
|
||||
$path_manager_log= "$glob_mysql_test_dir/var/log/manager.log";
|
||||
$opt_current_test= "$glob_mysql_test_dir/var/log/current_test";
|
||||
|
||||
my $opt_master_myport= 9306;
|
||||
my $opt_slave_myport= 9308;
|
||||
$opt_ndbcluster_port= 9350;
|
||||
@ -549,6 +543,7 @@ sub command_line_setup () {
|
||||
'unified-diff|udiff' => \$opt_udiff,
|
||||
'user-test=s' => \$opt_user_test,
|
||||
'user=s' => \$opt_user,
|
||||
'vardir=s' => \$opt_vardir,
|
||||
'verbose' => \$opt_verbose,
|
||||
'wait-timeout=i' => \$opt_wait_timeout,
|
||||
'warnings|log-warnings' => \$opt_warnings,
|
||||
@ -564,51 +559,35 @@ sub command_line_setup () {
|
||||
|
||||
@opt_cases= @ARGV;
|
||||
|
||||
# Put this into a hash, will be a C struct
|
||||
# --------------------------------------------------------------------------
|
||||
# Set the "var/" directory, as it is the base for everything else
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
$master->[0]->{'path_myddir'}= "$glob_mysql_test_dir/var/master-data";
|
||||
$master->[0]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/master.err";
|
||||
$master->[0]->{'path_mylog'}= "$glob_mysql_test_dir/var/log/master.log";
|
||||
$master->[0]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/master.pid";
|
||||
$master->[0]->{'path_mysock'}= "$opt_tmpdir/master.sock";
|
||||
$master->[0]->{'path_myport'}= $opt_master_myport;
|
||||
$master->[0]->{'start_timeout'}= 400; # enough time create innodb tables
|
||||
if ( ! $opt_vardir )
|
||||
{
|
||||
$opt_vardir= "$glob_mysql_test_dir/var";
|
||||
}
|
||||
|
||||
$master->[0]->{'ndbcluster'}= 1; # ndbcluster not started
|
||||
if ( $opt_vardir !~ m,^/, )
|
||||
{
|
||||
# Make absolute path, relative test dir
|
||||
$opt_vardir= "$glob_mysql_test_dir/$opt_vardir";
|
||||
}
|
||||
|
||||
$master->[1]->{'path_myddir'}= "$glob_mysql_test_dir/var/master1-data";
|
||||
$master->[1]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/master1.err";
|
||||
$master->[1]->{'path_mylog'}= "$glob_mysql_test_dir/var/log/master1.log";
|
||||
$master->[1]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/master1.pid";
|
||||
$master->[1]->{'path_mysock'}= "$opt_tmpdir/master1.sock";
|
||||
$master->[1]->{'path_myport'}= $opt_master_myport + 1;
|
||||
$master->[1]->{'start_timeout'}= 400; # enough time create innodb tables
|
||||
# --------------------------------------------------------------------------
|
||||
# If not set, set these to defaults
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
$slave->[0]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave-data";
|
||||
$slave->[0]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave.err";
|
||||
$slave->[0]->{'path_mylog'}= "$glob_mysql_test_dir/var/log/slave.log";
|
||||
$slave->[0]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave.pid";
|
||||
$slave->[0]->{'path_mysock'}= "$opt_tmpdir/slave.sock";
|
||||
$slave->[0]->{'path_myport'}= $opt_slave_myport;
|
||||
$slave->[0]->{'start_timeout'}= 400;
|
||||
|
||||
$slave->[1]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave1-data";
|
||||
$slave->[1]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave1.err";
|
||||
$slave->[1]->{'path_mylog'}= "$glob_mysql_test_dir/var/log/slave1.log";
|
||||
$slave->[1]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave1.pid";
|
||||
$slave->[1]->{'path_mysock'}= "$opt_tmpdir/slave1.sock";
|
||||
$slave->[1]->{'path_myport'}= $opt_slave_myport + 1;
|
||||
$slave->[1]->{'start_timeout'}= 300;
|
||||
|
||||
$slave->[2]->{'path_myddir'}= "$glob_mysql_test_dir/var/slave2-data";
|
||||
$slave->[2]->{'path_myerr'}= "$glob_mysql_test_dir/var/log/slave2.err";
|
||||
$slave->[2]->{'path_mylog'}= "$glob_mysql_test_dir/var/log/slave2.log";
|
||||
$slave->[2]->{'path_mypid'}= "$glob_mysql_test_dir/var/run/slave2.pid";
|
||||
$slave->[2]->{'path_mysock'}= "$opt_tmpdir/slave2.sock";
|
||||
$slave->[2]->{'path_myport'}= $opt_slave_myport + 2;
|
||||
$slave->[2]->{'start_timeout'}= 300;
|
||||
$opt_tmpdir= "$opt_vardir/tmp" unless $opt_tmpdir;
|
||||
# FIXME maybe not needed?
|
||||
$path_manager_log= "$opt_vardir/log/manager.log"
|
||||
unless $path_manager_log;
|
||||
$opt_current_test= "$opt_vardir/log/current_test"
|
||||
unless $opt_current_test;
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Do sanity checks of command line arguments
|
||||
# --------------------------------------------------------------------------
|
||||
|
||||
if ( $opt_extern and $opt_local )
|
||||
{
|
||||
@ -621,13 +600,6 @@ sub command_line_setup () {
|
||||
$opt_socket= "/tmp/mysql.sock"; # FIXME
|
||||
}
|
||||
|
||||
if ( $opt_extern )
|
||||
{
|
||||
$glob_use_running_server= 1;
|
||||
$opt_skip_rpl= 1; # We don't run rpl test cases
|
||||
$master->[0]->{'path_mysock'}= $opt_socket;
|
||||
}
|
||||
|
||||
# --------------------------------------------------------------------------
|
||||
# Look at the command line options and set script flags
|
||||
# --------------------------------------------------------------------------
|
||||
@ -746,6 +718,58 @@ sub command_line_setup () {
|
||||
}
|
||||
}
|
||||
|
||||
# Put this into a hash, will be a C struct
|
||||
|
||||
$master->[0]->{'path_myddir'}= "$opt_vardir/master-data";
|
||||
$master->[0]->{'path_myerr'}= "$opt_vardir/log/master.err";
|
||||
$master->[0]->{'path_mylog'}= "$opt_vardir/log/master.log";
|
||||
$master->[0]->{'path_mypid'}= "$opt_vardir/run/master.pid";
|
||||
$master->[0]->{'path_mysock'}= "$opt_tmpdir/master.sock";
|
||||
$master->[0]->{'path_myport'}= $opt_master_myport;
|
||||
$master->[0]->{'start_timeout'}= 400; # enough time create innodb tables
|
||||
|
||||
$master->[0]->{'ndbcluster'}= 1; # ndbcluster not started
|
||||
|
||||
$master->[1]->{'path_myddir'}= "$opt_vardir/master1-data";
|
||||
$master->[1]->{'path_myerr'}= "$opt_vardir/log/master1.err";
|
||||
$master->[1]->{'path_mylog'}= "$opt_vardir/log/master1.log";
|
||||
$master->[1]->{'path_mypid'}= "$opt_vardir/run/master1.pid";
|
||||
$master->[1]->{'path_mysock'}= "$opt_tmpdir/master1.sock";
|
||||
$master->[1]->{'path_myport'}= $opt_master_myport + 1;
|
||||
$master->[1]->{'start_timeout'}= 400; # enough time create innodb tables
|
||||
|
||||
$slave->[0]->{'path_myddir'}= "$opt_vardir/slave-data";
|
||||
$slave->[0]->{'path_myerr'}= "$opt_vardir/log/slave.err";
|
||||
$slave->[0]->{'path_mylog'}= "$opt_vardir/log/slave.log";
|
||||
$slave->[0]->{'path_mypid'}= "$opt_vardir/run/slave.pid";
|
||||
$slave->[0]->{'path_mysock'}= "$opt_tmpdir/slave.sock";
|
||||
$slave->[0]->{'path_myport'}= $opt_slave_myport;
|
||||
$slave->[0]->{'start_timeout'}= 400;
|
||||
|
||||
$slave->[1]->{'path_myddir'}= "$opt_vardir/slave1-data";
|
||||
$slave->[1]->{'path_myerr'}= "$opt_vardir/log/slave1.err";
|
||||
$slave->[1]->{'path_mylog'}= "$opt_vardir/log/slave1.log";
|
||||
$slave->[1]->{'path_mypid'}= "$opt_vardir/run/slave1.pid";
|
||||
$slave->[1]->{'path_mysock'}= "$opt_tmpdir/slave1.sock";
|
||||
$slave->[1]->{'path_myport'}= $opt_slave_myport + 1;
|
||||
$slave->[1]->{'start_timeout'}= 300;
|
||||
|
||||
$slave->[2]->{'path_myddir'}= "$opt_vardir/slave2-data";
|
||||
$slave->[2]->{'path_myerr'}= "$opt_vardir/log/slave2.err";
|
||||
$slave->[2]->{'path_mylog'}= "$opt_vardir/log/slave2.log";
|
||||
$slave->[2]->{'path_mypid'}= "$opt_vardir/run/slave2.pid";
|
||||
$slave->[2]->{'path_mysock'}= "$opt_tmpdir/slave2.sock";
|
||||
$slave->[2]->{'path_myport'}= $opt_slave_myport + 2;
|
||||
$slave->[2]->{'start_timeout'}= 300;
|
||||
|
||||
if ( $opt_extern )
|
||||
{
|
||||
$glob_use_running_server= 1;
|
||||
$opt_skip_rpl= 1; # We don't run rpl test cases
|
||||
$master->[0]->{'path_mysock'}= $opt_socket;
|
||||
}
|
||||
|
||||
$path_timefile= "$opt_vardir/log/mysqltest-time";
|
||||
}
|
||||
|
||||
|
||||
@ -892,8 +916,8 @@ sub executable_setup () {
|
||||
}
|
||||
|
||||
$path_ndb_backup_dir=
|
||||
"$glob_mysql_test_dir/var/ndbcluster-$opt_ndbcluster_port";
|
||||
$file_ndb_testrun_log= "$glob_mysql_test_dir/var/log/ndb_testrun.log";
|
||||
"$opt_vardir/ndbcluster-$opt_ndbcluster_port";
|
||||
$file_ndb_testrun_log= "$opt_vardir/log/ndb_testrun.log";
|
||||
}
|
||||
|
||||
|
||||
@ -981,7 +1005,7 @@ sub kill_running_server () {
|
||||
# leftovers from previous runs.
|
||||
|
||||
mtr_report("Killing Possible Leftover Processes");
|
||||
mkpath("$glob_mysql_test_dir/var/log"); # Needed for mysqladmin log
|
||||
mkpath("$opt_vardir/log"); # Needed for mysqladmin log
|
||||
mtr_kill_leftovers();
|
||||
|
||||
ndbcluster_stop();
|
||||
@ -995,15 +1019,20 @@ sub kill_and_cleanup () {
|
||||
|
||||
mtr_report("Removing Stale Files");
|
||||
|
||||
rmtree("$glob_mysql_test_dir/var/log");
|
||||
rmtree("$glob_mysql_test_dir/var/ndbcluster-$opt_ndbcluster_port");
|
||||
rmtree("$glob_mysql_test_dir/var/run");
|
||||
rmtree("$glob_mysql_test_dir/var/tmp");
|
||||
if ( -l $opt_vardir and ! unlink($opt_vardir) )
|
||||
{
|
||||
mtr_error("Can't remove soft link \"$opt_vardir\"");
|
||||
}
|
||||
|
||||
mkpath("$glob_mysql_test_dir/var/log");
|
||||
mkpath("$glob_mysql_test_dir/var/run");
|
||||
mkpath("$glob_mysql_test_dir/var/tmp");
|
||||
mkpath($opt_tmpdir);
|
||||
rmtree("$opt_vardir/log");
|
||||
rmtree("$opt_vardir/ndbcluster-$opt_ndbcluster_port");
|
||||
rmtree("$opt_vardir/run");
|
||||
rmtree("$opt_vardir/tmp");
|
||||
|
||||
mkpath("$opt_vardir/log");
|
||||
mkpath("$opt_vardir/run");
|
||||
mkpath("$opt_vardir/tmp");
|
||||
mkpath($opt_tmpdir) if $opt_tmpdir ne "$opt_vardir/tmp";
|
||||
|
||||
# FIXME do we really need to create these all, or are they
|
||||
# created for us when tables are created?
|
||||
@ -1027,6 +1056,16 @@ sub kill_and_cleanup () {
|
||||
rmtree("$slave->[2]->{'path_myddir'}");
|
||||
mkpath("$slave->[2]->{'path_myddir'}/mysql");
|
||||
mkpath("$slave->[2]->{'path_myddir'}/test");
|
||||
|
||||
# To make some old test cases work, we create a soft
|
||||
# link from the old "var" location to the new one
|
||||
|
||||
if ( ! $glob_win32 and $opt_vardir ne "$glob_mysql_test_dir/var" )
|
||||
{
|
||||
# FIXME why bother with the above, why not always remove all of var?!
|
||||
rmtree("$glob_mysql_test_dir/var"); # Clean old var, FIXME or rename it?!
|
||||
symlink($opt_vardir, "$glob_mysql_test_dir/var");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1048,7 +1087,7 @@ sub ndbcluster_install () {
|
||||
my $ndbcluster_opts= $opt_bench ? "" : "--small";
|
||||
if ( mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",
|
||||
["--port=$opt_ndbcluster_port",
|
||||
"--data-dir=$glob_mysql_test_dir/var",
|
||||
"--data-dir=$opt_vardir",
|
||||
$ndbcluster_opts,
|
||||
"--initial"],
|
||||
"", "", "", "") )
|
||||
@ -1072,7 +1111,7 @@ sub ndbcluster_start () {
|
||||
# FIXME, we want to _append_ output to file $file_ndb_testrun_log instead of /dev/null
|
||||
if ( mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",
|
||||
["--port=$opt_ndbcluster_port",
|
||||
"--data-dir=$glob_mysql_test_dir/var"],
|
||||
"--data-dir=$opt_vardir"],
|
||||
"", "/dev/null", "", "") )
|
||||
{
|
||||
mtr_error("Error ndbcluster_start");
|
||||
@ -1091,7 +1130,7 @@ sub ndbcluster_stop () {
|
||||
# FIXME, we want to _append_ output to file $file_ndb_testrun_log instead of /dev/null
|
||||
mtr_run("$glob_mysql_test_dir/ndb/ndbcluster",
|
||||
["--port=$opt_ndbcluster_port",
|
||||
"--data-dir=$glob_mysql_test_dir/var",
|
||||
"--data-dir=$opt_vardir",
|
||||
"--stop"],
|
||||
"", "/dev/null", "", "");
|
||||
|
||||
@ -1494,15 +1533,15 @@ sub run_testcase ($) {
|
||||
{
|
||||
mtr_report_test_passed($tinfo);
|
||||
}
|
||||
elsif ( $res == 2 )
|
||||
elsif ( $res == 62 )
|
||||
{
|
||||
# Testcase itself tell us to skip this one
|
||||
mtr_report_test_skipped($tinfo);
|
||||
}
|
||||
else
|
||||
{
|
||||
# Test case failed
|
||||
if ( $res > 2 )
|
||||
# Test case failed, if in control mysqltest returns 1
|
||||
if ( $res != 1 )
|
||||
{
|
||||
mtr_tofile($path_timefile,
|
||||
"mysqltest returned unexpected code $res, " .
|
||||
@ -1563,17 +1602,17 @@ sub do_before_start_master ($$) {
|
||||
$tname ne "rpl_crash_binlog_ib_3b")
|
||||
{
|
||||
# FIXME we really want separate dir for binlogs
|
||||
foreach my $bin ( glob("$glob_mysql_test_dir/var/log/master*-bin.*") )
|
||||
foreach my $bin ( glob("$opt_vardir/log/master*-bin.*") )
|
||||
{
|
||||
unlink($bin);
|
||||
}
|
||||
}
|
||||
|
||||
# Remove old master.info and relay-log.info files
|
||||
unlink("$glob_mysql_test_dir/var/master-data/master.info");
|
||||
unlink("$glob_mysql_test_dir/var/master-data/relay-log.info");
|
||||
unlink("$glob_mysql_test_dir/var/master1-data/master.info");
|
||||
unlink("$glob_mysql_test_dir/var/master1-data/relay-log.info");
|
||||
unlink("$opt_vardir/master-data/master.info");
|
||||
unlink("$opt_vardir/master-data/relay-log.info");
|
||||
unlink("$opt_vardir/master1-data/master.info");
|
||||
unlink("$opt_vardir/master1-data/relay-log.info");
|
||||
|
||||
# Run master initialization shell script if one exists
|
||||
if ( $init_script )
|
||||
@ -1600,13 +1639,13 @@ sub do_before_start_slave ($$) {
|
||||
$tname ne "rpl_crash_binlog_ib_3b" )
|
||||
{
|
||||
# FIXME we really want separate dir for binlogs
|
||||
foreach my $bin ( glob("$glob_mysql_test_dir/var/log/slave*-bin.*") )
|
||||
foreach my $bin ( glob("$opt_vardir/log/slave*-bin.*") )
|
||||
{
|
||||
unlink($bin);
|
||||
}
|
||||
# FIXME really master?!
|
||||
unlink("$glob_mysql_test_dir/var/slave-data/master.info");
|
||||
unlink("$glob_mysql_test_dir/var/slave-data/relay-log.info");
|
||||
unlink("$opt_vardir/slave-data/master.info");
|
||||
unlink("$opt_vardir/slave-data/relay-log.info");
|
||||
}
|
||||
|
||||
# Run slave initialization shell script if one exists
|
||||
@ -1620,8 +1659,8 @@ sub do_before_start_slave ($$) {
|
||||
}
|
||||
}
|
||||
|
||||
`rm -f $glob_mysql_test_dir/var/slave-data/log.*`;
|
||||
# unlink("$glob_mysql_test_dir/var/slave-data/log.*");
|
||||
`rm -f $opt_vardir/slave-data/log.*`;
|
||||
# unlink("$opt_vardir/slave-data/log.*");
|
||||
}
|
||||
|
||||
sub mysqld_arguments ($$$$$) {
|
||||
@ -1667,8 +1706,7 @@ sub mysqld_arguments ($$$$$) {
|
||||
|
||||
if ( $type eq 'master' )
|
||||
{
|
||||
mtr_add_arg($args, "%s--log-bin=%s/var/log/master-bin", $prefix,
|
||||
$glob_mysql_test_dir);
|
||||
mtr_add_arg($args, "%s--log-bin=%s/log/master-bin", $prefix, $opt_vardir);
|
||||
mtr_add_arg($args, "%s--pid-file=%s", $prefix,
|
||||
$master->[$idx]->{'path_mypid'});
|
||||
mtr_add_arg($args, "%s--port=%d", $prefix,
|
||||
@ -1692,8 +1730,8 @@ sub mysqld_arguments ($$$$$) {
|
||||
# FIXME slave get this option twice?!
|
||||
mtr_add_arg($args, "%s--exit-info=256", $prefix);
|
||||
mtr_add_arg($args, "%s--init-rpl-role=slave", $prefix);
|
||||
mtr_add_arg($args, "%s--log-bin=%s/var/log/slave%s-bin", $prefix,
|
||||
$glob_mysql_test_dir, $sidx); # FIXME use own dir for binlogs
|
||||
mtr_add_arg($args, "%s--log-bin=%s/log/slave%s-bin", $prefix,
|
||||
$opt_vardir, $sidx); # FIXME use own dir for binlogs
|
||||
mtr_add_arg($args, "%s--log-slave-updates", $prefix);
|
||||
# FIXME option duplicated for slave
|
||||
mtr_add_arg($args, "%s--log=%s", $prefix,
|
||||
@ -1703,8 +1741,8 @@ sub mysqld_arguments ($$$$$) {
|
||||
$slave->[$idx]->{'path_mypid'});
|
||||
mtr_add_arg($args, "%s--port=%d", $prefix,
|
||||
$slave->[$idx]->{'path_myport'});
|
||||
mtr_add_arg($args, "%s--relay-log=%s/var/log/slave%s-relay-bin", $prefix,
|
||||
$glob_mysql_test_dir, $sidx);
|
||||
mtr_add_arg($args, "%s--relay-log=%s/log/slave%s-relay-bin", $prefix,
|
||||
$opt_vardir, $sidx);
|
||||
mtr_add_arg($args, "%s--report-host=127.0.0.1", $prefix);
|
||||
mtr_add_arg($args, "%s--report-port=%d", $prefix,
|
||||
$slave->[$idx]->{'path_myport'});
|
||||
@ -1742,13 +1780,13 @@ sub mysqld_arguments ($$$$$) {
|
||||
{
|
||||
if ( $type eq 'master' )
|
||||
{
|
||||
mtr_add_arg($args, "%s--debug=d:t:i:A,%s/var/log/master%s.trace",
|
||||
$prefix, $glob_mysql_test_dir, $sidx);
|
||||
mtr_add_arg($args, "%s--debug=d:t:i:A,%s/log/master%s.trace",
|
||||
$prefix, $opt_vardir, $sidx);
|
||||
}
|
||||
if ( $type eq 'slave' )
|
||||
{
|
||||
mtr_add_arg($args, "%s--debug=d:t:i:A,%s/var/log/slave%s.trace",
|
||||
$prefix, $glob_mysql_test_dir, $sidx);
|
||||
mtr_add_arg($args, "%s--debug=d:t:i:A,%s/log/slave%s.trace",
|
||||
$prefix, $opt_vardir, $sidx);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2000,7 +2038,7 @@ sub run_mysqltest ($$) {
|
||||
if ( $opt_debug )
|
||||
{
|
||||
$cmdline_mysqldump .=
|
||||
" --debug=d:t:A,$glob_mysql_test_dir/var/log/mysqldump.trace";
|
||||
" --debug=d:t:A,$opt_vardir/log/mysqldump.trace";
|
||||
}
|
||||
|
||||
my $cmdline_mysqlbinlog=
|
||||
@ -2009,7 +2047,7 @@ sub run_mysqltest ($$) {
|
||||
if ( $opt_debug )
|
||||
{
|
||||
$cmdline_mysqlbinlog .=
|
||||
" --debug=d:t:A,$glob_mysql_test_dir/var/log/mysqlbinlog.trace";
|
||||
" --debug=d:t:A,$opt_vardir/log/mysqlbinlog.trace";
|
||||
}
|
||||
|
||||
my $cmdline_mysql=
|
||||
@ -2072,13 +2110,13 @@ sub run_mysqltest ($$) {
|
||||
{
|
||||
$exe= "strace"; # FIXME there are ktrace, ....
|
||||
mtr_add_arg($args, "-o");
|
||||
mtr_add_arg($args, "%s/var/log/mysqltest.strace", $glob_mysql_test_dir);
|
||||
mtr_add_arg($args, "%s/log/mysqltest.strace", $opt_vardir);
|
||||
mtr_add_arg($args, "$exe_mysqltest");
|
||||
}
|
||||
|
||||
if ( $opt_timer )
|
||||
{
|
||||
mtr_add_arg($args, "--timer-file=%s/var/log/timer", $glob_mysql_test_dir);
|
||||
mtr_add_arg($args, "--timer-file=%s/log/timer", $opt_vardir);
|
||||
}
|
||||
|
||||
if ( $opt_big_test )
|
||||
@ -2103,8 +2141,7 @@ sub run_mysqltest ($$) {
|
||||
|
||||
if ( $opt_debug )
|
||||
{
|
||||
mtr_add_arg($args, "--debug=d:t:A,%s/var/log/mysqltest.trace",
|
||||
$glob_mysql_test_dir);
|
||||
mtr_add_arg($args, "--debug=d:t:A,%s/log/mysqltest.trace", $opt_vardir);
|
||||
}
|
||||
|
||||
if ( $opt_with_openssl )
|
||||
@ -2126,7 +2163,7 @@ sub run_mysqltest ($$) {
|
||||
mysqld_arguments($args,'master',0,$tinfo->{'master_opt'},[]);
|
||||
}
|
||||
|
||||
return mtr_run_test($exe_mysqltest,$args,$tinfo->{'path'},"",$path_timefile,"");
|
||||
return mtr_run_test($exe,$args,$tinfo->{'path'},"",$path_timefile,"");
|
||||
}
|
||||
|
||||
##############################################################################
|
||||
|
@ -586,10 +586,7 @@ if [ x$SOURCE_DIST = x1 ] ; then
|
||||
NDB_MGM="$BASEDIR/storage/ndb/src/mgmclient/ndb_mgm"
|
||||
|
||||
if [ -n "$USE_PURIFY" ] ; then
|
||||
PSUP="$MYSQL_TEST_DIR/purify.suppress"
|
||||
echo "suppress UMR rw_read_held; mi_open; ha_myisam::open64; handler::ha_open; openfrm" > $PSUP
|
||||
echo "suppress UMR my_end; main" >> $PSUP
|
||||
echo "suppress UMR _doprnt; fprintf; my_end; main" >> $PSUP
|
||||
PSUP="$MYSQL_TEST_DIR/suppress.purify"
|
||||
PURIFYOPTIONS="-windows=no -log-file=%v.purifylog -append-logfile -add-suppression-files=$PSUP"
|
||||
if [ -f "${MYSQL_TEST}-purify" ] ; then
|
||||
MYSQL_TEST="${MYSQL_TEST}-purify"
|
||||
@ -1705,11 +1702,11 @@ run_testcase ()
|
||||
$ECHO "$RES$RES_SPACE [ pass ] $TIMER"
|
||||
else
|
||||
# why the following ``if'' ? That is why res==1 is special ?
|
||||
if [ $res = 2 ]; then
|
||||
if [ $res = 62 ]; then
|
||||
skip_inc
|
||||
$ECHO "$RES$RES_SPACE [ skipped ]"
|
||||
else
|
||||
if [ $res -gt 2 ]; then
|
||||
if [ $res -ne 1 ]; then
|
||||
$ECHO "mysqltest returned unexpected code $res, it has probably crashed" >> $TIMEFILE
|
||||
fi
|
||||
total_inc
|
||||
|
@ -303,6 +303,129 @@ ALTER TABLE t1 DISABLE KEYS;
|
||||
INSERT DELAYED INTO t1 VALUES(1),(2),(3);
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
Host varchar(16) binary NOT NULL default '',
|
||||
User varchar(16) binary NOT NULL default '',
|
||||
PRIMARY KEY (Host,User)
|
||||
) ENGINE=MyISAM;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
LOCK TABLES t1 WRITE;
|
||||
INSERT INTO t1 VALUES ('localhost','root'),('localhost',''),('games','monty');
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 3 NULL NULL BTREE
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
UNLOCK TABLES;
|
||||
CHECK TABLES t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
Host varchar(16) binary NOT NULL default '',
|
||||
User varchar(16) binary NOT NULL default '',
|
||||
PRIMARY KEY (Host,User),
|
||||
KEY (Host)
|
||||
) ENGINE=MyISAM;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
|
||||
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
|
||||
LOCK TABLES t1 WRITE;
|
||||
INSERT INTO t1 VALUES ('localhost','root'),('localhost','');
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 2 NULL NULL BTREE
|
||||
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 2 NULL NULL BTREE
|
||||
t1 1 Host 1 Host A 1 NULL NULL BTREE
|
||||
UNLOCK TABLES;
|
||||
CHECK TABLES t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
LOCK TABLES t1 WRITE;
|
||||
ALTER TABLE t1 RENAME t2;
|
||||
UNLOCK TABLES;
|
||||
select * from t2;
|
||||
Host User
|
||||
localhost
|
||||
localhost root
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t1 (
|
||||
Host varchar(16) binary NOT NULL default '',
|
||||
User varchar(16) binary NOT NULL default '',
|
||||
PRIMARY KEY (Host,User),
|
||||
KEY (Host)
|
||||
) ENGINE=MyISAM;
|
||||
LOCK TABLES t1 WRITE;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
|
||||
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
|
||||
DROP TABLE t1;
|
||||
create table t1 (a int);
|
||||
alter table t1 rename to `t1\\`;
|
||||
ERROR 42000: Incorrect table name 't1\\'
|
||||
rename table t1 to `t1\\`;
|
||||
ERROR 42000: Incorrect table name 't1\\'
|
||||
drop table t1;
|
||||
drop table if exists t1, t2;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't1'
|
||||
Note 1051 Unknown table 't2'
|
||||
create table t1 ( a varchar(10) not null primary key ) engine=myisam;
|
||||
create table t2 ( a varchar(10) not null primary key ) engine=merge union=(t1);
|
||||
flush tables;
|
||||
alter table t1 modify a varchar(10);
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` varchar(10) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`)
|
||||
flush tables;
|
||||
alter table t1 modify a varchar(10) not null;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` varchar(10) NOT NULL,
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=MRG_MyISAM DEFAULT CHARSET=latin1 UNION=(`t1`)
|
||||
drop table if exists t1, t2;
|
||||
create table t1 (a int, b int, c int, d int, e int, f int, g int, h int,i int, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
|
||||
insert into t1 (a) values(1);
|
||||
show table status like 't1';
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 MyISAM 10 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
|
||||
alter table t1 modify a int;
|
||||
show table status like 't1';
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 MyISAM 10 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
|
||||
drop table t1;
|
||||
create table t1 (a int not null, b int not null, c int not null, d int not null, e int not null, f int not null, g int not null, h int not null,i int not null, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
|
||||
insert into t1 (a) values(1);
|
||||
Warnings:
|
||||
Warning 1364 Field 'b' doesn't have a default value
|
||||
Warning 1364 Field 'c' doesn't have a default value
|
||||
Warning 1364 Field 'd' doesn't have a default value
|
||||
Warning 1364 Field 'e' doesn't have a default value
|
||||
Warning 1364 Field 'f' doesn't have a default value
|
||||
Warning 1364 Field 'g' doesn't have a default value
|
||||
Warning 1364 Field 'h' doesn't have a default value
|
||||
Warning 1364 Field 'i' doesn't have a default value
|
||||
show table status like 't1';
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 MyISAM 10 Fixed 1 37 X X X X X X X X latin1_swedish_ci NULL
|
||||
drop table t1;
|
||||
set names koi8r;
|
||||
create table t1 (a char(10) character set koi8r);
|
||||
insert into t1 values ('<27><><EFBFBD><EFBFBD>');
|
||||
@ -382,75 +505,6 @@ t1 CREATE TABLE `t1` (
|
||||
`mytext` longtext character set latin1 collate latin1_general_cs
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin2
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
Host varchar(16) binary NOT NULL default '',
|
||||
User varchar(16) binary NOT NULL default '',
|
||||
PRIMARY KEY (Host,User)
|
||||
) ENGINE=MyISAM;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
LOCK TABLES t1 WRITE;
|
||||
INSERT INTO t1 VALUES ('localhost','root'),('localhost',''),('games','monty');
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 3 NULL NULL BTREE
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
UNLOCK TABLES;
|
||||
CHECK TABLES t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (
|
||||
Host varchar(16) binary NOT NULL default '',
|
||||
User varchar(16) binary NOT NULL default '',
|
||||
PRIMARY KEY (Host,User),
|
||||
KEY (Host)
|
||||
) ENGINE=MyISAM;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
|
||||
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
|
||||
LOCK TABLES t1 WRITE;
|
||||
INSERT INTO t1 VALUES ('localhost','root'),('localhost','');
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 2 NULL NULL BTREE
|
||||
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 2 NULL NULL BTREE
|
||||
t1 1 Host 1 Host A 1 NULL NULL BTREE
|
||||
UNLOCK TABLES;
|
||||
CHECK TABLES t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
LOCK TABLES t1 WRITE;
|
||||
ALTER TABLE t1 RENAME t2;
|
||||
UNLOCK TABLES;
|
||||
select * from t2;
|
||||
Host User
|
||||
localhost
|
||||
localhost root
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t1 (
|
||||
Host varchar(16) binary NOT NULL default '',
|
||||
User varchar(16) binary NOT NULL default '',
|
||||
PRIMARY KEY (Host,User),
|
||||
KEY (Host)
|
||||
) ENGINE=MyISAM;
|
||||
LOCK TABLES t1 WRITE;
|
||||
ALTER TABLE t1 DISABLE KEYS;
|
||||
SHOW INDEX FROM t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 0 PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||
t1 0 PRIMARY 2 User A 0 NULL NULL BTREE
|
||||
t1 1 Host 1 Host A NULL NULL NULL BTREE disabled
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a int PRIMARY KEY, b INT UNIQUE);
|
||||
ALTER TABLE t1 DROP PRIMARY KEY;
|
||||
SHOW CREATE TABLE t1;
|
||||
@ -469,12 +523,6 @@ alter table t1 drop key no_such_key;
|
||||
ERROR 42000: Can't DROP 'no_such_key'; check that column/key exists
|
||||
alter table t1 drop key a;
|
||||
drop table t1;
|
||||
create table t1 (a int);
|
||||
alter table t1 rename to `t1\\`;
|
||||
ERROR 42000: Incorrect table name 't1\\'
|
||||
rename table t1 to `t1\\`;
|
||||
ERROR 42000: Incorrect table name 't1\\'
|
||||
drop table t1;
|
||||
create table t1 (a text) character set koi8r;
|
||||
insert into t1 values (_koi8r'<27><><EFBFBD><EFBFBD>');
|
||||
select hex(a) from t1;
|
||||
|
@ -341,3 +341,17 @@ a b
|
||||
2 3
|
||||
3 4
|
||||
drop table t1;
|
||||
CREATE TABLE t1 ( a INT AUTO_INCREMENT, b BLOB, PRIMARY KEY (a,b(10)));
|
||||
INSERT INTO t1 (b) VALUES ('aaaa');
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (b) VALUES ('');
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
INSERT INTO t1 (b) VALUES ('bbbb');
|
||||
CHECK TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE IF EXISTS t1;
|
||||
|
@ -606,6 +606,24 @@ ucs2_bin 00610009
|
||||
ucs2_bin 0061
|
||||
ucs2_bin 00610020
|
||||
drop table t1;
|
||||
select hex(substr(_ucs2 0x00e400e50068,1));
|
||||
hex(substr(_ucs2 0x00e400e50068,1))
|
||||
00E400E50068
|
||||
select hex(substr(_ucs2 0x00e400e50068,2));
|
||||
hex(substr(_ucs2 0x00e400e50068,2))
|
||||
00E50068
|
||||
select hex(substr(_ucs2 0x00e400e50068,3));
|
||||
hex(substr(_ucs2 0x00e400e50068,3))
|
||||
0068
|
||||
select hex(substr(_ucs2 0x00e400e50068,-1));
|
||||
hex(substr(_ucs2 0x00e400e50068,-1))
|
||||
0068
|
||||
select hex(substr(_ucs2 0x00e400e50068,-2));
|
||||
hex(substr(_ucs2 0x00e400e50068,-2))
|
||||
00E50068
|
||||
select hex(substr(_ucs2 0x00e400e50068,-3));
|
||||
hex(substr(_ucs2 0x00e400e50068,-3))
|
||||
00E400E50068
|
||||
SET NAMES latin1;
|
||||
SET collation_connection='ucs2_swedish_ci';
|
||||
CREATE TABLE t1 (Field1 int(10) default '0');
|
||||
|
@ -167,7 +167,7 @@ count(*)
|
||||
150
|
||||
EXPLAIN SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 32 NULL 7 Using where
|
||||
1 SIMPLE t1 range g g 32 NULL 8 Using where
|
||||
SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
|
||||
fid AsText(g)
|
||||
1 LINESTRING(150 150,150 150)
|
||||
|
@ -287,7 +287,7 @@ b i421 l421
|
||||
b m422 p422
|
||||
explain select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 9 Using where; Using index for group-by
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
||||
explain select a1,a2,b,min(c),max(c) from t1 where a1 >= 'b' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
||||
@ -317,22 +317,22 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
||||
explain select a1, max(c) from t1 where a1 in ('a','b','d') group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 13 Using where; Using index for group-by
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 14 Using where; Using index for group-by
|
||||
explain select a1,a2,b, max(c) from t2 where a1 < 'd' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 12 Using where; Using index for group-by
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 14 Using where; Using index for group-by
|
||||
explain select a1,a2,b,min(c),max(c) from t2 where a1 < 'd' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 12 Using where; Using index for group-by
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 14 Using where; Using index for group-by
|
||||
explain select a1,a2,b,min(c),max(c) from t2 where a1 >= 'b' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 16 Using where; Using index for group-by
|
||||
explain select a1,a2,b, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 18 Using where; Using index for group-by
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 17 Using where; Using index for group-by
|
||||
explain select a1, max(c) from t2 where a1 >= 'c' or a1 < 'b' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 18 Using where; Using index for group-by
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 17 Using where; Using index for group-by
|
||||
explain select a1,a2,b,min(c),max(c) from t2 where a1 >= 'c' or a2 < 'b' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 21 Using where; Using index for group-by
|
||||
@ -353,7 +353,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 16 Using where; Using index for group-by
|
||||
explain select a1, max(c) from t2 where a1 in ('a','b','d') group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 13 Using where; Using index for group-by
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 14 Using where; Using index for group-by
|
||||
select a1,a2,b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
|
||||
a1 a2 b min(c) max(c)
|
||||
a a a a111 d111
|
||||
@ -1398,10 +1398,10 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range NULL idx_t2_1 163 NULL 21 Using where; Using index for group-by
|
||||
explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c < 'h112') or (c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122')) group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 17 Using where; Using index for group-by
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 16 Using where; Using index for group-by
|
||||
explain select a1,a2,b,min(c) from t2 where ((a1 > 'a') or (a1 < '9')) and ((a2 >= 'b') and (a2 < 'z')) and (b = 'a') and ((c = 'j121') or (c > 'k121' and c < 'm122') or (c > 'o122') or (c < 'h112') or (c = 'c111')) group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 17 Using where; Using index for group-by
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 163 NULL 16 Using where; Using index for group-by
|
||||
explain select a1,a2,b,min(c) from t2 where (a1 > 'a') and (a2 > 'a') and (b = 'c') group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range idx_t2_0,idx_t2_1,idx_t2_2 idx_t2_1 146 NULL 16 Using where; Using index for group-by
|
||||
@ -1824,16 +1824,16 @@ ord(a1) + count(distinct a1,a2,b)
|
||||
104
|
||||
explain select a1,a2,b, concat(min(c), max(c)) from t1 where a1 < 'd' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 9 Using where; Using index for group-by
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
||||
explain select concat(a1,min(c)),b from t1 where a1 < 'd' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 9 Using where; Using index for group-by
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
||||
explain select concat(a1,min(c)),b,max(c) from t1 where a1 < 'd' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 9 Using where; Using index for group-by
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
||||
explain select concat(a1,a2),b,min(c),max(c) from t1 where a1 < 'd' group by a1,a2,b;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 9 Using where; Using index for group-by
|
||||
1 SIMPLE t1 range idx_t1_0,idx_t1_1,idx_t1_2 idx_t1_1 147 NULL 10 Using where; Using index for group-by
|
||||
explain select concat(ord(min(b)),ord(max(b))),min(b),max(b) from t1 group by a1,a2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range NULL idx_t1_1 130 NULL 9 Using index for group-by
|
||||
|
3
mysql-test/r/have_outfile.require
Normal file
3
mysql-test/r/have_outfile.require
Normal file
@ -0,0 +1,3 @@
|
||||
load_file(concat(@tmpdir,"/outfile.test"))
|
||||
Outfile OK
|
||||
|
@ -17,11 +17,11 @@ Table Op Msg_type Msg_text
|
||||
test.t0 analyze status OK
|
||||
explain select * from t0 where key1 < 3 or key1 > 1020;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 range i1 i1 4 NULL 55 Using where
|
||||
1 SIMPLE t0 range i1 i1 4 NULL 78 Using where
|
||||
explain
|
||||
select * from t0 where key1 < 3 or key2 > 1020;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 31 Using sort_union(i1,i2); Using where
|
||||
1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 45 Using sort_union(i1,i2); Using where
|
||||
select * from t0 where key1 < 3 or key2 > 1020;
|
||||
key1 key2 key3 key4 key5 key6 key7 key8
|
||||
1 1 1 1 1 1 1 1023
|
||||
@ -36,7 +36,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
explain
|
||||
select * from t0 where (key1 > 30 and key1<35) or (key2 >32 and key2 < 40);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 9 Using sort_union(i1,i2); Using where
|
||||
1 SIMPLE t0 index_merge i1,i2 i1,i2 4,4 NULL 11 Using sort_union(i1,i2); Using where
|
||||
select * from t0 where (key1 > 30 and key1<35) or (key2 >32 and key2 < 40);
|
||||
key1 key2 key3 key4 key5 key6 key7 key8
|
||||
31 31 31 31 31 31 31 993
|
||||
@ -90,7 +90,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
explain select key1 from t0 where (key1 <=> null) or (key1 < 5) or
|
||||
(key3=10) or (key4 <=> null);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 index_merge i1,i3,i4 i1,i3 4,4 NULL 5 Using sort_union(i1,i3); Using where
|
||||
1 SIMPLE t0 index_merge i1,i3,i4 i1,i3 4,4 NULL 6 Using sort_union(i1,i3); Using where
|
||||
explain select * from t0 where
|
||||
(key1 < 3 or key2 < 3) and (key3 < 4 or key4 < 4) and (key5 < 5 or key6 < 5);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
@ -113,7 +113,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
explain select * from t0 where
|
||||
(key1 < 3 or key2 < 3) and (key3 < 100);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 range i1,i2,i3 i3 4 NULL 96 Using where
|
||||
1 SIMPLE t0 range i1,i2,i3 i3 4 NULL 95 Using where
|
||||
explain select * from t0 where
|
||||
(key1 < 3 or key2 < 3) and (key3 < 1000);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
@ -152,7 +152,7 @@ explain select * from t0 where
|
||||
or
|
||||
((key7 <7 or key8 < 4) and (key5 < 5 or key6 < 6));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 index_merge i1,i2,i3,i5,i6,i7,i8 i3,i5,i7,i8 4,4,4,4 NULL 21 Using sort_union(i3,i5,i7,i8); Using where
|
||||
1 SIMPLE t0 index_merge i1,i2,i3,i5,i6,i7,i8 i3,i5,i7,i8 4,4,4,4 NULL 20 Using sort_union(i3,i5,i7,i8); Using where
|
||||
explain select * from t0 where
|
||||
((key3 <5 or key5 < 4) and (key1 < 4 or key2 < 4))
|
||||
or
|
||||
@ -257,7 +257,7 @@ explain
|
||||
select * from t0,t1 where (t0.key1=t1.key1) and
|
||||
(t0.key1=3 or t0.key2=4) and t1.key1<200;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t0 range i1,i2 i1 4 NULL 179 Using where
|
||||
1 SIMPLE t0 ALL i1,i2 NULL NULL NULL 1024 Using where
|
||||
1 SIMPLE t1 ref i1 i1 4 test.t0.key1 1
|
||||
explain
|
||||
select * from t0,t1 where (t0.key1=t1.key1) and
|
||||
@ -345,8 +345,8 @@ from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
|
||||
where (A.key1 < 500000 or A.key2 < 3)
|
||||
and (B.key1 < 500000 or B.key2 < 3);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1016 Using sort_union(i1,i2); Using where
|
||||
1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1016 Using sort_union(i1,i2); Using where
|
||||
1 SIMPLE A index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where
|
||||
1 SIMPLE B index_merge i1,i2 i1,i2 4,4 NULL 1013 Using sort_union(i1,i2); Using where
|
||||
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
|
||||
from t0 as A force index(i1,i2), t0 as B force index (i1,i2)
|
||||
where (A.key1 < 500000 or A.key2 < 3)
|
||||
@ -371,11 +371,11 @@ alter table t0 add filler1 char(200), add filler2 char(200), add filler3 char(20
|
||||
update t0 set key2=1, key3=1, key4=1, key5=1,key6=1,key7=1 where key7 < 500;
|
||||
explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
|
||||
from t0 as A, t0 as B
|
||||
where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7or16 = 1 or A.key8=1)
|
||||
and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key7or16 = 1 or B.key8=1);
|
||||
where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key# = 1 or A.key8=1)
|
||||
and (B.key1 = 1 and B.key2 = 1 and B.key3 = 1 and B.key4=1 and B.key5=1 and B.key6=1 and B.key# = 1 or B.key8=1);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE A index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL 7or16 Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
|
||||
1 SIMPLE B index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL 7or16 Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
|
||||
1 SIMPLE A index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
|
||||
1 SIMPLE B index_merge i1,i2,i3,i4,i5,i6,i7?,i8 i2,i3,i4,i5,i6,i7?,i8 X NULL # Using union(intersect(i2,i3,i4,i5,i6,i7?),i8); Using where
|
||||
select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
|
||||
from t0 as A, t0 as B
|
||||
where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
|
||||
|
@ -4,13 +4,13 @@ count(*)
|
||||
64801
|
||||
explain select key1,key2 from t1 where key1=100 and key2=100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 3 Using intersect(key1,key2); Using where; Using index
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 58 Using intersect(key1,key2); Using where; Using index
|
||||
select key1,key2 from t1 where key1=100 and key2=100;
|
||||
key1 key2
|
||||
100 100
|
||||
explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 8 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 154 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||
select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||
key1 key2 key3 key4 filler1
|
||||
100 100 100 100 key1-key2-key3-key4
|
||||
@ -18,21 +18,21 @@ insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, -1, -1, 'key1
|
||||
insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, 100, 100, 'key4-key3');
|
||||
explain select key1,key2,filler1 from t1 where key1=100 and key2=100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 3 Using intersect(key1,key2); Using where
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 58 Using intersect(key1,key2); Using where
|
||||
select key1,key2,filler1 from t1 where key1=100 and key2=100;
|
||||
key1 key2 filler1
|
||||
100 100 key1-key2-key3-key4
|
||||
100 100 key1-key2
|
||||
explain select key1,key2 from t1 where key1=100 and key2=100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 3 Using intersect(key1,key2); Using where; Using index
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 58 Using intersect(key1,key2); Using where; Using index
|
||||
select key1,key2 from t1 where key1=100 and key2=100;
|
||||
key1 key2
|
||||
100 100
|
||||
100 100
|
||||
explain select key1,key2,key3,key4 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 8 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 154 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||
select key1,key2,key3,key4 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||
key1 key2 key3 key4
|
||||
100 100 100 100
|
||||
@ -40,7 +40,7 @@ key1 key2 key3 key4
|
||||
-1 -1 100 100
|
||||
explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 8 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 154 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||
select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||
key1 key2 key3 key4 filler1
|
||||
100 100 100 100 key1-key2-key3-key4
|
||||
@ -48,14 +48,14 @@ key1 key2 key3 key4 filler1
|
||||
-1 -1 100 100 key4-key3
|
||||
explain select key1,key2,key3 from t1 where key1=100 and key2=100 and key3=100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2,key3 key1,key2,key3 5,5,5 NULL 1 Using intersect(key1,key2,key3); Using where; Using index
|
||||
1 SIMPLE t1 index_merge key1,key2,key3 key1,key2,key3 5,5,5 NULL 2 Using intersect(key1,key2,key3); Using where; Using index
|
||||
select key1,key2,key3 from t1 where key1=100 and key2=100 and key3=100;
|
||||
key1 key2 key3
|
||||
100 100 100
|
||||
insert into t1 (key1,key2,key3,key4,filler1) values (101,101,101,101, 'key1234-101');
|
||||
explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=101;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2,key3 key1,key2,key3 5,5,5 NULL 5 Using union(intersect(key1,key2),key3); Using where
|
||||
1 SIMPLE t1 index_merge key1,key2,key3 key1,key2,key3 5,5,5 NULL 83 Using union(intersect(key1,key2),key3); Using where
|
||||
select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=101;
|
||||
key1 key2 key3 key4 filler1
|
||||
100 100 100 100 key1-key2-key3-key4
|
||||
@ -72,19 +72,19 @@ select key1,key2,filler1 from t1 where key2=100 and key2=200;
|
||||
key1 key2 filler1
|
||||
explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 8 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 152 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||
select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||
key1 key2 key3 key4 filler1
|
||||
-1 -1 100 100 key4-key3
|
||||
delete from t1 where key3=100 and key4=100;
|
||||
explain select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 8 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key1,key2,key3,key4 5,5,5,5 NULL 152 Using union(intersect(key1,key2),intersect(key3,key4)); Using where
|
||||
select key1,key2,key3,key4,filler1 from t1 where key1=100 and key2=100 or key3=100 and key4=100;
|
||||
key1 key2 key3 key4 filler1
|
||||
explain select key1,key2 from t1 where key1=100 and key2=100;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 3 Using intersect(key1,key2); Using where; Using index
|
||||
1 SIMPLE t1 index_merge key1,key2 key1,key2 5,5 NULL 57 Using intersect(key1,key2); Using where; Using index
|
||||
select key1,key2 from t1 where key1=100 and key2=100;
|
||||
key1 key2
|
||||
insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, 200, 200,'key1-key2-key3-key4-1');
|
||||
@ -92,7 +92,7 @@ insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, 200, 200,'key
|
||||
insert into t1 (key1, key2, key3, key4, filler1) values (100, 100, 200, 200,'key1-key2-key3-key4-3');
|
||||
explain select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key3,key1,key2,key4 5,5,5,5 NULL 16 Using union(key3,intersect(key1,key2),key4); Using where
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key3,key1,key2,key4 5,5,5,5 NULL 136 Using union(key3,intersect(key1,key2),key4); Using where
|
||||
select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
|
||||
key1 key2 key3 key4 filler1
|
||||
100 100 200 200 key1-key2-key3-key4-3
|
||||
@ -101,7 +101,7 @@ key1 key2 key3 key4 filler1
|
||||
insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, -1, 200,'key4');
|
||||
explain select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key3,key1,key2,key4 5,5,5,5 NULL 18 Using union(key3,intersect(key1,key2),key4); Using where
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key3,key1,key2,key4 5,5,5,5 NULL 146 Using union(key3,intersect(key1,key2),key4); Using where
|
||||
select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
|
||||
key1 key2 key3 key4 filler1
|
||||
100 100 200 200 key1-key2-key3-key4-3
|
||||
@ -111,7 +111,7 @@ key1 key2 key3 key4 filler1
|
||||
insert into t1 (key1, key2, key3, key4, filler1) values (-1, -1, 200, -1,'key3');
|
||||
explain select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key3,key1,key2,key4 5,5,5,5 NULL 20 Using union(key3,intersect(key1,key2),key4); Using where
|
||||
1 SIMPLE t1 index_merge key1,key2,key3,key4 key3,key1,key2,key4 5,5,5,5 NULL 156 Using union(key3,intersect(key1,key2),key4); Using where
|
||||
select key1,key2,key3,key4,filler1 from t1 where key3=200 or (key1=100 and key2=100) or key4=200;
|
||||
key1 key2 key3 key4 filler1
|
||||
100 100 200 200 key1-key2-key3-key4-3
|
||||
@ -121,50 +121,50 @@ key1 key2 key3 key4 filler1
|
||||
-1 -1 200 -1 key3
|
||||
explain select * from t1 where st_a=1 and st_b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b st_a,st_b 4,4 NULL 2508 Using intersect(st_a,st_b); Using where
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b st_a,st_b 4,4 NULL 2637 Using intersect(st_a,st_b); Using where
|
||||
explain select st_a,st_b from t1 where st_a=1 and st_b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b st_a,st_b 4,4 NULL 2508 Using intersect(st_a,st_b); Using where; Using index
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b st_a,st_b 4,4 NULL 2637 Using intersect(st_a,st_b); Using where; Using index
|
||||
explain select st_a from t1 ignore index (st_a) where st_a=1 and st_b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,stb_swt1a_2b,stb_swt1b,st_b st_b 4 const 14720 Using where
|
||||
1 SIMPLE t1 ref sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,stb_swt1a_2b,stb_swt1b,st_b st_b 4 const 15093 Using where
|
||||
explain select * from t1 where st_a=1 and swt1a=1 and swt2a=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a sta_swt12a 12 const,const,const 958
|
||||
1 SIMPLE t1 ref sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a sta_swt21a 12 const,const,const 971
|
||||
explain select * from t1 where st_b=1 and swt1b=1 and swt2b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref stb_swt1a_2b,stb_swt1b,st_b stb_swt1b 8 const,const 3757 Using where
|
||||
1 SIMPLE t1 ref stb_swt1a_2b,stb_swt1b,st_b stb_swt1a_2b 8 const,const 3879 Using where
|
||||
explain select * from t1 where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt12a,stb_swt1a_2b 12,12 NULL 42 Using intersect(sta_swt12a,stb_swt1a_2b); Using where
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt12a,stb_swt1a_2b 12,12 NULL 44 Using intersect(sta_swt12a,stb_swt1a_2b); Using where
|
||||
explain select * from t1 ignore index (sta_swt21a, stb_swt1a_2b)
|
||||
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,st_a,stb_swt1b,st_b sta_swt12a,stb_swt1b 12,8 NULL 42 Using intersect(sta_swt12a,stb_swt1b); Using where
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,st_a,stb_swt1b,st_b sta_swt12a,stb_swt1b 12,8 NULL 44 Using intersect(sta_swt12a,stb_swt1b); Using where
|
||||
explain select * from t1 ignore index (sta_swt21a, sta_swt12a, stb_swt1a_2b)
|
||||
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge sta_swt1a,sta_swt2a,st_a,stb_swt1b,st_b sta_swt1a,sta_swt2a,stb_swt1b 8,8,8 NULL 41 Using intersect(sta_swt1a,sta_swt2a,stb_swt1b); Using where
|
||||
1 SIMPLE t1 index_merge sta_swt1a,sta_swt2a,st_a,stb_swt1b,st_b sta_swt1a,sta_swt2a,stb_swt1b 8,8,8 NULL 43 Using intersect(sta_swt1a,sta_swt2a,stb_swt1b); Using where
|
||||
explain select * from t1 ignore index (sta_swt21a, sta_swt12a, stb_swt1a_2b, stb_swt1b)
|
||||
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1 and swt2b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge sta_swt1a,sta_swt2a,st_a,st_b sta_swt1a,sta_swt2a,st_b 8,8,4 NULL 159 Using intersect(sta_swt1a,sta_swt2a,st_b); Using where
|
||||
1 SIMPLE t1 index_merge sta_swt1a,sta_swt2a,st_a,st_b sta_swt1a,sta_swt2a,st_b 8,8,4 NULL 168 Using intersect(sta_swt1a,sta_swt2a,st_b); Using where
|
||||
explain select * from t1
|
||||
where st_a=1 and swt1a=1 and swt2a=1 and st_b=1 and swt1b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt12a,stb_swt1a_2b 12,12 NULL 42 Using intersect(sta_swt12a,stb_swt1a_2b); Using where
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt12a,stb_swt1a_2b 12,12 NULL 44 Using intersect(sta_swt12a,stb_swt1a_2b); Using where
|
||||
explain select * from t1
|
||||
where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt1a,stb_swt1b 8,8 NULL 163 Using intersect(sta_swt1a,stb_swt1b); Using where
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt1a,stb_swt1b 8,8 NULL 174 Using intersect(sta_swt1a,stb_swt1b); Using where
|
||||
explain select st_a from t1
|
||||
where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt1a,stb_swt1b 8,8 NULL 163 Using intersect(sta_swt1a,stb_swt1b); Using where; Using index
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt1a,stb_swt1b 8,8 NULL 174 Using intersect(sta_swt1a,stb_swt1b); Using where; Using index
|
||||
explain select st_a from t1
|
||||
where st_a=1 and swt1a=1 and st_b=1 and swt1b=1 and swt1b=1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt1a,stb_swt1b 8,8 NULL 163 Using intersect(sta_swt1a,stb_swt1b); Using where; Using index
|
||||
1 SIMPLE t1 index_merge sta_swt12a,sta_swt1a,sta_swt2a,sta_swt21a,st_a,stb_swt1a_2b,stb_swt1b,st_b sta_swt1a,stb_swt1b 8,8 NULL 174 Using intersect(sta_swt1a,stb_swt1b); Using where; Using index
|
||||
drop table t0,t1;
|
||||
create table t2 (
|
||||
a char(10),
|
||||
|
@ -2397,3 +2397,7 @@ select distinct concat(a, b) from t1;
|
||||
concat(a, b)
|
||||
11113333
|
||||
drop table t1;
|
||||
CREATE TABLE t1 ( a char(10) ) ENGINE=InnoDB;
|
||||
SELECT a FROM t1 WHERE MATCH (a) AGAINST ('test' IN BOOLEAN MODE);
|
||||
ERROR HY000: The used table type doesn't support FULLTEXT indexes
|
||||
DROP TABLE t1;
|
||||
|
@ -167,7 +167,7 @@ a b c VALUES(a)
|
||||
2 1 11 NULL
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
create table t1 (a int not null unique);
|
||||
create table t1 (a int not null unique) engine=myisam;
|
||||
insert into t1 values (1),(2);
|
||||
insert ignore into t1 select 1 on duplicate key update a=2;
|
||||
select * from t1;
|
||||
@ -179,4 +179,11 @@ select * from t1;
|
||||
a
|
||||
1
|
||||
3
|
||||
insert into t1 select 1 on duplicate key update a=2;
|
||||
select * from t1;
|
||||
a
|
||||
2
|
||||
3
|
||||
insert into t1 select a from t1 on duplicate key update a=a+1 ;
|
||||
ERROR 23000: Duplicate entry '3' for key 1
|
||||
drop table t1;
|
||||
|
@ -39,7 +39,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range a a 4 NULL 18 Using where
|
||||
explain select * from t3 where a > 10 and a < 20;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 range a a 4 NULL 16 Using where
|
||||
1 SIMPLE t3 range a a 4 NULL 17 Using where
|
||||
select * from t3 where a = 10;
|
||||
a b
|
||||
10 Testing
|
||||
|
@ -1203,3 +1203,60 @@ drop table t1;
|
||||
Got one of the listed errors
|
||||
drop table t1;
|
||||
ERROR 42S02: Unknown table 't1'
|
||||
set @save_concurrent_insert=@@concurrent_insert;
|
||||
set global concurrent_insert=1;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1),(2),(3),(4),(5);
|
||||
lock table t1 read local;
|
||||
insert into t1 values(6),(7);
|
||||
unlock tables;
|
||||
delete from t1 where a>=3 and a<=4;
|
||||
lock table t1 read local;
|
||||
set global concurrent_insert=2;
|
||||
insert into t1 values (8),(9);
|
||||
unlock tables;
|
||||
insert into t1 values (10),(11),(12);
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
11
|
||||
10
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
12
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
drop table t1;
|
||||
create table t1 (a int, b varchar(30) default "hello");
|
||||
insert into t1 (a) values (1),(2),(3),(4),(5);
|
||||
lock table t1 read local;
|
||||
insert into t1 (a) values(6),(7);
|
||||
unlock tables;
|
||||
delete from t1 where a>=3 and a<=4;
|
||||
lock table t1 read local;
|
||||
set global concurrent_insert=2;
|
||||
insert into t1 (a) values (8),(9);
|
||||
unlock tables;
|
||||
insert into t1 (a) values (10),(11),(12);
|
||||
select a from t1;
|
||||
a
|
||||
1
|
||||
2
|
||||
11
|
||||
10
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
12
|
||||
check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
drop table t1;
|
||||
set global concurrent_insert=@save_concurrent_insert;
|
||||
|
@ -170,7 +170,7 @@ insert into t1 select i*2 from t1;
|
||||
insert into t1 values(null);
|
||||
explain select * from t1 where i=2 or i is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref_or_null i i 5 const 10 Using where; Using index
|
||||
1 SIMPLE t1 ref_or_null i i 5 const 9 Using where; Using index
|
||||
select count(*) from t1 where i=2 or i is null;
|
||||
count(*)
|
||||
10
|
||||
@ -179,7 +179,7 @@ Warnings:
|
||||
Warning 1265 Data truncated for column 'i' at row 513
|
||||
explain select * from t1 where i=2 or i is null;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref i i 4 const 8 Using index
|
||||
1 SIMPLE t1 ref i i 4 const 7 Using index
|
||||
select count(*) from t1 where i=2 or i is null;
|
||||
count(*)
|
||||
9
|
||||
|
Binary file not shown.
@ -55,15 +55,15 @@ count(*)
|
||||
4181
|
||||
show status like "key_read%";
|
||||
Variable_name Value
|
||||
Key_read_requests 217
|
||||
Key_reads 45
|
||||
Key_read_requests 294
|
||||
Key_reads 60
|
||||
select count(*) from t1 where b = 'test1';
|
||||
count(*)
|
||||
4181
|
||||
show status like "key_read%";
|
||||
Variable_name Value
|
||||
Key_read_requests 434
|
||||
Key_reads 45
|
||||
Key_read_requests 588
|
||||
Key_reads 60
|
||||
flush tables;
|
||||
flush status;
|
||||
select @@preload_buffer_size;
|
||||
@ -74,15 +74,15 @@ Table Op Msg_type Msg_text
|
||||
test.t1 preload_keys status OK
|
||||
show status like "key_read%";
|
||||
Variable_name Value
|
||||
Key_read_requests 581
|
||||
Key_reads 581
|
||||
Key_read_requests 774
|
||||
Key_reads 774
|
||||
select count(*) from t1 where b = 'test1';
|
||||
count(*)
|
||||
4181
|
||||
show status like "key_read%";
|
||||
Variable_name Value
|
||||
Key_read_requests 798
|
||||
Key_reads 581
|
||||
Key_read_requests 1068
|
||||
Key_reads 774
|
||||
flush tables;
|
||||
flush status;
|
||||
show status like "key_read%";
|
||||
@ -98,15 +98,15 @@ Table Op Msg_type Msg_text
|
||||
test.t1 preload_keys status OK
|
||||
show status like "key_read%";
|
||||
Variable_name Value
|
||||
Key_read_requests 10
|
||||
Key_reads 10
|
||||
Key_read_requests 17
|
||||
Key_reads 17
|
||||
select count(*) from t1 where b = 'test1';
|
||||
count(*)
|
||||
4181
|
||||
show status like "key_read%";
|
||||
Variable_name Value
|
||||
Key_read_requests 227
|
||||
Key_reads 52
|
||||
Key_read_requests 311
|
||||
Key_reads 75
|
||||
flush tables;
|
||||
flush status;
|
||||
show status like "key_read%";
|
||||
@ -123,8 +123,8 @@ test.t1 preload_keys status OK
|
||||
test.t2 preload_keys status OK
|
||||
show status like "key_read%";
|
||||
Variable_name Value
|
||||
Key_read_requests 587
|
||||
Key_reads 587
|
||||
Key_read_requests 785
|
||||
Key_reads 785
|
||||
select count(*) from t1 where b = 'test1';
|
||||
count(*)
|
||||
4181
|
||||
@ -133,8 +133,8 @@ count(*)
|
||||
2584
|
||||
show status like "key_read%";
|
||||
Variable_name Value
|
||||
Key_read_requests 938
|
||||
Key_reads 613
|
||||
Key_read_requests 1266
|
||||
Key_reads 821
|
||||
flush tables;
|
||||
flush status;
|
||||
show status like "key_read%";
|
||||
@ -149,8 +149,8 @@ Warnings:
|
||||
Error 1146 Table 'test.t3' doesn't exist
|
||||
show status like "key_read%";
|
||||
Variable_name Value
|
||||
Key_read_requests 355
|
||||
Key_reads 355
|
||||
Key_read_requests 478
|
||||
Key_reads 478
|
||||
flush tables;
|
||||
flush status;
|
||||
show status like "key_read%";
|
||||
|
@ -1,4 +1,5 @@
|
||||
drop table if exists t1,t2;
|
||||
drop database if exists client_test_db;
|
||||
create table t1
|
||||
(
|
||||
a int primary key,
|
||||
|
@ -290,11 +290,11 @@ t2 1 t2_idx 1 b A NULL NULL NULL YES BTREE
|
||||
prepare stmt4 from ' show table status from test like ''t2%'' ';
|
||||
execute stmt4;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t2 MyISAM 10 Fixed 0 0 0 64424509439 1024 0 NULL # # # latin1_swedish_ci NULL
|
||||
t2 MyISAM 10 Fixed 0 0 0 4222124650659839 1024 0 NULL # # # latin1_swedish_ci NULL
|
||||
prepare stmt4 from ' show table status from test like ''t9%'' ';
|
||||
execute stmt4;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t9 MyISAM 10 Dynamic 2 216 432 4294967295 2048 0 NULL # # # latin1_swedish_ci NULL
|
||||
t9 MyISAM 10 Dynamic 2 216 432 281474976710655 2048 0 NULL # # # latin1_swedish_ci NULL
|
||||
prepare stmt4 from ' show status like ''Threads_running'' ';
|
||||
execute stmt4;
|
||||
Variable_name Value
|
||||
@ -803,4 +803,4 @@ prepare stmt1 from @string ;
|
||||
execute stmt1 ;
|
||||
prepare stmt1 from ' select * from t5 ' ;
|
||||
execute stmt1 ;
|
||||
drop table t5 ;
|
||||
drop table t5, t9;
|
||||
|
@ -1,7 +1,3 @@
|
||||
prepare stmt4 from ' show full processlist ';
|
||||
execute stmt4;
|
||||
Id User Host db Command Time State Info
|
||||
number root localhost test Query time NULL show full processlist
|
||||
test_sequence
|
||||
------ grant/revoke/drop affects a parallel session test ------
|
||||
show grants for second_user@localhost ;
|
||||
@ -91,3 +87,8 @@ revoke all privileges on test.t1 from drop_user@localhost ;
|
||||
prepare stmt3 from ' drop user drop_user@localhost ';
|
||||
ERROR HY000: This command is not supported in the prepared statement protocol yet
|
||||
drop user drop_user@localhost;
|
||||
prepare stmt4 from ' show full processlist ';
|
||||
execute stmt4;
|
||||
Id User Host db Command Time State Info
|
||||
number root localhost test Query time NULL show full processlist
|
||||
deallocate prepare stmt4;
|
||||
|
@ -421,19 +421,19 @@ test.t1 analyze status OK
|
||||
test.t2 analyze status Table is already up to date
|
||||
explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 128 Using where
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 112 Using where
|
||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
||||
explain select * from t1, t2 where t1.uid=t2.uid AND t2.uid > 0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 128 Using where
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 112 Using where
|
||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
||||
explain select * from t1, t2 where t1.uid=t2.uid AND t1.uid != 0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 129 Using where
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 113 Using where
|
||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
||||
explain select * from t1, t2 where t1.uid=t2.uid AND t2.uid != 0;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 129 Using where
|
||||
1 SIMPLE t1 range uid_index uid_index 4 NULL 113 Using where
|
||||
1 SIMPLE t2 ref uid_index uid_index 4 test.t1.uid 38
|
||||
select * from t1, t2 where t1.uid=t2.uid AND t1.uid > 0;
|
||||
id name uid id name uid
|
||||
|
@ -6,3 +6,12 @@ drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
set global slave_net_timeout=100;
|
||||
set global sql_slave_skip_counter=100;
|
||||
show variables like 'slave_compressed_protocol';
|
||||
Variable_name Value
|
||||
slave_compressed_protocol OFF
|
||||
show variables like 'slave_load_tmpdir';
|
||||
Variable_name Value
|
||||
slave_load_tmpdir MYSQL_TEST_DIR/var/tmp/
|
||||
show variables like 'slave_skip_errors';
|
||||
Variable_name Value
|
||||
slave_skip_errors 3,100,137,643,1752
|
||||
|
@ -2482,7 +2482,7 @@ a
|
||||
select distinct distinct * from t1;
|
||||
a
|
||||
select all distinct * from t1;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'distinct * from t1' at line 1
|
||||
ERROR HY000: Incorrect usage of ALL and DISTINCT
|
||||
select distinct all * from t1;
|
||||
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'all * from t1' at line 1
|
||||
ERROR HY000: Incorrect usage of ALL and DISTINCT
|
||||
drop table t1;
|
||||
|
@ -3073,4 +3073,29 @@ update v1 set data = 10|
|
||||
call bug9841()|
|
||||
drop view v1|
|
||||
drop procedure bug9841|
|
||||
drop procedure if exists bug5963|
|
||||
create procedure bug5963_1 () begin declare v int; set v = (select s1 from t3); select v; end;|
|
||||
create table t3 (s1 int)|
|
||||
insert into t3 values (5)|
|
||||
call bug5963_1()|
|
||||
v
|
||||
5
|
||||
call bug5963_1()|
|
||||
v
|
||||
5
|
||||
drop procedure bug5963_1|
|
||||
drop table t3|
|
||||
create procedure bug5963_2 (cfk_value int)
|
||||
begin
|
||||
if cfk_value in (select cpk from t3) then
|
||||
set @x = 5;
|
||||
end if;
|
||||
end;
|
||||
|
|
||||
create table t3 (cpk int)|
|
||||
insert into t3 values (1)|
|
||||
call bug5963_2(1)|
|
||||
call bug5963_2(1)|
|
||||
drop procedure bug5963_2|
|
||||
drop table t3|
|
||||
drop table t1,t2;
|
||||
|
@ -1232,3 +1232,8 @@ INSERT INTO t1 VALUES (DEFAULT,1);
|
||||
Warnings:
|
||||
Warning 1364 Field 'i' doesn't have a default value
|
||||
DROP TABLE t1;
|
||||
set @@sql_mode='traditional';
|
||||
create table t1(a varchar(65537));
|
||||
ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
|
||||
create table t1(a varbinary(65537));
|
||||
ERROR 42000: Column length too big for column 'a' (max = 65535); use BLOB or TEXT instead
|
||||
|
@ -9,7 +9,7 @@ d mediumtext YES NULL
|
||||
e longtext YES NULL
|
||||
CREATE TABLE t2 (a char(255), b varbinary(70000), c varchar(70000000));
|
||||
Warnings:
|
||||
Note 1246 Converting column 'b' from VARCHAR to BLOB
|
||||
Note 1246 Converting column 'b' from VARBINARY to BLOB
|
||||
Note 1246 Converting column 'c' from VARCHAR to TEXT
|
||||
CREATE TABLE t4 (c varchar(65530) character set utf8 not null);
|
||||
Warnings:
|
||||
|
@ -876,3 +876,12 @@ SELECT * FROM t1;
|
||||
f1 f2
|
||||
9999999999999999999999999999999999.00000000000000000000 0.00
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB;
|
||||
INSERT INTO t1 (GRADE) VALUES (151),(252),(343);
|
||||
SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300;
|
||||
GRADE
|
||||
252
|
||||
SELECT GRADE FROM t1 WHERE GRADE= 151;
|
||||
GRADE
|
||||
151
|
||||
DROP TABLE t1;
|
||||
|
@ -117,27 +117,23 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
Warnings:
|
||||
Note 1003 select sql_no_cache 345 AS `@@IDENTITY`,last_insert_id() AS `last_insert_id()`,345 AS `@@identity`
|
||||
set big_tables=OFF, big_tables=ON, big_tables=0, big_tables=1, big_tables="OFF", big_tables="ON";
|
||||
set global concurrent_insert=ON;
|
||||
set global concurrent_insert=2;
|
||||
show variables like 'concurrent_insert';
|
||||
Variable_name Value
|
||||
concurrent_insert ON
|
||||
concurrent_insert 2
|
||||
set global concurrent_insert=1;
|
||||
show variables like 'concurrent_insert';
|
||||
Variable_name Value
|
||||
concurrent_insert ON
|
||||
concurrent_insert 1
|
||||
set global concurrent_insert=0;
|
||||
show variables like 'concurrent_insert';
|
||||
Variable_name Value
|
||||
concurrent_insert OFF
|
||||
set global concurrent_insert=OFF;
|
||||
show variables like 'concurrent_insert';
|
||||
Variable_name Value
|
||||
concurrent_insert OFF
|
||||
concurrent_insert 0
|
||||
set global concurrent_insert=DEFAULT;
|
||||
show variables like 'concurrent_insert';
|
||||
Variable_name Value
|
||||
concurrent_insert ON
|
||||
set global timed_mutexes=1;
|
||||
select @@concurrent_insert;
|
||||
@@concurrent_insert
|
||||
1
|
||||
set global timed_mutexes=ON;
|
||||
show variables like 'timed_mutexes';
|
||||
Variable_name Value
|
||||
timed_mutexes ON
|
||||
@ -281,8 +277,6 @@ select @@global.sql_auto_is_null;
|
||||
ERROR HY000: Variable 'sql_auto_is_null' is a SESSION variable
|
||||
set myisam_max_sort_file_size=100;
|
||||
ERROR HY000: Variable 'myisam_max_sort_file_size' is a GLOBAL variable and should be set with SET GLOBAL
|
||||
set myisam_max_extra_sort_file_size=100;
|
||||
ERROR HY000: Variable 'myisam_max_extra_sort_file_size' is a GLOBAL variable and should be set with SET GLOBAL
|
||||
set @@SQL_WARNINGS=NULL;
|
||||
ERROR 42000: Variable 'sql_warnings' can't be set to the value of 'NULL'
|
||||
set autocommit=1;
|
||||
@ -338,11 +332,6 @@ select @@max_user_connections;
|
||||
@@max_user_connections
|
||||
100
|
||||
set global max_write_lock_count=100;
|
||||
set global myisam_max_extra_sort_file_size=100;
|
||||
select @@myisam_max_extra_sort_file_size;
|
||||
@@myisam_max_extra_sort_file_size
|
||||
100
|
||||
set global myisam_max_sort_file_size=100;
|
||||
set myisam_sort_buffer_size=100;
|
||||
set net_buffer_length=100;
|
||||
set net_read_timeout=100;
|
||||
|
@ -1,4 +1,4 @@
|
||||
drop table if exists t1,t2,`t1a``b`,v1,v2,v3,v4,v5,v6;
|
||||
drop table if exists t1,t2,t9,`t1a``b`,v1,v2,v3,v4,v5,v6;
|
||||
drop view if exists t1,t2,`t1a``b`,v1,v2,v3,v4,v5,v6;
|
||||
drop database if exists mysqltest;
|
||||
use test;
|
||||
@ -51,7 +51,7 @@ explain extended select c from v1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
|
||||
Warnings:
|
||||
Note 1003 select (`test`.`t1`.`b` + 1) AS `c` from `test`.`v1`
|
||||
Note 1003 select (`test`.`t1`.`b` + 1) AS `c` from `test`.`t1`
|
||||
create algorithm=temptable view v2 (c) as select b+1 from t1;
|
||||
show create view v2;
|
||||
View Create View
|
||||
@ -85,7 +85,7 @@ explain extended select c from v3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 5
|
||||
Warnings:
|
||||
Note 1003 select ((`test`.`t1`.`b` + 1) + 1) AS `c` from `test`.`v3`
|
||||
Note 1003 select ((`test`.`t1`.`b` + 1) + 1) AS `c` from `test`.`t1`
|
||||
create algorithm=temptable view v4 (c) as select c+1 from v2;
|
||||
select c from v4;
|
||||
c
|
||||
@ -114,7 +114,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY <derived3> ALL NULL NULL NULL NULL 5
|
||||
3 DERIVED t1 ALL NULL NULL NULL NULL 5
|
||||
Warnings:
|
||||
Note 1003 select (`v2`.`c` + 1) AS `c` from `test`.`v5`
|
||||
Note 1003 select (`v2`.`c` + 1) AS `c` from `test`.`v2`
|
||||
create algorithm=temptable view v6 (c) as select c+1 from v1;
|
||||
select c from v6;
|
||||
c
|
||||
@ -149,7 +149,7 @@ v5 VIEW
|
||||
v6 VIEW
|
||||
show table status;
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 MyISAM 10 Fixed 5 9 45 38654705663 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
t1 MyISAM 10 Fixed 5 9 45 2533274790395903 1024 0 NULL # # NULL latin1_swedish_ci NULL
|
||||
v1 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v2 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
v3 NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL # # NULL NULL NULL NULL view
|
||||
@ -204,21 +204,6 @@ create table t1 (a int);
|
||||
insert into t1 values (1), (2), (3);
|
||||
create view v1 (a) as select a+1 from t1;
|
||||
create view v2 (a) as select a-1 from t1;
|
||||
select * from t1 natural left join v1;
|
||||
a a
|
||||
1 NULL
|
||||
2 2
|
||||
3 3
|
||||
select * from v2 natural left join t1;
|
||||
a a
|
||||
0 NULL
|
||||
1 1
|
||||
2 2
|
||||
select * from v2 natural left join v1;
|
||||
a a
|
||||
0 NULL
|
||||
1 NULL
|
||||
2 2
|
||||
drop view v1, v2;
|
||||
drop table t1;
|
||||
create table t1 (a int);
|
||||
@ -378,7 +363,7 @@ explain extended select * from v1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 5 Using where
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t1`.`b` AS `c` from `test`.`v1` where (`test`.`t1`.`a` < 3)
|
||||
Note 1003 select `test`.`t1`.`b` AS `c` from `test`.`t1` where (`test`.`t1`.`a` < 3)
|
||||
update v1 set c=c+1;
|
||||
select * from t1;
|
||||
a b
|
||||
@ -1393,7 +1378,7 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 PRIMARY t1 ALL NULL NULL NULL NULL 3
|
||||
1 PRIMARY t2 ALL NULL NULL NULL NULL 2
|
||||
Warnings:
|
||||
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`v1` left join `test`.`v2` on((`test`.`t1`.`a` = `test`.`t2`.`a`))) on((`test`.`t3`.`a` = `test`.`t1`.`a`)) where 1
|
||||
Note 1003 select `test`.`t3`.`a` AS `a`,`test`.`t1`.`a` AS `a`,`test`.`t2`.`a` AS `b` from `test`.`t3` left join (`test`.`t1` left join (`test`.`t2`) on((`test`.`t1`.`a` = `test`.`t2`.`a`))) on((`test`.`t3`.`a` = `test`.`t1`.`a`)) where 1
|
||||
prepare stmt1 from "select * from t3 left join v4 on (t3.a = v4.a);";
|
||||
execute stmt1;
|
||||
a a b
|
||||
@ -1712,3 +1697,18 @@ a b a b
|
||||
3 3 3 3
|
||||
drop view v1, v2;
|
||||
drop table t1, t2, t3;
|
||||
CREATE TABLE t1 (a int);
|
||||
CREATE TABLE t2 (b int);
|
||||
INSERT INTO t1 VALUES (1), (2), (3), (4);
|
||||
INSERT INTO t2 VALUES (4), (2);
|
||||
CREATE VIEW v1 AS SELECT * FROM t1,t2 WHERE t1.a=t2.b;
|
||||
SELECT * FROM v1;
|
||||
a b
|
||||
2 2
|
||||
4 4
|
||||
CREATE VIEW v2 AS SELECT * FROM v1;
|
||||
SELECT * FROM v2;
|
||||
a b
|
||||
2 2
|
||||
4 4
|
||||
DROP VIEW v2,v1;
|
||||
|
10
mysql-test/suppress.purify
Normal file
10
mysql-test/suppress.purify
Normal file
@ -0,0 +1,10 @@
|
||||
suppress UMR rw_read_held; mi_open; ha_myisam::open64; handler::ha_open; openfrm
|
||||
suppress UMR my_end; main
|
||||
suppress UMR _doprnt; fprintf; my_end; main
|
||||
suppress umr rw_read_held; mi_open
|
||||
suppress umr _putmsg; putmsg; _tx_sndudata
|
||||
suppress umr rw_read_held; Query_cache::store_query(THD*,st_table_list*); mysql_execute_command(THD*)
|
||||
suppress sig ...; _select; select; handle_connections_sockets; main; _start
|
||||
suppress sig ...; read; vio_read; my_real_read(st_net*,unsigned long*); my_net_read; do_command(THD*)
|
||||
suppress sig ...; read; vio_read; my_real_read(st_net*,unsigned long*); my_net_read; net_safe_read
|
||||
suppress sig ...; write; vio_write; net_real_write; net_write_buff(st_net*,const char*,unsigned long); my_net_write
|
@ -165,56 +165,6 @@ INSERT DELAYED INTO t1 VALUES(1),(2),(3);
|
||||
ALTER TABLE t1 ENABLE KEYS;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test that data get converted when character set is changed
|
||||
# Test that data doesn't get converted when src or dst is BINARY/BLOB
|
||||
#
|
||||
set names koi8r;
|
||||
create table t1 (a char(10) character set koi8r);
|
||||
insert into t1 values ('<27><><EFBFBD><EFBFBD>');
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a char(10) character set cp1251;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a binary(10);
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a char(10) character set cp1251;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a char(10) character set koi8r;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a varchar(10) character set cp1251;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a char(10) character set koi8r;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a text character set cp1251;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a char(10) character set koi8r;
|
||||
select a,hex(a) from t1;
|
||||
delete from t1;
|
||||
|
||||
#
|
||||
# Test ALTER TABLE .. CHARACTER SET ..
|
||||
#
|
||||
show create table t1;
|
||||
alter table t1 DEFAULT CHARACTER SET latin1;
|
||||
show create table t1;
|
||||
alter table t1 CONVERT TO CHARACTER SET latin1;
|
||||
show create table t1;
|
||||
alter table t1 DEFAULT CHARACTER SET cp1251;
|
||||
show create table t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#2821
|
||||
# Test that table CHARACTER SET does not affect blobs
|
||||
#
|
||||
create table t1 (myblob longblob,mytext longtext)
|
||||
default charset latin1 collate latin1_general_cs;
|
||||
show create table t1;
|
||||
alter table t1 character set latin2;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test ALTER TABLE ENABLE/DISABLE keys when things are locked
|
||||
#
|
||||
@ -277,6 +227,97 @@ ALTER TABLE t1 DISABLE KEYS;
|
||||
SHOW INDEX FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# BUG#4717 - check for valid table names
|
||||
#
|
||||
create table t1 (a int);
|
||||
--error 1103
|
||||
alter table t1 rename to `t1\\`;
|
||||
--error 1103
|
||||
rename table t1 to `t1\\`;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#6236 - ALTER TABLE MODIFY should set implicit NOT NULL on PK columns
|
||||
#
|
||||
drop table if exists t1, t2;
|
||||
create table t1 ( a varchar(10) not null primary key ) engine=myisam;
|
||||
create table t2 ( a varchar(10) not null primary key ) engine=merge union=(t1);
|
||||
flush tables;
|
||||
alter table t1 modify a varchar(10);
|
||||
show create table t2;
|
||||
flush tables;
|
||||
alter table t1 modify a varchar(10) not null;
|
||||
show create table t2;
|
||||
drop table if exists t1, t2;
|
||||
|
||||
# The following is also part of bug #6236 (CREATE TABLE didn't properly count
|
||||
# not null columns for primary keys)
|
||||
|
||||
create table t1 (a int, b int, c int, d int, e int, f int, g int, h int,i int, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
|
||||
insert into t1 (a) values(1);
|
||||
--replace_column 7 X 8 X 9 X 10 X 11 X 12 X 13 X 14 X
|
||||
show table status like 't1';
|
||||
alter table t1 modify a int;
|
||||
--replace_column 7 X 8 X 9 X 10 X 11 X 12 X 13 X 14 X
|
||||
show table status like 't1';
|
||||
drop table t1;
|
||||
create table t1 (a int not null, b int not null, c int not null, d int not null, e int not null, f int not null, g int not null, h int not null,i int not null, primary key (a,b,c,d,e,f,g,i,h)) engine=MyISAM;
|
||||
insert into t1 (a) values(1);
|
||||
--replace_column 7 X 8 X 9 X 10 X 11 X 12 X 13 X 14 X
|
||||
show table status like 't1';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test that data get converted when character set is changed
|
||||
# Test that data doesn't get converted when src or dst is BINARY/BLOB
|
||||
#
|
||||
set names koi8r;
|
||||
create table t1 (a char(10) character set koi8r);
|
||||
insert into t1 values ('<27><><EFBFBD><EFBFBD>');
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a char(10) character set cp1251;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a binary(10);
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a char(10) character set cp1251;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a char(10) character set koi8r;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a varchar(10) character set cp1251;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a char(10) character set koi8r;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a text character set cp1251;
|
||||
select a,hex(a) from t1;
|
||||
alter table t1 change a a char(10) character set koi8r;
|
||||
select a,hex(a) from t1;
|
||||
delete from t1;
|
||||
|
||||
#
|
||||
# Test ALTER TABLE .. CHARACTER SET ..
|
||||
#
|
||||
show create table t1;
|
||||
alter table t1 DEFAULT CHARACTER SET latin1;
|
||||
show create table t1;
|
||||
alter table t1 CONVERT TO CHARACTER SET latin1;
|
||||
show create table t1;
|
||||
alter table t1 DEFAULT CHARACTER SET cp1251;
|
||||
show create table t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#2821
|
||||
# Test that table CHARACTER SET does not affect blobs
|
||||
#
|
||||
create table t1 (myblob longblob,mytext longtext)
|
||||
default charset latin1 collate latin1_general_cs;
|
||||
show create table t1;
|
||||
alter table t1 character set latin2;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug 2361 (Don't drop UNIQUE with DROP PRIMARY KEY)
|
||||
#
|
||||
@ -296,16 +337,6 @@ alter table t1 drop key no_such_key;
|
||||
alter table t1 drop key a;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#4717 - check for valid table names
|
||||
#
|
||||
create table t1 (a int);
|
||||
--error 1103
|
||||
alter table t1 rename to `t1\\`;
|
||||
--error 1103
|
||||
rename table t1 to `t1\\`;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #6479 ALTER TABLE ... changing charset fails for TEXT columns
|
||||
#
|
||||
|
@ -206,3 +206,15 @@ alter table t1 modify b varchar(255);
|
||||
insert into t1 values (0,4);
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG #10045: Problem with composite AUTO_INCREMENT + BLOB key
|
||||
|
||||
CREATE TABLE t1 ( a INT AUTO_INCREMENT, b BLOB, PRIMARY KEY (a,b(10)));
|
||||
INSERT INTO t1 (b) VALUES ('aaaa');
|
||||
CHECK TABLE t1;
|
||||
INSERT INTO t1 (b) VALUES ('');
|
||||
CHECK TABLE t1;
|
||||
INSERT INTO t1 (b) VALUES ('bbbb');
|
||||
CHECK TABLE t1;
|
||||
DROP TABLE IF EXISTS t1;
|
||||
|
@ -376,6 +376,16 @@ SET NAMES latin1;
|
||||
SET collation_connection='ucs2_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
|
||||
#
|
||||
# Bug#10344 Some string functions fail for UCS2
|
||||
#
|
||||
select hex(substr(_ucs2 0x00e400e50068,1));
|
||||
select hex(substr(_ucs2 0x00e400e50068,2));
|
||||
select hex(substr(_ucs2 0x00e400e50068,3));
|
||||
select hex(substr(_ucs2 0x00e400e50068,-1));
|
||||
select hex(substr(_ucs2 0x00e400e50068,-2));
|
||||
select hex(substr(_ucs2 0x00e400e50068,-3));
|
||||
|
||||
SET NAMES latin1;
|
||||
#
|
||||
# Bug#8235
|
||||
|
@ -310,7 +310,7 @@ update t0 set key2=1, key3=1, key4=1, key5=1,key6=1,key7=1 where key7 < 500;
|
||||
# The next query will not use index i7 in intersection if the OS doesn't
|
||||
# support file sizes > 2GB. (ha_myisam::ref_length depends on this and index
|
||||
# scan cost estimates depend on ha_myisam::ref_length)
|
||||
--replace_result "4,4,4,4,4,4,4" X "4,4,4,4,4,4" X "i6,i7" "i6,i7?" "i6" "i6,i7?" 7 7or16 16 7or16
|
||||
--replace_result "4,4,4,4,4,4,4" X "4,4,4,4,4,4" X "i6,i7" "i6,i7?" "i6" "i6,i7?" 7 # 16 # 18 #
|
||||
explain select max(A.key1 + B.key1 + A.key2 + B.key2 + A.key3 + B.key3 + A.key4 + B.key4 + A.key5 + B.key5)
|
||||
from t0 as A, t0 as B
|
||||
where (A.key1 = 1 and A.key2 = 1 and A.key3 = 1 and A.key4=1 and A.key5=1 and A.key6=1 and A.key7 = 1 or A.key8=1)
|
||||
|
@ -184,6 +184,8 @@ explain select st_a from t1 ignore index (st_a) where st_a=1 and st_b=1;
|
||||
# Check that keys that don't improve selectivity are skipped.
|
||||
#
|
||||
|
||||
# Different value on 32 and 64 bit
|
||||
--replace_result sta_swt12a sta_swt21a sta_swt12a, sta_swt12a,
|
||||
explain select * from t1 where st_a=1 and swt1a=1 and swt2a=1;
|
||||
|
||||
explain select * from t1 where st_b=1 and swt1b=1 and swt2b=1;
|
||||
|
@ -1309,3 +1309,13 @@ create table t1(a int(1) , b int(1)) engine=innodb;
|
||||
insert into t1 values ('1111', '3333');
|
||||
select distinct concat(a, b) from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#7709 test case - Boolean fulltext query against unsupported
|
||||
# engines does not fail
|
||||
#
|
||||
|
||||
CREATE TABLE t1 ( a char(10) ) ENGINE=InnoDB;
|
||||
--error 1214;
|
||||
SELECT a FROM t1 WHERE MATCH (a) AGAINST ('test' IN BOOLEAN MODE);
|
||||
DROP TABLE t1;
|
||||
|
@ -85,10 +85,14 @@ DROP TABLE t2;
|
||||
# Bug#9725 - "disapearing query/hang" and "unknown error" with "on duplicate key update"
|
||||
# INSERT INGORE...UPDATE gives bad error or breaks protocol.
|
||||
#
|
||||
create table t1 (a int not null unique);
|
||||
create table t1 (a int not null unique) engine=myisam;
|
||||
insert into t1 values (1),(2);
|
||||
insert ignore into t1 select 1 on duplicate key update a=2;
|
||||
select * from t1;
|
||||
insert ignore into t1 select a from t1 on duplicate key update a=a+1 ;
|
||||
select * from t1;
|
||||
insert into t1 select 1 on duplicate key update a=2;
|
||||
select * from t1;
|
||||
--error 1062
|
||||
insert into t1 select a from t1 on duplicate key update a=a+1 ;
|
||||
drop table t1;
|
||||
|
@ -606,3 +606,57 @@ system rm ./var/master-data/test/t1.MYD ;
|
||||
drop table t1;
|
||||
--error 1051
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test concurrent insert
|
||||
# First with static record length
|
||||
#
|
||||
set @save_concurrent_insert=@@concurrent_insert;
|
||||
set global concurrent_insert=1;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1),(2),(3),(4),(5);
|
||||
lock table t1 read local;
|
||||
connect (con1,localhost,root,,);
|
||||
connection con1;
|
||||
# Insert in table without hole
|
||||
insert into t1 values(6),(7);
|
||||
connection default;
|
||||
unlock tables;
|
||||
delete from t1 where a>=3 and a<=4;
|
||||
lock table t1 read local;
|
||||
connection con1;
|
||||
set global concurrent_insert=2;
|
||||
# Insert in table with hole -> Should insert at end
|
||||
insert into t1 values (8),(9);
|
||||
connection default;
|
||||
unlock tables;
|
||||
# Insert into hole
|
||||
insert into t1 values (10),(11),(12);
|
||||
select * from t1;
|
||||
check table t1;
|
||||
drop table t1;
|
||||
|
||||
# Same test with dynamic record length
|
||||
create table t1 (a int, b varchar(30) default "hello");
|
||||
insert into t1 (a) values (1),(2),(3),(4),(5);
|
||||
lock table t1 read local;
|
||||
connect (con1,localhost,root,,);
|
||||
connection con1;
|
||||
# Insert in table without hole
|
||||
insert into t1 (a) values(6),(7);
|
||||
connection default;
|
||||
unlock tables;
|
||||
delete from t1 where a>=3 and a<=4;
|
||||
lock table t1 read local;
|
||||
connection con1;
|
||||
set global concurrent_insert=2;
|
||||
# Insert in table with hole -> Should insert at end
|
||||
insert into t1 (a) values (8),(9);
|
||||
connection default;
|
||||
unlock tables;
|
||||
# Insert into hole
|
||||
insert into t1 (a) values (10),(11),(12);
|
||||
select a from t1;
|
||||
check table t1;
|
||||
drop table t1;
|
||||
set global concurrent_insert=@save_concurrent_insert;
|
||||
|
@ -1,3 +1,9 @@
|
||||
disable_query_log;
|
||||
-- source include/test_outfile.inc
|
||||
eval set @tmpdir="$MYSQL_TEST_DIR/var/tmp";
|
||||
enable_query_log;
|
||||
-- source include/have_outfile.inc
|
||||
|
||||
#
|
||||
# test of into outfile|dumpfile
|
||||
#
|
||||
@ -6,29 +12,45 @@
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
# We need to check that we have 'file' privilege.
|
||||
create table t1 (`a` blob);
|
||||
insert into t1 values("hello world"),("Hello mars"),(NULL);
|
||||
disable_query_log;
|
||||
eval select * into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.1" from t1;
|
||||
enable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile-test.1"));
|
||||
disable_query_log;
|
||||
eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.2" from t1 limit 1;
|
||||
enable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile-test.2"));
|
||||
disable_query_log;
|
||||
eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1 where a is null;
|
||||
enable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile-test.3"));
|
||||
|
||||
#create table t1 (`a` blob);
|
||||
#insert into t1 values("hello world"),("Hello mars"),(NULL);
|
||||
#select * into outfile "/tmp/select-test.1" from t1;
|
||||
#select load_file("/tmp/select-test.1");
|
||||
#select * into dumpfile "/tmp/select-test.2" from t1 limit 1;
|
||||
#select load_file("/tmp/select-test.2");
|
||||
#select * into dumpfile "/tmp/select-test.3" from t1 where a is null;
|
||||
#select load_file("/tmp/select-test.3");
|
||||
#
|
||||
## the following should give errors
|
||||
#
|
||||
#select * into outfile "/tmp/select-test.1" from t1;
|
||||
#select * into dumpfile "/tmp/select-test.1" from t1;
|
||||
#select * into dumpfile "/tmp/select-test.99" from t1;
|
||||
#select load_file("/tmp/select-test.not-exist");
|
||||
#drop table t1;
|
||||
#drop table if exists t;
|
||||
#CREATE TABLE t ( t timestamp NOT NULL, c char(200) character set latin1 NOT NULL default '', i int(11), v varchar(200), b blob, KEY t (t)) ENGINE=MyISAM;
|
||||
#INSERT INTO t VALUES ('2002-12-20 12:01:20','',1,"aaa","bbb");
|
||||
#select * from t into outfile "check";
|
||||
#drop table if exists t;
|
||||
# the following should give errors
|
||||
|
||||
#disabled as error message has variable path
|
||||
#disable_query_log;
|
||||
#--error 1086
|
||||
#eval select * into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.1" from t1;
|
||||
#--error 1086
|
||||
#eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.2" from t1;
|
||||
#--error 1086
|
||||
#eval select * into dumpfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.3" from t1;
|
||||
#enable_query_log;
|
||||
--error 13,2
|
||||
select load_file(concat(@tmpdir,"/outfile-test.not-exist"));
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.1
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.2
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.3
|
||||
drop table t1;
|
||||
|
||||
# Bug#8191
|
||||
disable_query_log;
|
||||
eval select 1 into outfile "$MYSQL_TEST_DIR/var/tmp/outfile-test.4";
|
||||
enable_query_log;
|
||||
select load_file(concat(@tmpdir,"/outfile-test.4"));
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/outfile-test.4
|
||||
|
||||
#
|
||||
# Bug #5382: 'explain select into outfile' crashes the server
|
||||
|
@ -3,6 +3,9 @@
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
|
||||
# Avoid wrong warnings if mysql_client_test fails
|
||||
drop database if exists client_test_db;
|
||||
--enable_warnings
|
||||
|
||||
create table t1
|
||||
|
@ -833,7 +833,7 @@ execute stmt1 ;
|
||||
--disable_metadata
|
||||
--horizontal_results
|
||||
|
||||
drop table t5 ;
|
||||
drop table t5, t9;
|
||||
|
||||
##### RULES OF THUMB TO PRESERVE THE SYSTEMATICS OF THE PS TEST CASES #####
|
||||
#
|
||||
|
@ -1,10 +1,6 @@
|
||||
# Can't test grants with embedded server
|
||||
-- source include/not_embedded.inc
|
||||
|
||||
# Tested here simply so it is not tested with embedded server
|
||||
prepare stmt4 from ' show full processlist ';
|
||||
--replace_column 1 number 6 time 3 localhost
|
||||
execute stmt4;
|
||||
|
||||
let $type= 'MYISAM' ;
|
||||
|
||||
@ -116,6 +112,7 @@ show grants for second_user@localhost ;
|
||||
|
||||
drop database mysqltest;
|
||||
|
||||
|
||||
## grant/revoke + drop user
|
||||
--error 1295
|
||||
prepare stmt3 from ' grant all on test.t1 to drop_user@localhost
|
||||
@ -130,3 +127,10 @@ revoke all privileges on test.t1 from drop_user@localhost ;
|
||||
prepare stmt3 from ' drop user drop_user@localhost ';
|
||||
drop user drop_user@localhost;
|
||||
|
||||
# This test must be the last one, otherwise it may produce extra
|
||||
# rows in the processlist under high load.
|
||||
# Tested here simply so it is not tested with embedded server
|
||||
prepare stmt4 from ' show full processlist ';
|
||||
--replace_column 1 number 6 time 3 localhost
|
||||
execute stmt4;
|
||||
deallocate prepare stmt4;
|
||||
|
1
mysql-test/t/rpl_variables-master.opt
Normal file
1
mysql-test/t/rpl_variables-master.opt
Normal file
@ -0,0 +1 @@
|
||||
--slave-skip-errors=3,100,137,643,1752
|
@ -2,3 +2,11 @@ source include/master-slave.inc;
|
||||
|
||||
set global slave_net_timeout=100;
|
||||
set global sql_slave_skip_counter=100;
|
||||
|
||||
# BUG #7800: Add various-slave related variables to SHOW VARIABLES
|
||||
show variables like 'slave_compressed_protocol';
|
||||
--replace_result $MYSQL_TEST_DIR MYSQL_TEST_DIR
|
||||
show variables like 'slave_load_tmpdir';
|
||||
# We just set some arbitrary values in variables-master.opt so we can test
|
||||
# that a list of values works correctly
|
||||
show variables like 'slave_skip_errors';
|
||||
|
@ -2064,9 +2064,9 @@ drop table t1;
|
||||
create table t1 (a int(11));
|
||||
select all all * from t1;
|
||||
select distinct distinct * from t1;
|
||||
--error 1064
|
||||
--error 1221
|
||||
select all distinct * from t1;
|
||||
--error 1064
|
||||
--error 1221
|
||||
select distinct all * from t1;
|
||||
drop table t1;
|
||||
|
||||
|
@ -3772,6 +3772,35 @@ drop view v1|
|
||||
drop procedure bug9841|
|
||||
|
||||
|
||||
#
|
||||
# BUG#5963 subqueries in SET/IF
|
||||
#
|
||||
--disable_warnings
|
||||
drop procedure if exists bug5963|
|
||||
--enable_warnings
|
||||
|
||||
create procedure bug5963_1 () begin declare v int; set v = (select s1 from t3); select v; end;|
|
||||
create table t3 (s1 int)|
|
||||
insert into t3 values (5)|
|
||||
call bug5963_1()|
|
||||
call bug5963_1()|
|
||||
drop procedure bug5963_1|
|
||||
drop table t3|
|
||||
|
||||
create procedure bug5963_2 (cfk_value int)
|
||||
begin
|
||||
if cfk_value in (select cpk from t3) then
|
||||
set @x = 5;
|
||||
end if;
|
||||
end;
|
||||
|
|
||||
create table t3 (cpk int)|
|
||||
insert into t3 values (1)|
|
||||
call bug5963_2(1)|
|
||||
call bug5963_2(1)|
|
||||
drop procedure bug5963_2|
|
||||
drop table t3|
|
||||
|
||||
#
|
||||
# BUG#NNNN: New bug synopsis
|
||||
#
|
||||
|
@ -1083,3 +1083,13 @@ INSERT INTO t1 SET j = 1, i = DEFAULT;
|
||||
INSERT INTO t1 SET j = 1, i = DEFAULT(i);
|
||||
INSERT INTO t1 VALUES (DEFAULT,1);
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bugs #8295 and #8296: varchar and varbinary conversion
|
||||
#
|
||||
|
||||
set @@sql_mode='traditional';
|
||||
--error 1074
|
||||
create table t1(a varchar(65537));
|
||||
--error 1074
|
||||
create table t1(a varbinary(65537));
|
||||
|
@ -906,3 +906,13 @@ CREATE TABLE t1 (f1 DECIMAL (64,20), f2 DECIMAL(2,2));
|
||||
INSERT INTO t1 VALUES (9999999999999999999999999999999999, 0);
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #10465
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (GRADE DECIMAL(4) NOT NULL, PRIMARY KEY (GRADE)) ENGINE=INNODB;
|
||||
INSERT INTO t1 (GRADE) VALUES (151),(252),(343);
|
||||
SELECT GRADE FROM t1 WHERE GRADE > 160 AND GRADE < 300;
|
||||
SELECT GRADE FROM t1 WHERE GRADE= 151;
|
||||
DROP TABLE t1;
|
||||
|
@ -72,23 +72,20 @@ explain extended select @@IDENTITY,last_insert_id(), @@identity;
|
||||
|
||||
set big_tables=OFF, big_tables=ON, big_tables=0, big_tables=1, big_tables="OFF", big_tables="ON";
|
||||
|
||||
set global concurrent_insert=ON;
|
||||
set global concurrent_insert=2;
|
||||
show variables like 'concurrent_insert';
|
||||
set global concurrent_insert=1;
|
||||
show variables like 'concurrent_insert';
|
||||
set global concurrent_insert=0;
|
||||
show variables like 'concurrent_insert';
|
||||
set global concurrent_insert=OFF;
|
||||
show variables like 'concurrent_insert';
|
||||
set global concurrent_insert=DEFAULT;
|
||||
show variables like 'concurrent_insert';
|
||||
select @@concurrent_insert;
|
||||
|
||||
set global timed_mutexes=1;
|
||||
set global timed_mutexes=ON;
|
||||
show variables like 'timed_mutexes';
|
||||
set global timed_mutexes=0;
|
||||
show variables like 'timed_mutexes';
|
||||
|
||||
|
||||
set storage_engine=MYISAM, storage_engine="HEAP", global storage_engine="MERGE";
|
||||
show local variables like 'storage_engine';
|
||||
show global variables like 'storage_engine';
|
||||
@ -174,8 +171,6 @@ set @@global.sql_auto_is_null=1;
|
||||
select @@global.sql_auto_is_null;
|
||||
--error 1229
|
||||
set myisam_max_sort_file_size=100;
|
||||
--error 1229
|
||||
set myisam_max_extra_sort_file_size=100;
|
||||
--error 1231
|
||||
set @@SQL_WARNINGS=NULL;
|
||||
|
||||
@ -222,9 +217,6 @@ set max_tmp_tables=100;
|
||||
set global max_user_connections=100;
|
||||
select @@max_user_connections;
|
||||
set global max_write_lock_count=100;
|
||||
set global myisam_max_extra_sort_file_size=100;
|
||||
select @@myisam_max_extra_sort_file_size;
|
||||
set global myisam_max_sort_file_size=100;
|
||||
set myisam_sort_buffer_size=100;
|
||||
set net_buffer_length=100;
|
||||
set net_read_timeout=100;
|
||||
|
@ -1,5 +1,5 @@
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,`t1a``b`,v1,v2,v3,v4,v5,v6;
|
||||
drop table if exists t1,t2,t9,`t1a``b`,v1,v2,v3,v4,v5,v6;
|
||||
drop view if exists t1,t2,`t1a``b`,v1,v2,v3,v4,v5,v6;
|
||||
drop database if exists mysqltest;
|
||||
--enable_warnings
|
||||
@ -148,9 +148,10 @@ insert into t1 values (1), (2), (3);
|
||||
create view v1 (a) as select a+1 from t1;
|
||||
create view v2 (a) as select a-1 from t1;
|
||||
|
||||
select * from t1 natural left join v1;
|
||||
select * from v2 natural left join t1;
|
||||
select * from v2 natural left join v1;
|
||||
# WL #2486 should enable these tests
|
||||
#select * from t1 natural left join v1;
|
||||
#select * from v2 natural left join t1;
|
||||
#select * from v2 natural left join v1;
|
||||
|
||||
drop view v1, v2;
|
||||
drop table t1;
|
||||
@ -1533,3 +1534,18 @@ select * from v2 A, v2 B where A.a = B.b;
|
||||
drop view v1, v2;
|
||||
drop table t1, t2, t3;
|
||||
|
||||
#
|
||||
# Test case for bug #8528: select from view over multi-table view
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a int);
|
||||
CREATE TABLE t2 (b int);
|
||||
INSERT INTO t1 VALUES (1), (2), (3), (4);
|
||||
INSERT INTO t2 VALUES (4), (2);
|
||||
|
||||
CREATE VIEW v1 AS SELECT * FROM t1,t2 WHERE t1.a=t2.b;
|
||||
SELECT * FROM v1;
|
||||
CREATE VIEW v2 AS SELECT * FROM v1;
|
||||
SELECT * FROM v2;
|
||||
|
||||
DROP VIEW v2,v1;
|
||||
|
Reference in New Issue
Block a user