mirror of
https://github.com/MariaDB/server.git
synced 2025-07-29 05:21:33 +03:00
Merge zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1-recentcommmerge
into zippy.cornsilk.net:/home/cmiller/work/mysql/mysql-5.1 client/mysqlcheck.c: Auto merged configure.in: Auto merged include/config-win.h: Auto merged mysql-test/r/func_in.result: Auto merged mysql-test/r/information_schema.result: Auto merged mysql-test/t/func_in.test: Auto merged mysql-test/t/information_schema.test: Auto merged sql/item_cmpfunc.cc: Auto merged sql/item_func.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/set_var.cc: Auto merged sql/sp_head.cc: Auto merged sql/sql_base.cc: Auto merged sql/sql_cache.cc: Auto merged sql/sql_class.cc: Auto merged sql/sql_class.h: Auto merged sql/sql_delete.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_lex.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_prepare.cc: Auto merged sql/sql_repl.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql/sql_table.cc: Auto merged sql/sql_update.cc: Auto merged sql/sql_view.cc: Auto merged sql/sql_yacc.yy: Auto merged sql/table.h: Auto merged storage/myisam/ha_myisam.cc: Auto merged sql/sql_lex.h: SCCS merged
This commit is contained in:
@ -154,6 +154,7 @@ SUFFIXES = .sh
|
||||
-e 's!@''PERL''@!@PERL@!' \
|
||||
-e 's!@''VERSION''@!@VERSION@!' \
|
||||
-e 's!@''MYSQL_TCP_PORT''@!@MYSQL_TCP_PORT@!' \
|
||||
-e 's!@''MYSQL_TCP_PORT_DEFAULT''@!@MYSQL_TCP_PORT_DEFAULT@!' \
|
||||
-e 's!@''MYSQL_BASE_VERSION''@!@MYSQL_BASE_VERSION@!' \
|
||||
-e 's!@''MYSQL_UNIX_ADDR''@!@MYSQL_UNIX_ADDR@!' \
|
||||
-e 's!@''MYSQL_TCP_PORT''@!@MYSQL_TCP_PORT@!' \
|
||||
|
@ -51,6 +51,15 @@ SELECT c1 as want1result from t1 where c1 like 'locatio%';
|
||||
SELECT c1 as want1result from t1 where c1 like 'location%';
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #31070: crash during conversion of charsets
|
||||
#
|
||||
create table t1 (a set('a') not null);
|
||||
insert into t1 values (),();
|
||||
select cast(a as char(1)) from t1;
|
||||
select a sounds like a from t1;
|
||||
drop table t1;
|
||||
|
||||
DROP DATABASE d1;
|
||||
# Restore settings
|
||||
USE test;
|
||||
|
46
mysql-test/include/gis_keys.inc
Normal file
46
mysql-test/include/gis_keys.inc
Normal file
@ -0,0 +1,46 @@
|
||||
--source include/have_geometry.inc
|
||||
|
||||
#
|
||||
# Spatial objects with keys
|
||||
#
|
||||
|
||||
#
|
||||
# Bug #30825: Problems when putting a non-spatial index on a GIS column
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (p POINT);
|
||||
CREATE TABLE t2 (p POINT, INDEX(p));
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
|
||||
-- no index, returns 1 as expected
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
-- with index, returns 1 as expected
|
||||
-- EXPLAIN shows that the index is not used though
|
||||
-- due to the "most rows covered anyway, so a scan is more effective" rule
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
-- adding another row to the table so that
|
||||
-- the "most rows covered" rule doesn't kick in anymore
|
||||
-- now EXPLAIN shows the index used on the table
|
||||
-- and we're getting the wrong result again
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo End of 5.0 tests
|
@ -498,3 +498,71 @@ handler t1_alias read a next;
|
||||
handler t1_alias READ a next where inexistent > 0;
|
||||
handler t1_alias close;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#21587 FLUSH TABLES causes server crash when used with HANDLER statements
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
--enable_warnings
|
||||
create table t1 (c1 int);
|
||||
create table t2 (c1 int);
|
||||
insert into t1 values (1);
|
||||
insert into t2 values (2);
|
||||
--echo connection: default
|
||||
handler t1 open;
|
||||
handler t1 read first;
|
||||
connect (flush,localhost,root,,);
|
||||
connection flush;
|
||||
--echo connection: flush
|
||||
--send flush tables;
|
||||
connection default;
|
||||
--echo connection: default
|
||||
let $wait_condition=
|
||||
select count(*) = 1 from information_schema.processlist
|
||||
where state = "Flushing tables";
|
||||
--source include/wait_condition.inc
|
||||
handler t2 open;
|
||||
handler t2 read first;
|
||||
handler t1 read next;
|
||||
handler t1 close;
|
||||
handler t2 close;
|
||||
connection flush;
|
||||
reap;
|
||||
connection default;
|
||||
drop table t1,t2;
|
||||
disconnect flush;
|
||||
|
||||
#
|
||||
# Bug#31409 RENAME TABLE causes server crash or deadlock when used with HANDLER statements
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2;
|
||||
--enable_warnings
|
||||
create table t1 (c1 int);
|
||||
--echo connection: default
|
||||
handler t1 open;
|
||||
handler t1 read first;
|
||||
connect (flush,localhost,root,,);
|
||||
connection flush;
|
||||
--echo connection: flush
|
||||
--send rename table t1 to t2;
|
||||
connection default;
|
||||
--echo connection: default
|
||||
let $wait_condition=
|
||||
select count(*) = 1 from information_schema.processlist
|
||||
where state = "Waiting for table" and info = "rename table t1 to t2";
|
||||
--source include/wait_condition.inc
|
||||
handler t2 open;
|
||||
handler t2 read first;
|
||||
--error ER_NO_SUCH_TABLE
|
||||
handler t1 read next;
|
||||
handler t1 close;
|
||||
handler t2 close;
|
||||
connection flush;
|
||||
reap;
|
||||
connection default;
|
||||
drop table t2;
|
||||
disconnect flush;
|
||||
|
@ -29,6 +29,7 @@ eval SET SESSION STORAGE_ENGINE = $engine_type;
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4;
|
||||
drop procedure if exists p1;
|
||||
--enable_warnings
|
||||
|
||||
|
||||
@ -1146,4 +1147,161 @@ select @b:=f2 from t1;
|
||||
select if(@a=@b,"ok","wrong");
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #31310: Locked rows silently skipped in read-committed isolation level.
|
||||
#
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
SET SESSION AUTOCOMMIT = 0;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
--echo # Switch to connection con1
|
||||
connection con1;
|
||||
|
||||
eval
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(256))
|
||||
ENGINE = $engine_type;
|
||||
INSERT INTO t1 VALUES (1,2);
|
||||
|
||||
--#echo 1. test for locking:
|
||||
|
||||
BEGIN;
|
||||
--enable_info
|
||||
UPDATE t1 SET b = 12 WHERE a = 1;
|
||||
--disable_info
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con2
|
||||
connection con2;
|
||||
|
||||
--enable_info
|
||||
--disable_abort_on_error
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
UPDATE t1 SET b = 21 WHERE a = 1;
|
||||
--disable_info
|
||||
|
||||
--echo # Switch to connection con1
|
||||
connection con1;
|
||||
SELECT * FROM t1;
|
||||
ROLLBACK;
|
||||
|
||||
--echo # 2. test for serialized update:
|
||||
|
||||
CREATE TABLE t2 (a INT);
|
||||
|
||||
TRUNCATE t1;
|
||||
INSERT INTO t1 VALUES (1,'init');
|
||||
|
||||
DELIMITER |;
|
||||
CREATE PROCEDURE p1()
|
||||
BEGIN
|
||||
UPDATE t1 SET b = CONCAT(b, '+con2') WHERE a = 1;
|
||||
INSERT INTO t2 VALUES ();
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
BEGIN;
|
||||
--enable_info
|
||||
UPDATE t1 SET b = CONCAT(b, '+con1') WHERE a = 1;
|
||||
--disable_info
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con2
|
||||
connection con2;
|
||||
|
||||
--send CALL p1;
|
||||
|
||||
--echo # Switch to connection con1
|
||||
connection con1;
|
||||
SELECT * FROM t1;
|
||||
COMMIT;
|
||||
|
||||
let $bug31310 = 1;
|
||||
while ($bug31310)
|
||||
{
|
||||
let $bug31310= `SELECT 1 - COUNT(*) FROM t2`;
|
||||
}
|
||||
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con2
|
||||
connection con2;
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con1
|
||||
connection con1;
|
||||
|
||||
--echo # 3. test for updated key column:
|
||||
|
||||
TRUNCATE t1;
|
||||
TRUNCATE t2;
|
||||
|
||||
INSERT INTO t1 VALUES (1,'init');
|
||||
|
||||
BEGIN;
|
||||
--enable_info
|
||||
UPDATE t1 SET a = 2, b = CONCAT(b, '+con1') WHERE a = 1;
|
||||
--disable_info
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con2
|
||||
connection con2;
|
||||
|
||||
--send CALL p1;
|
||||
|
||||
--echo # Switch to connection con1
|
||||
connection con1;
|
||||
SELECT * FROM t1;
|
||||
COMMIT;
|
||||
|
||||
let $bug31310 = 1;
|
||||
while ($bug31310)
|
||||
{
|
||||
let $bug31310= `SELECT 1 - COUNT(*) FROM t2`;
|
||||
}
|
||||
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con2
|
||||
connection con2;
|
||||
SELECT * FROM t1;
|
||||
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1, t2;
|
||||
# Bug#30747 Create table with identical constraint names behaves incorrectly
|
||||
#
|
||||
|
||||
if ($test_foreign_keys)
|
||||
{
|
||||
CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, PRIMARY KEY (a,b)) engine=innodb;
|
||||
--error ER_WRONG_FK_DEF
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
CONSTRAINT c2 FOREIGN KEY f2 (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb;
|
||||
--error ER_WRONG_FK_DEF
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb;
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
CONSTRAINT c1 FOREIGN KEY c2 (c) REFERENCES t1 (a) ON DELETE NO ACTION,
|
||||
CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION) engine=innodb;
|
||||
ALTER TABLE t2 DROP FOREIGN KEY c2;
|
||||
DROP TABLE t2;
|
||||
--error ER_WRONG_FK_DEF
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
FOREIGN KEY (c) REFERENCES t1 (a,k) ON UPDATE NO ACTION) engine=innodb;
|
||||
--error ER_WRONG_FK_DEF
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
FOREIGN KEY f1 (c) REFERENCES t1 (a,k) ON UPDATE NO ACTION) engine=innodb;
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
CONSTRAINT c1 FOREIGN KEY f1 (c) REFERENCES t1 (a) ON DELETE NO ACTION,
|
||||
CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION,
|
||||
FOREIGN KEY f3 (c) REFERENCES t1 (a) ON UPDATE NO ACTION,
|
||||
FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION) engine=innodb;
|
||||
SHOW CREATE TABLE t2;
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
}
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -1,4 +1,5 @@
|
||||
--require r/windows.require
|
||||
disable_query_log;
|
||||
select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows") as "TRUE";
|
||||
enable_query_log;
|
||||
if (`select convert(@@version_compile_os using latin1) IN ("Win32","Win64","Windows") = 0`)
|
||||
{
|
||||
skip Need windows;
|
||||
}
|
||||
|
||||
|
@ -28,6 +28,26 @@ sub collect_one_test_case ($$$$$$$$$);
|
||||
|
||||
sub mtr_options_from_test_file($$);
|
||||
|
||||
my $do_test;
|
||||
my $skip_test;
|
||||
|
||||
sub init_pattern {
|
||||
my ($from, $what)= @_;
|
||||
if ( $from =~ /[a-z0-9]/ ) {
|
||||
# Does not contain any regex, make the pattern match
|
||||
# beginning of string
|
||||
$from= "^$from";
|
||||
}
|
||||
else {
|
||||
# Check that pattern is a valid regex
|
||||
eval { "" =~/$from/; 1 } or
|
||||
mtr_error("Invalid regex '$from' passed to $what\nPerl says: $@");
|
||||
}
|
||||
return $from;
|
||||
}
|
||||
|
||||
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Collect information about test cases we are to run
|
||||
@ -35,6 +55,9 @@ sub mtr_options_from_test_file($$);
|
||||
##############################################################################
|
||||
|
||||
sub collect_test_cases ($) {
|
||||
$do_test= init_pattern($::opt_do_test, "--do-test");
|
||||
$skip_test= init_pattern($::opt_skip_test, "--skip-test");
|
||||
|
||||
my $suites= shift; # Semicolon separated list of test suites
|
||||
my $cases = []; # Array of hash
|
||||
|
||||
@ -48,13 +71,14 @@ sub collect_test_cases ($) {
|
||||
{
|
||||
# Check that the tests specified was found
|
||||
# in at least one suite
|
||||
foreach my $tname ( @::opt_cases )
|
||||
foreach my $test_name_spec ( @::opt_cases )
|
||||
{
|
||||
my $found= 0;
|
||||
my ($sname, $tname, $extension)= split_testname($test_name_spec);
|
||||
foreach my $test ( @$cases )
|
||||
{
|
||||
if ( $test->{'name'} eq $tname ||
|
||||
mtr_match_extension($test->{'name'}, $tname) )
|
||||
# test->{name} is always in suite.name format
|
||||
if ( $test->{name} =~ /.*\.$tname/ )
|
||||
{
|
||||
$found= 1;
|
||||
}
|
||||
@ -144,6 +168,45 @@ sub collect_test_cases ($) {
|
||||
|
||||
}
|
||||
|
||||
# Valid extensions and their corresonding component id
|
||||
my %exts = ( 'test' => 'mysqld',
|
||||
'imtest' => 'im'
|
||||
);
|
||||
|
||||
|
||||
# Returns (suitename, testname, extension)
|
||||
sub split_testname {
|
||||
my ($test_name)= @_;
|
||||
|
||||
# Get rid of directory part and split name on .'s
|
||||
my @parts= split(/\./, basename($test_name));
|
||||
|
||||
if (@parts == 1){
|
||||
# Only testname given, ex: alias
|
||||
return (undef , $parts[0], undef);
|
||||
} elsif (@parts == 2) {
|
||||
# Either testname.test or suite.testname given
|
||||
# Ex. main.alias or alias.test
|
||||
|
||||
if (defined $exts{$parts[1]})
|
||||
{
|
||||
return (undef , $parts[0], $parts[1]);
|
||||
}
|
||||
else
|
||||
{
|
||||
return ($parts[0], $parts[1], undef);
|
||||
}
|
||||
|
||||
} elsif (@parts == 3) {
|
||||
# Fully specified suitename.testname.test
|
||||
# ex main.alias.test
|
||||
return ( $parts[0], $parts[1], $parts[2]);
|
||||
}
|
||||
|
||||
mtr_error("Illegal format of test name: $test_name");
|
||||
}
|
||||
|
||||
|
||||
sub collect_one_suite($$)
|
||||
{
|
||||
my $suite= shift; # Test suite name
|
||||
@ -151,19 +214,16 @@ sub collect_one_suite($$)
|
||||
|
||||
mtr_verbose("Collecting: $suite");
|
||||
|
||||
my $testdir;
|
||||
my $resdir;
|
||||
my $suitedir= "$::glob_mysql_test_dir"; # Default
|
||||
if ( $suite ne "main" )
|
||||
{
|
||||
$suitedir= mtr_path_exists("$suitedir/suite/$suite",
|
||||
"$suitedir/$suite");
|
||||
mtr_verbose("suitedir: $suitedir");
|
||||
}
|
||||
|
||||
if ( $suite eq "main" )
|
||||
{
|
||||
$testdir= "$::glob_mysql_test_dir/t";
|
||||
$resdir= "$::glob_mysql_test_dir/r";
|
||||
}
|
||||
else
|
||||
{
|
||||
$testdir= "$::glob_mysql_test_dir/suite/$suite/t";
|
||||
$resdir= "$::glob_mysql_test_dir/suite/$suite/r";
|
||||
}
|
||||
my $testdir= "$suitedir/t";
|
||||
my $resdir= "$suitedir/r";
|
||||
|
||||
# ----------------------------------------------------------------------
|
||||
# Build a hash of disabled testcases for this suite
|
||||
@ -192,77 +252,55 @@ sub collect_one_suite($$)
|
||||
|
||||
if ( @::opt_cases )
|
||||
{
|
||||
# Collect in specified order, no sort
|
||||
foreach my $tname2 ( @::opt_cases )
|
||||
# Collect in specified order
|
||||
foreach my $test_name_spec ( @::opt_cases )
|
||||
{
|
||||
my $tname= $tname2; # Don't modify @::opt_cases !
|
||||
my $elem= undef;
|
||||
my $component_id= undef;
|
||||
my ($sname, $tname, $extension)= split_testname($test_name_spec);
|
||||
|
||||
# Get rid of directory part (path). Leave the extension since it is used
|
||||
# to understand type of the test.
|
||||
# The test name parts have now been defined
|
||||
#print " suite_name: $sname\n";
|
||||
#print " tname: $tname\n";
|
||||
#print " extension: $extension\n";
|
||||
|
||||
$tname = basename($tname);
|
||||
# Check cirrect suite if suitename is defined
|
||||
next if (defined $sname and $suite ne $sname);
|
||||
|
||||
# Get rid of suite part
|
||||
$tname =~ s/^$suite\.//;
|
||||
|
||||
# Check if the extenstion has been specified.
|
||||
|
||||
if ( mtr_match_extension($tname, "test") )
|
||||
my $component_id;
|
||||
if ( defined $extension )
|
||||
{
|
||||
$elem= $tname;
|
||||
$tname=~ s/\.test$//;
|
||||
$component_id= 'mysqld';
|
||||
}
|
||||
elsif ( mtr_match_extension($tname, "imtest") )
|
||||
{
|
||||
$elem= $tname;
|
||||
$tname =~ s/\.imtest$//;
|
||||
$component_id= 'im';
|
||||
}
|
||||
|
||||
# If target component is known, check that the specified test case
|
||||
# exists.
|
||||
#
|
||||
# Otherwise, try to guess the target component.
|
||||
|
||||
if ( $component_id )
|
||||
{
|
||||
if ( ! -f "$testdir/$elem")
|
||||
my $full_name= "$testdir/$tname.$extension";
|
||||
# Extension was specified, check if the test exists
|
||||
if ( ! -f $full_name)
|
||||
{
|
||||
mtr_error("Test case $tname ($testdir/$elem) is not found");
|
||||
# This is only an error if suite was specified, otherwise it
|
||||
# could exist in another suite
|
||||
mtr_error("Test '$full_name' was not found in suite '$sname'")
|
||||
if $sname;
|
||||
|
||||
next;
|
||||
}
|
||||
$component_id= $exts{$extension};
|
||||
}
|
||||
else
|
||||
{
|
||||
my $mysqld_test_exists = -f "$testdir/$tname.test";
|
||||
my $im_test_exists = -f "$testdir/$tname.imtest";
|
||||
# No extension was specified
|
||||
my ($ext, $component);
|
||||
while (($ext, $component)= each %exts) {
|
||||
my $full_name= "$testdir/$tname.$ext";
|
||||
|
||||
if ( $mysqld_test_exists and $im_test_exists )
|
||||
{
|
||||
mtr_error("Ambiguous test case name ($tname)");
|
||||
}
|
||||
elsif ( ! $mysqld_test_exists and ! $im_test_exists )
|
||||
{
|
||||
# Silently skip, could exist in another suite
|
||||
next;
|
||||
}
|
||||
elsif ( $mysqld_test_exists )
|
||||
{
|
||||
$elem= "$tname.test";
|
||||
$component_id= 'mysqld';
|
||||
}
|
||||
elsif ( $im_test_exists )
|
||||
{
|
||||
$elem= "$tname.imtest";
|
||||
$component_id= 'im';
|
||||
}
|
||||
if ( ! -f $full_name ) {
|
||||
next;
|
||||
}
|
||||
$component_id= $component;
|
||||
$extension= $ext;
|
||||
}
|
||||
# Test not found here, could exist in other suite
|
||||
next unless $component_id;
|
||||
}
|
||||
|
||||
collect_one_test_case($testdir,$resdir,$suite,$tname,
|
||||
$elem,$cases,\%disabled,$component_id,
|
||||
$suite_opts);
|
||||
"$tname.$extension",$cases,\%disabled,
|
||||
$component_id,$suite_opts);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -288,8 +326,7 @@ sub collect_one_suite($$)
|
||||
}
|
||||
|
||||
# Skip tests that does not match the --do-test= filter
|
||||
next if $::opt_do_test and
|
||||
! defined mtr_match_prefix($elem,$::opt_do_test);
|
||||
next if ($do_test and not $tname =~ /$do_test/o);
|
||||
|
||||
collect_one_test_case($testdir,$resdir,$suite,$tname,
|
||||
$elem,$cases,\%disabled,$component_id,
|
||||
@ -333,7 +370,7 @@ sub collect_one_test_case($$$$$$$$$) {
|
||||
|
||||
|
||||
my $tinfo= {};
|
||||
$tinfo->{'name'}= "$suite.$tname";
|
||||
$tinfo->{'name'}= basename($suite) . ".$tname";
|
||||
$tinfo->{'result_file'}= "$resdir/$tname.result";
|
||||
$tinfo->{'component_id'} = $component_id;
|
||||
push(@$cases, $tinfo);
|
||||
@ -342,7 +379,7 @@ sub collect_one_test_case($$$$$$$$$) {
|
||||
# Skip some tests but include in list, just mark them to skip
|
||||
# ----------------------------------------------------------------------
|
||||
|
||||
if ( $::opt_skip_test and defined mtr_match_prefix($tname,$::opt_skip_test) )
|
||||
if ( $skip_test and $tname =~ /$skip_test/o )
|
||||
{
|
||||
$tinfo->{'skip'}= 1;
|
||||
return;
|
||||
|
@ -196,7 +196,7 @@ sub mtr_report_stats ($) {
|
||||
"of what went wrong.\n",
|
||||
"If you want to report this error, please read first ",
|
||||
"the documentation at\n",
|
||||
"http://www.mysql.com/doc/en/MySQL_test_suite.html\n";
|
||||
"http://dev.mysql.com/doc/mysql/en/mysql-test-suite.html\n";
|
||||
}
|
||||
if (!$::opt_extern)
|
||||
{
|
||||
|
@ -23,7 +23,16 @@ USE_MANAGER=0
|
||||
MY_TZ=GMT-3
|
||||
TZ=$MY_TZ; export TZ # for UNIX_TIMESTAMP tests to work
|
||||
LOCAL_SOCKET=@MYSQL_UNIX_ADDR@
|
||||
MYSQL_TCP_PORT=@MYSQL_TCP_PORT@
|
||||
|
||||
if [ -z "$MYSQL_TCP_PORT" ]; then
|
||||
MYSQL_TCP_PORT=@MYSQL_TCP_PORT@
|
||||
if [ @MYSQL_TCP_PORT_DEFAULT@ -eq 0 ]; then
|
||||
ESP=`getent services mysql/tcp`
|
||||
if [ $? -eq 0 ]; then
|
||||
MYSQL_TCP_PORT=`echo "$ESP"|sed -e's-^[a-z]*[ ]*\([0-9]*\)/[a-z]*$-\1-g'`
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
umask 022
|
||||
|
||||
@ -981,7 +990,7 @@ show_failed_diff ()
|
||||
$DIFF -c $result_file $reject_file
|
||||
echo "-------------------------------------------------------"
|
||||
echo "Please follow the instructions outlined at"
|
||||
echo "http://dev.mysql.com/doc/mysql/en/reporting-mysqltest-bugs.html"
|
||||
echo "http://forge.mysql.com/wiki/MySQL_Internals_Porting#Debugging_a_MySQL_Server"
|
||||
echo "to find the reason to this problem and how to report this."
|
||||
echo ""
|
||||
fi
|
||||
|
@ -1019,12 +1019,14 @@ sub command_line_setup () {
|
||||
{
|
||||
$opt_testcase_timeout= $default_testcase_timeout;
|
||||
$opt_testcase_timeout*= 10 if $opt_valgrind;
|
||||
$opt_testcase_timeout*= 10 if ($opt_debug and $glob_win32);
|
||||
}
|
||||
|
||||
if ( ! $opt_suite_timeout )
|
||||
{
|
||||
$opt_suite_timeout= $default_suite_timeout;
|
||||
$opt_suite_timeout*= 6 if $opt_valgrind;
|
||||
$opt_suite_timeout*= 6 if ($opt_debug and $glob_win32);
|
||||
}
|
||||
|
||||
if ( ! $opt_user )
|
||||
@ -1354,6 +1356,7 @@ sub datadir_list_setup () {
|
||||
|
||||
sub collect_mysqld_features () {
|
||||
my $found_variable_list_start= 0;
|
||||
my $tmpdir= tempdir(CLEANUP => 0); # Directory removed by this function
|
||||
|
||||
#
|
||||
# Execute "mysqld --help --verbose" to get a list
|
||||
@ -1364,7 +1367,7 @@ sub collect_mysqld_features () {
|
||||
#
|
||||
# --datadir must exist, mysqld will chdir into it
|
||||
#
|
||||
my $list= `$exe_mysqld --no-defaults --datadir=$path_language --language=$path_language --skip-grant-tables --verbose --help`;
|
||||
my $list= `$exe_mysqld --no-defaults --datadir=$tmpdir --language=$path_language --skip-grant-tables --verbose --help`;
|
||||
|
||||
foreach my $line (split('\n', $list))
|
||||
{
|
||||
@ -1419,7 +1422,7 @@ sub collect_mysqld_features () {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
rmtree($tmpdir);
|
||||
mtr_error("Could not find version of MySQL") unless $mysql_version_id;
|
||||
mtr_error("Could not find variabes list") unless $found_variable_list_start;
|
||||
|
||||
@ -3743,6 +3746,11 @@ sub mysqld_arguments ($$$$) {
|
||||
mtr_add_arg($args, "%s--language=%s", $prefix, $path_language);
|
||||
mtr_add_arg($args, "%s--tmpdir=$opt_tmpdir", $prefix);
|
||||
|
||||
# Increase default connect_timeout to avoid intermittent
|
||||
# disconnects when test servers are put under load
|
||||
# see BUG#28359
|
||||
mtr_add_arg($args, "%s--connect-timeout=60", $prefix);
|
||||
|
||||
if ( $opt_valgrind_mysqld )
|
||||
{
|
||||
mtr_add_arg($args, "%s--skip-safemalloc", $prefix);
|
||||
@ -5039,7 +5047,7 @@ sub valgrind_arguments {
|
||||
}
|
||||
|
||||
# Add valgrind options, can be overriden by user
|
||||
mtr_add_arg($args, '%s', $_) for (split(' ', $opt_valgrind_options));
|
||||
mtr_add_arg($args, '%s', $opt_valgrind_options);
|
||||
|
||||
mtr_add_arg($args, $$exe);
|
||||
|
||||
@ -5112,14 +5120,18 @@ Options to control what test suites or cases to run
|
||||
skip-ndb[cluster] Skip all tests that need cluster
|
||||
skip-ndb[cluster]-slave Skip all tests that need a slave cluster
|
||||
ndb-extra Run extra tests from ndb directory
|
||||
do-test=PREFIX Run test cases which name are prefixed with PREFIX
|
||||
do-test=PREFIX or REGEX
|
||||
Run test cases which name are prefixed with PREFIX
|
||||
or fulfills REGEX
|
||||
skip-test=PREFIX or REGEX
|
||||
Skip test cases which name are prefixed with PREFIX
|
||||
or fulfills REGEX
|
||||
start-from=PREFIX Run test cases starting from test prefixed with PREFIX
|
||||
suite[s]=NAME1,..,NAMEN Collect tests in suites from the comma separated
|
||||
list of suite names.
|
||||
The default is: "$opt_suites"
|
||||
skip-rpl Skip the replication test cases.
|
||||
skip-im Don't start IM, and skip the IM test cases
|
||||
skip-test=PREFIX Skip test cases which name are prefixed with PREFIX
|
||||
big-test Set the environment variable BIG_TEST, which can be
|
||||
checked from test cases.
|
||||
|
||||
|
@ -11124,10 +11124,11 @@ auto fld1 companynr fld3 fld4 fld5 fld6
|
||||
SELECT COUNT(auto) FROM t2;
|
||||
COUNT(auto)
|
||||
1213
|
||||
INSERT DELAYED INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
|
||||
INSERT DELAYED INTO t2 VALUES (99999,011403,37,'the','delayed','insert','');
|
||||
INSERT INTO t2 VALUES (100000,000001,00,'after','delayed','insert','');
|
||||
SELECT COUNT(auto) FROM t2;
|
||||
COUNT(auto)
|
||||
1214
|
||||
1215
|
||||
ALTER TABLE t2 DROP COLUMN fld6;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
@ -11139,7 +11140,7 @@ t2 CREATE TABLE `t2` (
|
||||
`fld4` char(35) NOT NULL DEFAULT '',
|
||||
`fld5` char(35) NOT NULL DEFAULT ''
|
||||
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
|
||||
SELECT * FROM t2;
|
||||
SELECT * FROM t2 WHERE auto != 100000;
|
||||
auto fld1 companynr fld3 fld4 fld5
|
||||
1 000001 00 Omaha teethe neat
|
||||
2 011401 37 breaking dreaded Steinberg
|
||||
@ -12354,7 +12355,7 @@ auto fld1 companynr fld3 fld4 fld5
|
||||
2 011401 37 breaking dreaded Steinberg
|
||||
3 011402 37 Romans scholastics jarring
|
||||
4 011403 37 intercepted audiology tinily
|
||||
4 011403 37 intercepted audiology tinily
|
||||
99999 011403 37 the delayed insert
|
||||
CREATE TABLE `t5` (
|
||||
`a` int(11) NOT NULL auto_increment,
|
||||
b char(12),
|
||||
|
46
mysql-test/r/change_user.result
Normal file
46
mysql-test/r/change_user.result
Normal file
@ -0,0 +1,46 @@
|
||||
Bug#20023
|
||||
SELECT @@session.sql_big_selects;
|
||||
@@session.sql_big_selects
|
||||
1
|
||||
SELECT @@global.max_join_size;
|
||||
@@global.max_join_size
|
||||
-1
|
||||
change_user
|
||||
SELECT @@session.sql_big_selects;
|
||||
@@session.sql_big_selects
|
||||
1
|
||||
SELECT @@global.max_join_size;
|
||||
@@global.max_join_size
|
||||
-1
|
||||
SET @@global.max_join_size = 10000;
|
||||
SET @@session.max_join_size = default;
|
||||
change_user
|
||||
SELECT @@session.sql_big_selects;
|
||||
@@session.sql_big_selects
|
||||
0
|
||||
SET @@global.max_join_size = -1;
|
||||
SET @@session.max_join_size = default;
|
||||
change_user
|
||||
SELECT @@session.sql_big_selects;
|
||||
@@session.sql_big_selects
|
||||
1
|
||||
Bug#31418
|
||||
SELECT IS_FREE_LOCK('bug31418');
|
||||
IS_FREE_LOCK('bug31418')
|
||||
1
|
||||
SELECT IS_USED_LOCK('bug31418');
|
||||
IS_USED_LOCK('bug31418')
|
||||
NULL
|
||||
SELECT GET_LOCK('bug31418', 1);
|
||||
GET_LOCK('bug31418', 1)
|
||||
1
|
||||
SELECT IS_USED_LOCK('bug31418') = CONNECTION_ID();
|
||||
IS_USED_LOCK('bug31418') = CONNECTION_ID()
|
||||
1
|
||||
change_user
|
||||
SELECT IS_FREE_LOCK('bug31418');
|
||||
IS_FREE_LOCK('bug31418')
|
||||
1
|
||||
SELECT IS_USED_LOCK('bug31418');
|
||||
IS_USED_LOCK('bug31418')
|
||||
NULL
|
@ -611,11 +611,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t3 index period period 4 NULL 1
|
||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t1 index period period 4 NULL 1
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
select period from t1;
|
||||
period
|
||||
|
@ -438,7 +438,7 @@ explain t2;
|
||||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
b bigint(11) NO 0
|
||||
c bigint(11) NO 0
|
||||
c bigint(11) unsigned NO 0
|
||||
d date YES NULL
|
||||
e varchar(1) NO
|
||||
f datetime YES NULL
|
||||
@ -1588,14 +1588,6 @@ CREATE DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
|
||||
ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
DROP DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
RENAME DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa TO a;
|
||||
ERROR 42000: Unknown database 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
RENAME DATABASE mysqltest TO aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
create database mysqltest;
|
||||
RENAME DATABASE mysqltest TO aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
drop database mysqltest;
|
||||
USE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
ERROR 42000: Incorrect database name 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
SHOW CREATE DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
@ -1699,4 +1691,18 @@ ERROR 42000: Identifier name 'очень_очень_очень_очень_оче
|
||||
drop view имя_вью_кодировке_утф8_длиной_больше_чем_42;
|
||||
drop table имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48;
|
||||
set names default;
|
||||
drop table if exists t1,t2,t3;
|
||||
drop function if exists f1;
|
||||
create function f1() returns int
|
||||
begin
|
||||
declare res int;
|
||||
create temporary table t3 select 1 i;
|
||||
set res:= (select count(*) from t1);
|
||||
drop temporary table t3;
|
||||
return res;
|
||||
end|
|
||||
create table t1 as select 1;
|
||||
create table t2 as select f1() from t1;
|
||||
drop table t1,t2;
|
||||
drop function f1;
|
||||
End of 5.1 tests
|
||||
|
@ -4929,7 +4929,7 @@ Note 1051 Unknown table 't2'
|
||||
Note 1051 Unknown table 't3'
|
||||
Note 1051 Unknown table 't4'
|
||||
DROP TABLE IF EXISTS bug13894;
|
||||
CREATE TABLE bug13894 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE bug13894 ( val integer not null ) ENGINE = CSV;
|
||||
INSERT INTO bug13894 VALUES (5);
|
||||
INSERT INTO bug13894 VALUES (10);
|
||||
INSERT INTO bug13894 VALUES (11);
|
||||
@ -4949,7 +4949,7 @@ val
|
||||
11
|
||||
DROP TABLE bug13894;
|
||||
DROP TABLE IF EXISTS bug14672;
|
||||
CREATE TABLE bug14672 (c1 integer) engine = CSV;
|
||||
CREATE TABLE bug14672 (c1 integer not null) engine = CSV;
|
||||
INSERT INTO bug14672 VALUES (1), (2), (3);
|
||||
SELECT * FROM bug14672;
|
||||
c1
|
||||
@ -4975,7 +4975,7 @@ c1
|
||||
4
|
||||
5
|
||||
DROP TABLE bug14672;
|
||||
CREATE TABLE test_concurrent_insert ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_concurrent_insert ( val integer not null ) ENGINE = CSV;
|
||||
LOCK TABLES test_concurrent_insert READ LOCAL;
|
||||
INSERT INTO test_concurrent_insert VALUES (1);
|
||||
SELECT * FROM test_concurrent_insert;
|
||||
@ -4992,7 +4992,7 @@ val
|
||||
2
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE test_concurrent_insert;
|
||||
CREATE TABLE test_repair_table ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table ( val integer not null ) ENGINE = CSV;
|
||||
CHECK TABLE test_repair_table;
|
||||
Table Op Msg_type Msg_text
|
||||
test.test_repair_table check status OK
|
||||
@ -5000,7 +5000,7 @@ REPAIR TABLE test_repair_table;
|
||||
Table Op Msg_type Msg_text
|
||||
test.test_repair_table repair status OK
|
||||
DROP TABLE test_repair_table;
|
||||
CREATE TABLE test_repair_table2 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table2 ( val integer not null ) ENGINE = CSV;
|
||||
SELECT * from test_repair_table2;
|
||||
val
|
||||
Warnings:
|
||||
@ -5011,7 +5011,7 @@ CHECK TABLE test_repair_table2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.test_repair_table2 check status OK
|
||||
DROP TABLE test_repair_table2;
|
||||
CREATE TABLE test_repair_table3 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table3 ( val integer not null ) ENGINE = CSV;
|
||||
CHECK TABLE test_repair_table3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.test_repair_table3 check error Corrupt
|
||||
@ -5114,7 +5114,7 @@ num magic_no company_name founded
|
||||
1 0102 CORRECT 1876
|
||||
1 0102 CORRECT2 1876
|
||||
DROP TABLE test_repair_table5;
|
||||
create table t1 (a int) engine=csv;
|
||||
create table t1 (a int not null) engine=csv;
|
||||
insert t1 values (1);
|
||||
delete from t1;
|
||||
affected rows: 1
|
||||
@ -5138,7 +5138,7 @@ insert t1 values (1),(2),(3),(4),(5);
|
||||
truncate table t1;
|
||||
affected rows: 0
|
||||
drop table t1;
|
||||
create table t1 (v varchar(32));
|
||||
create table t1 (v varchar(32) not null);
|
||||
insert into t1 values ('def'),('abc'),('hij'),('3r4f');
|
||||
select * from t1;
|
||||
v
|
||||
@ -5193,8 +5193,8 @@ select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
|
||||
i v
|
||||
4 3r4f
|
||||
drop table t1;
|
||||
create table bug15205 (val int(11) default null) engine=csv;
|
||||
create table bug15205_2 (val int(11) default null) engine=csv;
|
||||
create table bug15205 (val int(11) not null) engine=csv;
|
||||
create table bug15205_2 (val int(11) not null) engine=csv;
|
||||
select * from bug15205;
|
||||
ERROR HY000: Can't get stat of './test/bug15205.CSV' (Errcode: 2)
|
||||
select * from bug15205_2;
|
||||
@ -5205,8 +5205,8 @@ drop table bug15205;
|
||||
drop table bug15205_2;
|
||||
set names latin1;
|
||||
create table t1 (
|
||||
c varchar(1),
|
||||
name varchar(64)
|
||||
c varchar(1) not null,
|
||||
name varchar(64) not null
|
||||
) character set latin1 engine=csv;
|
||||
insert into t1 values (0xC0,'LATIN CAPITAL LETTER A WITH GRAVE');
|
||||
insert into t1 values (0xE0,'LATIN SMALL LETTER A WITH GRAVE');
|
||||
@ -5224,9 +5224,9 @@ FE
|
||||
FF <09> LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
create table bug22080_1 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_2 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_3 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_1 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
create table bug22080_2 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
create table bug22080_3 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
insert into bug22080_1 values(1,'string');
|
||||
insert into bug22080_1 values(2,'string');
|
||||
insert into bug22080_1 values(3,'string');
|
||||
@ -5237,7 +5237,7 @@ check table bug22080_3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.bug22080_3 check error Corrupt
|
||||
drop tables bug22080_1,bug22080_2,bug22080_3;
|
||||
create table float_test (id float,string varchar(64)) Engine=CSV;
|
||||
create table float_test (id float not null,string varchar(64) not null) Engine=CSV;
|
||||
insert into float_test values(1.0,'string');
|
||||
insert into float_test values(2.23,'serg.g');
|
||||
insert into float_test values(0.03,'string');
|
||||
@ -5254,14 +5254,14 @@ id string
|
||||
9.67 string
|
||||
drop table float_test;
|
||||
CREATE TABLE `bug21328` (
|
||||
`col1` int(11) DEFAULT NULL,
|
||||
`col2` int(11) DEFAULT NULL,
|
||||
`col3` int(11) DEFAULT NULL
|
||||
`col1` int(11) NOT NULL,
|
||||
`col2` int(11) NOT NULL,
|
||||
`col3` int(11) NOT NULL
|
||||
) ENGINE=CSV;
|
||||
insert into bug21328 values (1,NULL,NULL);
|
||||
insert into bug21328 values (1,0,0);
|
||||
alter table bug21328 engine=myisam;
|
||||
drop table bug21328;
|
||||
create table t1(a blob, b int) engine=csv;
|
||||
create table t1(a blob not null, b int not null) engine=csv;
|
||||
insert into t1 values('a', 1);
|
||||
flush tables;
|
||||
update t1 set b=2;
|
||||
@ -5269,7 +5269,7 @@ select * from t1;
|
||||
a b
|
||||
a 2
|
||||
drop table t1;
|
||||
create table t1(a int) engine=csv;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values(-1), (-123.34), (2), (-23);
|
||||
select * from t1;
|
||||
a
|
||||
@ -5281,7 +5281,7 @@ check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
drop table t1;
|
||||
create table t1(a int, b int) engine=csv;
|
||||
create table t1(a int not null, b int not null) engine=csv;
|
||||
repair table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair Warning Data truncated for column 'a' at row 5
|
||||
@ -5299,7 +5299,7 @@ check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
drop table t1;
|
||||
create table t1(a int) engine=csv;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values (0), (1), (2);
|
||||
delete from t1 limit 2;
|
||||
check table t1;
|
||||
@ -5315,4 +5315,62 @@ test.t1 check status OK
|
||||
select * from t1;
|
||||
a
|
||||
drop table t1;
|
||||
create table t1(a datetime not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select * from t1;
|
||||
a
|
||||
0000-00-00 00:00:00
|
||||
drop table t1;
|
||||
create table t1(a set('foo','bar') not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select * from t1;
|
||||
a
|
||||
|
||||
drop table t1;
|
||||
create table t1(a varchar(32) not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select * from t1;
|
||||
a
|
||||
|
||||
drop table t1;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select * from t1;
|
||||
a
|
||||
0
|
||||
drop table t1;
|
||||
create table t1(a blob not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select * from t1;
|
||||
a
|
||||
|
||||
drop table t1;
|
||||
create table t1(a bit(1) not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select BIN(a) from t1;
|
||||
BIN(a)
|
||||
0
|
||||
drop table t1;
|
||||
create table t1(a enum('foo','bar') default null) engine=csv;
|
||||
ERROR HY000: Can't create table 'test.t1' (errno: -1)
|
||||
create table t1(a enum('foo','bar') default 'foo') engine=csv;
|
||||
ERROR HY000: Can't create table 'test.t1' (errno: -1)
|
||||
create table t1(a enum('foo','bar') default 'foo' not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
a
|
||||
foo
|
||||
drop table t1;
|
||||
End of 5.1 tests
|
||||
|
@ -52,6 +52,19 @@ SELECT c1 as want1result from t1 where c1 like 'location%';
|
||||
want1result
|
||||
location
|
||||
DROP TABLE t1;
|
||||
create table t1 (a set('a') not null);
|
||||
insert into t1 values (),();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select cast(a as char(1)) from t1;
|
||||
cast(a as char(1))
|
||||
|
||||
|
||||
select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
SET character_set_server= @safe_character_set_server;
|
||||
|
@ -52,6 +52,19 @@ SELECT c1 as want1result from t1 where c1 like 'location%';
|
||||
want1result
|
||||
location
|
||||
DROP TABLE t1;
|
||||
create table t1 (a set('a') not null);
|
||||
insert into t1 values (),();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select cast(a as char(1)) from t1;
|
||||
cast(a as char(1))
|
||||
|
||||
|
||||
select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
SET character_set_server= @safe_character_set_server;
|
||||
|
@ -52,6 +52,19 @@ SELECT c1 as want1result from t1 where c1 like 'location%';
|
||||
want1result
|
||||
location
|
||||
DROP TABLE t1;
|
||||
create table t1 (a set('a') not null);
|
||||
insert into t1 values (),();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select cast(a as char(1)) from t1;
|
||||
cast(a as char(1))
|
||||
|
||||
|
||||
select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
SET character_set_server= @safe_character_set_server;
|
||||
|
@ -52,6 +52,19 @@ SELECT c1 as want1result from t1 where c1 like 'location%';
|
||||
want1result
|
||||
location
|
||||
DROP TABLE t1;
|
||||
create table t1 (a set('a') not null);
|
||||
insert into t1 values (),();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select cast(a as char(1)) from t1;
|
||||
cast(a as char(1))
|
||||
|
||||
|
||||
select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
SET character_set_server= @safe_character_set_server;
|
||||
|
@ -2587,6 +2587,19 @@ SELECT c1 as want1result from t1 where c1 like 'location%';
|
||||
want1result
|
||||
location
|
||||
DROP TABLE t1;
|
||||
create table t1 (a set('a') not null);
|
||||
insert into t1 values (),();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select cast(a as char(1)) from t1;
|
||||
cast(a as char(1))
|
||||
|
||||
|
||||
select a sounds like a from t1;
|
||||
a sounds like a
|
||||
1
|
||||
1
|
||||
drop table t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
SET character_set_server= @safe_character_set_server;
|
||||
|
@ -922,4 +922,7 @@ ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_gen
|
||||
select * from t1 where a=if(b<10,_ucs2 0x0062,_ucs2 0x00C0);
|
||||
ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation '='
|
||||
drop table t1;
|
||||
select hex(char(0x41 using ucs2));
|
||||
hex(char(0x41 using ucs2))
|
||||
0041
|
||||
End of 5.0 tests
|
||||
|
@ -1538,12 +1538,12 @@ char(53647 using utf8)
|
||||
я
|
||||
select char(0xff,0x8f using utf8);
|
||||
char(0xff,0x8f using utf8)
|
||||
<EFBFBD><EFBFBD>
|
||||
|
||||
Warnings:
|
||||
Warning 1300 Invalid utf8 character string: 'FF8F'
|
||||
select convert(char(0xff,0x8f) using utf8);
|
||||
convert(char(0xff,0x8f) using utf8)
|
||||
<EFBFBD><EFBFBD>
|
||||
|
||||
Warnings:
|
||||
Warning 1300 Invalid utf8 character string: 'FF8F'
|
||||
set sql_mode=traditional;
|
||||
@ -1730,3 +1730,41 @@ i
|
||||
1
|
||||
н1234567890
|
||||
DROP TABLE t1, t2;
|
||||
set sql_mode=traditional;
|
||||
select hex(char(0xFF using utf8));
|
||||
hex(char(0xFF using utf8))
|
||||
NULL
|
||||
Warnings:
|
||||
Error 1300 Invalid utf8 character string: 'FF'
|
||||
select hex(convert(0xFF using utf8));
|
||||
hex(convert(0xFF using utf8))
|
||||
NULL
|
||||
Warnings:
|
||||
Error 1300 Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 0x616263FF);
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 X'616263FF');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 B'001111111111');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select (_utf8 X'616263FF');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
set sql_mode=default;
|
||||
select hex(char(0xFF using utf8));
|
||||
hex(char(0xFF using utf8))
|
||||
|
||||
Warnings:
|
||||
Warning 1300 Invalid utf8 character string: 'FF'
|
||||
select hex(convert(0xFF using utf8));
|
||||
hex(convert(0xFF using utf8))
|
||||
|
||||
Warnings:
|
||||
Warning 1300 Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 0x616263FF);
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 X'616263FF');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 B'001111111111');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select (_utf8 X'616263FF');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
|
@ -478,7 +478,7 @@ str_to_date(a,b)
|
||||
create table t2 select str_to_date(a,b) from t1;
|
||||
describe t2;
|
||||
Field Type Null Key Default Extra
|
||||
str_to_date(a,b) binary(29) YES NULL
|
||||
str_to_date(a,b) datetime YES NULL
|
||||
select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f") as f1,
|
||||
str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S") as f2,
|
||||
str_to_date("2003-01-02", "%Y-%m-%d") as f3,
|
||||
|
@ -29,7 +29,8 @@ v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
NULL mysqltest1 v1 SELECT '<27><><EFBFBD><EFBFBD>' AS c1, <20><><EFBFBD> AS c2 NONE YES root@localhost DEFINER koi8r koi8r_general_ci
|
||||
NULL mysqltest1 v1 SELECT '<27><><EFBFBD><EFBFBD>' AS c1, <20><><EFBFBD> AS c2
|
||||
FROM t1 NONE YES root@localhost DEFINER koi8r koi8r_general_ci
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
@ -68,7 +69,8 @@ v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
NULL mysqltest1 v1 SELECT '<27><><EFBFBD><EFBFBD>' AS c1, <20><><EFBFBD> AS c2 NONE YES root@localhost DEFINER koi8r koi8r_general_ci
|
||||
NULL mysqltest1 v1 SELECT '<27><><EFBFBD><EFBFBD>' AS c1, <20><><EFBFBD> AS c2
|
||||
FROM t1 NONE YES root@localhost DEFINER koi8r koi8r_general_ci
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
|
@ -29,7 +29,8 @@ v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
NULL mysqltest1 v1 SELECT 'тест' AS c1, кол AS c2 NONE YES root@localhost DEFINER utf8 utf8_general_ci
|
||||
NULL mysqltest1 v1 SELECT 'тест' AS c1, кол AS c2
|
||||
FROM t1 NONE YES root@localhost DEFINER utf8 utf8_general_ci
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
@ -68,7 +69,8 @@ v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
NULL mysqltest1 v1 SELECT 'тест' AS c1, кол AS c2 NONE YES root@localhost DEFINER utf8 utf8_general_ci
|
||||
NULL mysqltest1 v1 SELECT 'тест' AS c1, кол AS c2
|
||||
FROM t1 NONE YES root@localhost DEFINER utf8 utf8_general_ci
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
|
@ -255,3 +255,32 @@ CREATE TABLE t2(c1 INT) ENGINE=MERGE UNION=(t1);
|
||||
INSERT DELAYED INTO t2 VALUES(1);
|
||||
ERROR HY000: Table storage engine for 't2' doesn't have this option
|
||||
DROP TABLE t1, t2;
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
|
||||
CREATE TABLE `t1` (
|
||||
`id` int(11) PRIMARY KEY auto_increment,
|
||||
`f1` varchar(10) NOT NULL UNIQUE
|
||||
);
|
||||
INSERT DELAYED INTO t1 VALUES(0,"test1");
|
||||
SELECT * FROM t1;
|
||||
id f1
|
||||
0 test1
|
||||
SET SQL_MODE='PIPES_AS_CONCAT';
|
||||
INSERT DELAYED INTO t1 VALUES(0,'a' || 'b');
|
||||
SELECT * FROM t1;
|
||||
id f1
|
||||
0 test1
|
||||
1 ab
|
||||
SET SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,STRICT_ALL_TABLES';
|
||||
INSERT DELAYED INTO t1 VALUES(mod(1,0),"test3");
|
||||
ERROR 22012: Division by 0
|
||||
CREATE TABLE t2 (
|
||||
`id` int(11) PRIMARY KEY auto_increment,
|
||||
`f1` date
|
||||
);
|
||||
SET SQL_MODE='NO_ZERO_DATE,STRICT_ALL_TABLES,NO_ZERO_IN_DATE';
|
||||
INSERT DELAYED INTO t2 VALUES (0,'0000-00-00');
|
||||
ERROR 22007: Incorrect date value: '0000-00-00' for column 'f1' at row 1
|
||||
INSERT DELAYED INTO t2 VALUES (0,'2007-00-00');
|
||||
ERROR 22007: Incorrect date value: '2007-00-00' for column 'f1' at row 1
|
||||
DROP TABLE t1,t2;
|
||||
|
@ -271,3 +271,11 @@ a
|
||||
DROP TABLE t1, t2;
|
||||
DROP DATABASE db1;
|
||||
DROP DATABASE db2;
|
||||
CREATE FUNCTION f1() RETURNS INT RETURN 1;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (0);
|
||||
DELETE FROM t1 ORDER BY (f1(10)) LIMIT 1;
|
||||
ERROR 42000: Incorrect number of arguments for FUNCTION test.f1; expected 0, got 1
|
||||
DROP TABLE t1;
|
||||
DROP FUNCTION f1;
|
||||
End of 5.0 tests
|
||||
|
@ -326,7 +326,8 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
2 DERIVED t2 index PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||
drop table t2;
|
||||
CREATE TABLE `t1` ( `itemid` int(11) NOT NULL default '0', `grpid` varchar(15) NOT NULL default '', `vendor` int(11) NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', `price` decimal(12,2) NOT NULL default '0.00', PRIMARY KEY (`itemid`,`grpid`,`vendor`,`date_`), KEY `itemid` (`itemid`,`vendor`), KEY `itemid_2` (`itemid`,`date_`));
|
||||
insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);
|
||||
insert into t1 values (128, 'rozn', 2, curdate(), 10),
|
||||
(128, 'rozn', 1, curdate(), 10);
|
||||
SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;
|
||||
min max avg
|
||||
10.00 10.00 10
|
||||
|
@ -825,4 +825,46 @@ id group_concat(b.name)
|
||||
1 <09>ra,<2C>ra
|
||||
2 <09>ra,<2C>ra
|
||||
drop table t1;
|
||||
create table t1(a bit not null);
|
||||
insert into t1 values (), (), ();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select group_concat(distinct a) from t1;
|
||||
group_concat(distinct a)
|
||||
0
|
||||
select group_concat(distinct a order by a) from t1;
|
||||
group_concat(distinct a order by a)
|
||||
0
|
||||
drop table t1;
|
||||
create table t1(a bit(2) not null);
|
||||
insert into t1 values (1), (0), (0), (3), (1);
|
||||
select group_concat(distinct a) from t1;
|
||||
group_concat(distinct a)
|
||||
1,0,3
|
||||
select group_concat(distinct a order by a) from t1;
|
||||
group_concat(distinct a order by a)
|
||||
0,1,3
|
||||
select group_concat(distinct a order by a desc) from t1;
|
||||
group_concat(distinct a order by a desc)
|
||||
3,1,0
|
||||
drop table t1;
|
||||
create table t1(a bit(2), b varchar(10), c bit);
|
||||
insert into t1 values (1, 'a', 0), (0, 'b', 1), (0, 'c', 0), (3, 'd', 1),
|
||||
(1, 'e', 1), (3, 'f', 1), (0, 'g', 1);
|
||||
select group_concat(distinct a, c) from t1;
|
||||
group_concat(distinct a, c)
|
||||
10,01,00,31,11
|
||||
select group_concat(distinct a, c order by a) from t1;
|
||||
group_concat(distinct a, c order by a)
|
||||
00,01,11,10,31
|
||||
select group_concat(distinct a, c) from t1;
|
||||
group_concat(distinct a, c)
|
||||
10,01,00,31,11
|
||||
select group_concat(distinct a, c order by a, c) from t1;
|
||||
group_concat(distinct a, c order by a, c)
|
||||
00,01,10,11,31
|
||||
select group_concat(distinct a, c order by a desc, c desc) from t1;
|
||||
group_concat(distinct a, c order by a desc, c desc)
|
||||
31,11,10,01,00
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
|
@ -1368,4 +1368,14 @@ SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1 and b > 1;
|
||||
MIN(a) MIN(b)
|
||||
1 2
|
||||
DROP TABLE t1, t2, t3, t4, t5;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 values (),(),();
|
||||
SELECT (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) ) as x FROM t1
|
||||
GROUP BY x;
|
||||
x
|
||||
0
|
||||
SELECT 1 FROM t1 GROUP BY (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) );
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
|
@ -564,4 +564,9 @@ explain select f2 from t2 where f2 in (1,'b');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 index t2f2 t2f2 5 NULL 3 Using where; Using index
|
||||
drop table t1, t2;
|
||||
create table t1 (a time, key(a));
|
||||
insert into t1 values (),(),(),(),(),(),(),(),(),();
|
||||
select a from t1 where a not in (a,a,a) group by a;
|
||||
a
|
||||
drop table t1;
|
||||
End of 5.1 tests
|
||||
|
@ -369,4 +369,42 @@ mod(5, cast(-2 as unsigned)) mod(5, 18446744073709551614) mod(5, -2)
|
||||
select pow(cast(-2 as unsigned), 5), pow(18446744073709551614, 5), pow(-2, 5);
|
||||
pow(cast(-2 as unsigned), 5) pow(18446744073709551614, 5) pow(-2, 5)
|
||||
2.1359870359209e+96 2.1359870359209e+96 -32
|
||||
CREATE TABLE t1 (a timestamp, b varchar(20), c bit(1));
|
||||
INSERT INTO t1 VALUES('1998-09-23', 'str1', 1), ('2003-03-25', 'str2', 0);
|
||||
SELECT a DIV 900 y FROM t1 GROUP BY y;
|
||||
y
|
||||
22201025555
|
||||
22255916666
|
||||
SELECT DISTINCT a DIV 900 y FROM t1;
|
||||
y
|
||||
22201025555
|
||||
22255916666
|
||||
SELECT b DIV 900 y FROM t1 GROUP BY y;
|
||||
y
|
||||
0
|
||||
SELECT c DIV 900 y FROM t1 GROUP BY y;
|
||||
y
|
||||
0
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a LONGBLOB);
|
||||
INSERT INTO t1 VALUES('1'),('2'),('3');
|
||||
SELECT DISTINCT (a DIV 254576881) FROM t1;
|
||||
(a DIV 254576881)
|
||||
0
|
||||
SELECT (a DIV 254576881) FROM t1 UNION ALL
|
||||
SELECT (a DIV 254576881) FROM t1;
|
||||
(a DIV 254576881)
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a SET('a','b','c'));
|
||||
INSERT INTO t1 VALUES ('a');
|
||||
SELECT a DIV 2 FROM t1 UNION SELECT a DIV 2 FROM t1;
|
||||
a DIV 2
|
||||
0
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
|
@ -190,6 +190,28 @@ ERROR 21000: Operand should contain 1 column(s)
|
||||
drop table table_26093;
|
||||
drop function func_26093_a;
|
||||
drop function func_26093_b;
|
||||
SELECT NAME_CONST('test', NOW());
|
||||
ERROR HY000: Incorrect arguments to NAME_CONST
|
||||
SELECT NAME_CONST('test', UPPER('test'));
|
||||
ERROR HY000: Incorrect arguments to NAME_CONST
|
||||
SELECT NAME_CONST('test', NULL);
|
||||
test
|
||||
NULL
|
||||
SELECT NAME_CONST('test', 1);
|
||||
test
|
||||
1
|
||||
SELECT NAME_CONST('test', -1);
|
||||
test
|
||||
-1
|
||||
SELECT NAME_CONST('test', 1.0);
|
||||
test
|
||||
1.0
|
||||
SELECT NAME_CONST('test', -1.0);
|
||||
test
|
||||
-1.0
|
||||
SELECT NAME_CONST('test', 'test');
|
||||
test
|
||||
test
|
||||
End of 5.0 tests
|
||||
select connection_id() > 0;
|
||||
connection_id() > 0
|
||||
|
@ -98,3 +98,8 @@ R2
|
||||
R3
|
||||
deallocate prepare stmt1;
|
||||
drop table t1;
|
||||
End of 4.1 tests
|
||||
SELECT 1 REGEXP NULL;
|
||||
1 REGEXP NULL
|
||||
NULL
|
||||
End of 5.0 tests
|
||||
|
@ -93,6 +93,9 @@ makedate(9999,365)
|
||||
select makedate(9999,366);
|
||||
makedate(9999,366)
|
||||
NULL
|
||||
select makedate(100,1);
|
||||
makedate(100,1)
|
||||
0100-01-01
|
||||
select addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002");
|
||||
addtime("1997-12-31 23:59:59.999999", "1 1:1:1.000002")
|
||||
1998-01-02 01:01:01.000001
|
||||
@ -196,7 +199,7 @@ f2 datetime YES NULL
|
||||
f3 time YES NULL
|
||||
f4 time YES NULL
|
||||
f5 time YES NULL
|
||||
f6 time NO 00:00:00
|
||||
f6 time YES NULL
|
||||
f7 datetime YES NULL
|
||||
f8 date YES NULL
|
||||
f9 time YES NULL
|
||||
|
@ -726,7 +726,7 @@ t1 CREATE TABLE `t1` (
|
||||
`oct(130)` varchar(64) NOT NULL DEFAULT '',
|
||||
`conv(130,16,10)` varchar(64) NOT NULL DEFAULT '',
|
||||
`hex(130)` varchar(6) NOT NULL DEFAULT '',
|
||||
`char(130)` varbinary(1) NOT NULL DEFAULT '',
|
||||
`char(130)` varbinary(4) NOT NULL DEFAULT '',
|
||||
`format(130,10)` varchar(4) NOT NULL DEFAULT '',
|
||||
`left(_latin2'a',1)` varchar(1) CHARACTER SET latin2 NOT NULL DEFAULT '',
|
||||
`right(_latin2'a',1)` varchar(1) CHARACTER SET latin2 NOT NULL DEFAULT '',
|
||||
@ -2486,4 +2486,14 @@ SUBSTR(a,1,len)
|
||||
ba
|
||||
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 AS SELECT CHAR(0x414243) as c1;
|
||||
SELECT HEX(c1) from t1;
|
||||
HEX(c1)
|
||||
414243
|
||||
DROP TABLE t1;
|
||||
CREATE VIEW v1 AS SELECT CHAR(0x414243) as c1;
|
||||
SELECT HEX(c1) from v1;
|
||||
HEX(c1)
|
||||
414243
|
||||
DROP VIEW v1;
|
||||
End of 5.0 tests
|
||||
|
@ -1027,6 +1027,15 @@ fmtddate field2
|
||||
Sep-4 12:00AM abcd
|
||||
DROP TABLE testBug8868;
|
||||
SET NAMES DEFAULT;
|
||||
CREATE TABLE t1 (
|
||||
a TIMESTAMP
|
||||
);
|
||||
INSERT INTO t1 VALUES (now()), (now());
|
||||
SELECT 1 FROM t1 ORDER BY MAKETIME(1, 1, a);
|
||||
1
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H)
|
||||
union
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H);
|
||||
|
@ -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 8 Using where
|
||||
1 SIMPLE t1 range g g 34 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)
|
||||
@ -301,7 +301,7 @@ count(*)
|
||||
EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g,
|
||||
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range g g 32 NULL 4 Using where
|
||||
1 SIMPLE t2 range g g 34 NULL 4 Using where
|
||||
SELECT fid, AsText(g) FROM t2 WHERE Within(g,
|
||||
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
|
||||
fid AsText(g)
|
||||
@ -1425,6 +1425,37 @@ CHECK TABLE t1 EXTENDED;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
create table t1 (a geometry not null, spatial index(a));
|
||||
insert into t1 values (PointFromWKB(POINT(1.1517219314031e+164, 131072)));
|
||||
insert into t1 values (PointFromWKB(POINT(9.1248812352444e+192, 2.9740338169556e+284)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.7783097267365e-299, -0)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.49166814624e-154, 2.0880974297595e-53)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.0917382598702e+149, 1.2024538023802e+111)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0349165139404e+236, 2.9993936277913e-241)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.5243548967072e-29, 1.2024538023802e+111)));
|
||||
insert into t1 values (PointFromWKB(POINT(0, 6.9835074892995e-251)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0880974297595e-53, 3.1050361846014e+231)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.8728483499323e-188, 2.4600631144627e+260)));
|
||||
insert into t1 values (PointFromWKB(POINT(3.0517578125e-05, 2.0349165139404e+236)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.1517219314031e+164, 1.1818212630766e-125)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.481040258324e-265, 5.7766220027675e-275)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0880974297595e-53, 2.5243548967072e-29)));
|
||||
insert into t1 values (PointFromWKB(POINT(5.7766220027675e-275, 9.9464647281957e+86)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.2181357552967e+130, 3.7857669957337e-270)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.5767114681874e-246, 3.6893488147419e+19)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.5767114681874e-246, 3.7537584144024e+255)));
|
||||
insert into t1 values (PointFromWKB(POINT(3.7857669957337e-270, 1.8033161362863e-130)));
|
||||
insert into t1 values (PointFromWKB(POINT(0, 5.8774717541114e-39)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.1517219314031e+164, 2.2761049594727e-159)));
|
||||
insert into t1 values (PointFromWKB(POINT(6.243497100632e+144, 3.7857669957337e-270)));
|
||||
insert into t1 values (PointFromWKB(POINT(3.7857669957337e-270, 2.6355494858076e-82)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0349165139404e+236, 3.8518598887745e-34)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.6566128730774e-10, 2.0880974297595e-53)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0880974297595e-53, 1.8827498946116e-183)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.8033161362863e-130, 9.1248812352444e+192)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.7783097267365e-299, 2.2761049594727e-159)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.94906280228e+289, 1.2338789709327e-178)));
|
||||
drop table t1;
|
||||
CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) );
|
||||
INSERT INTO t1(foo) VALUES (NULL);
|
||||
ERROR 23000: Column 'foo' cannot be null
|
||||
|
@ -736,6 +736,12 @@ SELECT * FROM t1;
|
||||
a
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE `t1` ( `col9` set('a'), `col89` date);
|
||||
INSERT INTO `t1` VALUES ('','0000-00-00');
|
||||
select geomfromtext(col9,col89) as a from t1;
|
||||
a
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
End of 4.1 tests
|
||||
create table t1 (s1 geometry not null,s2 char(100));
|
||||
create trigger t1_bu before update on t1 for each row set new.s1 = null;
|
||||
@ -889,6 +895,45 @@ drop table t1, t2;
|
||||
SELECT 1;
|
||||
1
|
||||
1
|
||||
CREATE TABLE t1 (p POINT);
|
||||
CREATE TABLE t2 (p POINT, INDEX(p));
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
1
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 system p NULL NULL NULL 1
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
1
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref p p 28 const 1 Using where
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.0 tests
|
||||
End of 5.0 tests
|
||||
create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime);
|
||||
create view v1 as select * from t1;
|
||||
|
@ -1210,6 +1210,9 @@ SELECT * FROM test.t1;
|
||||
f1 f2
|
||||
1 1
|
||||
2 2
|
||||
REVOKE UPDATE (f1) ON `test`.`t1` FROM 'mysqltest_1'@'localhost';
|
||||
REVOKE SELECT ON `test`.* FROM 'mysqltest_1'@'localhost';
|
||||
REVOKE ALL ON db27878.* FROM 'mysqltest_1'@'localhost';
|
||||
DROP DATABASE db27878;
|
||||
use test;
|
||||
DROP TABLE t1;
|
||||
|
@ -422,4 +422,22 @@ revoke all privileges, grant option from mysqltest_1@localhost;
|
||||
revoke all privileges, grant option from mysqltest_2@localhost;
|
||||
drop user mysqltest_1@localhost;
|
||||
drop user mysqltest_2@localhost;
|
||||
CREATE DATABASE db1;
|
||||
USE db1;
|
||||
CREATE TABLE t1 (a INT, b INT);
|
||||
INSERT INTO t1 VALUES (1,1),(2,2);
|
||||
CREATE TABLE t2 (b INT, c INT);
|
||||
INSERT INTO t2 VALUES (1,100),(2,200);
|
||||
GRANT SELECT ON t1 TO mysqltest1@localhost;
|
||||
GRANT SELECT (b) ON t2 TO mysqltest1@localhost;
|
||||
USE db1;
|
||||
SELECT c FROM t2;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
|
||||
SELECT * FROM t2;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
|
||||
SELECT * FROM t1 JOIN t2 USING (b);
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
|
||||
DROP TABLE db1.t1, db1.t2;
|
||||
DROP USER mysqltest1@localhost;
|
||||
DROP DATABASE db1;
|
||||
End of 5.0 tests
|
||||
|
@ -16,3 +16,125 @@ delete from mysql.db where user like 'mysqltest\_%';
|
||||
delete from mysql.tables_priv where user like 'mysqltest\_%';
|
||||
delete from mysql.columns_priv where user like 'mysqltest\_%';
|
||||
flush privileges;
|
||||
grant select on test.* to CUser@localhost;
|
||||
grant select on test.* to CUser@LOCALHOST;
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
|
||||
user host
|
||||
CUser LOCALHOST
|
||||
CUser localhost
|
||||
SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
|
||||
user host db select_priv
|
||||
CUser LOCALHOST test Y
|
||||
CUser localhost test Y
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
|
||||
user host
|
||||
CUser LOCALHOST
|
||||
CUser localhost
|
||||
SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
|
||||
user host db select_priv
|
||||
CUser localhost test Y
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
|
||||
user host
|
||||
CUser LOCALHOST
|
||||
CUser localhost
|
||||
SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser' order by 1,2;
|
||||
user host db select_priv
|
||||
DROP USER CUser@localhost;
|
||||
DROP USER CUser@LOCALHOST;
|
||||
create table t1 (a int);
|
||||
grant select on test.t1 to CUser@localhost;
|
||||
grant select on test.t1 to CUser@LOCALHOST;
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
|
||||
user host
|
||||
CUser LOCALHOST
|
||||
CUser localhost
|
||||
SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
|
||||
user host db Table_name Table_priv Column_priv
|
||||
CUser LOCALHOST test t1 Select
|
||||
CUser localhost test t1 Select
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
|
||||
user host
|
||||
CUser LOCALHOST
|
||||
CUser localhost
|
||||
SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
|
||||
user host db Table_name Table_priv Column_priv
|
||||
CUser localhost test t1 Select
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
|
||||
user host
|
||||
CUser LOCALHOST
|
||||
CUser localhost
|
||||
SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
|
||||
user host db Table_name Table_priv Column_priv
|
||||
DROP USER CUser@localhost;
|
||||
DROP USER CUser@LOCALHOST;
|
||||
grant select(a) on test.t1 to CUser@localhost;
|
||||
grant select(a) on test.t1 to CUser@LOCALHOST;
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
|
||||
user host
|
||||
CUser LOCALHOST
|
||||
CUser localhost
|
||||
SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
|
||||
user host db Table_name Table_priv Column_priv
|
||||
CUser LOCALHOST test t1 Select
|
||||
CUser localhost test t1 Select
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'LOCALHOST';
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
|
||||
user host
|
||||
CUser LOCALHOST
|
||||
CUser localhost
|
||||
SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
|
||||
user host db Table_name Table_priv Column_priv
|
||||
CUser localhost test t1 Select
|
||||
REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'CUser'@'localhost';
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser' order by 1,2;
|
||||
user host
|
||||
CUser LOCALHOST
|
||||
CUser localhost
|
||||
SELECT user, host, db, Table_name, Table_priv, Column_priv FROM mysql.tables_priv where user = 'CUser' order by 1,2;
|
||||
user host db Table_name Table_priv Column_priv
|
||||
DROP USER CUser@localhost;
|
||||
DROP USER CUser@LOCALHOST;
|
||||
drop table t1;
|
||||
grant select on test.* to CUser2@localhost;
|
||||
grant select on test.* to CUser2@LOCALHOST;
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
|
||||
user host
|
||||
CUser2 LOCALHOST
|
||||
CUser2 localhost
|
||||
SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
|
||||
user host db select_priv
|
||||
CUser2 LOCALHOST test Y
|
||||
CUser2 localhost test Y
|
||||
REVOKE SELECT ON test.* FROM 'CUser2'@'LOCALHOST';
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
|
||||
user host
|
||||
CUser2 LOCALHOST
|
||||
CUser2 localhost
|
||||
SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
|
||||
user host db select_priv
|
||||
CUser2 localhost test Y
|
||||
REVOKE SELECT ON test.* FROM 'CUser2'@'localhost';
|
||||
flush privileges;
|
||||
SELECT user, host FROM mysql.user where user = 'CUser2' order by 1,2;
|
||||
user host
|
||||
CUser2 LOCALHOST
|
||||
CUser2 localhost
|
||||
SELECT user, host, db, select_priv FROM mysql.db where user = 'CUser2' order by 1,2;
|
||||
user host db select_priv
|
||||
DROP USER CUser2@localhost;
|
||||
DROP USER CUser2@LOCALHOST;
|
||||
|
@ -1093,10 +1093,156 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 144
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index; Using filesort
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index; Using filesort
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index
|
||||
SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
28
|
||||
29
|
||||
30
|
||||
31
|
||||
32
|
||||
33
|
||||
34
|
||||
35
|
||||
36
|
||||
37
|
||||
38
|
||||
39
|
||||
40
|
||||
41
|
||||
42
|
||||
43
|
||||
44
|
||||
45
|
||||
46
|
||||
47
|
||||
48
|
||||
49
|
||||
50
|
||||
51
|
||||
52
|
||||
53
|
||||
54
|
||||
55
|
||||
56
|
||||
57
|
||||
58
|
||||
59
|
||||
60
|
||||
61
|
||||
62
|
||||
63
|
||||
64
|
||||
65
|
||||
66
|
||||
67
|
||||
68
|
||||
69
|
||||
70
|
||||
71
|
||||
72
|
||||
73
|
||||
74
|
||||
75
|
||||
76
|
||||
77
|
||||
78
|
||||
79
|
||||
80
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
||||
85
|
||||
86
|
||||
87
|
||||
88
|
||||
89
|
||||
90
|
||||
91
|
||||
92
|
||||
93
|
||||
94
|
||||
95
|
||||
96
|
||||
97
|
||||
98
|
||||
99
|
||||
100
|
||||
101
|
||||
102
|
||||
103
|
||||
104
|
||||
105
|
||||
106
|
||||
107
|
||||
108
|
||||
109
|
||||
110
|
||||
111
|
||||
112
|
||||
113
|
||||
114
|
||||
115
|
||||
116
|
||||
117
|
||||
118
|
||||
119
|
||||
120
|
||||
121
|
||||
122
|
||||
123
|
||||
124
|
||||
125
|
||||
126
|
||||
127
|
||||
128
|
||||
129
|
||||
130
|
||||
131
|
||||
132
|
||||
133
|
||||
134
|
||||
135
|
||||
136
|
||||
137
|
||||
138
|
||||
139
|
||||
140
|
||||
141
|
||||
142
|
||||
143
|
||||
144
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY)
|
||||
IGNORE INDEX FOR GROUP BY (i2) GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
@ -535,3 +535,43 @@ handler t1_alias READ a next where inexistent > 0;
|
||||
ERROR 42S22: Unknown column 'inexistent' in 'field list'
|
||||
handler t1_alias close;
|
||||
drop table t1;
|
||||
drop table if exists t1,t2;
|
||||
create table t1 (c1 int);
|
||||
create table t2 (c1 int);
|
||||
insert into t1 values (1);
|
||||
insert into t2 values (2);
|
||||
connection: default
|
||||
handler t1 open;
|
||||
handler t1 read first;
|
||||
c1
|
||||
1
|
||||
connection: flush
|
||||
flush tables;;
|
||||
connection: default
|
||||
handler t2 open;
|
||||
handler t2 read first;
|
||||
c1
|
||||
2
|
||||
handler t1 read next;
|
||||
c1
|
||||
1
|
||||
handler t1 close;
|
||||
handler t2 close;
|
||||
drop table t1,t2;
|
||||
drop table if exists t1,t2;
|
||||
create table t1 (c1 int);
|
||||
connection: default
|
||||
handler t1 open;
|
||||
handler t1 read first;
|
||||
c1
|
||||
connection: flush
|
||||
rename table t1 to t2;;
|
||||
connection: default
|
||||
handler t2 open;
|
||||
handler t2 read first;
|
||||
c1
|
||||
handler t1 read next;
|
||||
ERROR 42S02: Table 'test.t1' doesn't exist
|
||||
handler t1 close;
|
||||
handler t2 close;
|
||||
drop table t2;
|
||||
|
@ -535,3 +535,43 @@ handler t1_alias READ a next where inexistent > 0;
|
||||
ERROR 42S22: Unknown column 'inexistent' in 'field list'
|
||||
handler t1_alias close;
|
||||
drop table t1;
|
||||
drop table if exists t1,t2;
|
||||
create table t1 (c1 int);
|
||||
create table t2 (c1 int);
|
||||
insert into t1 values (1);
|
||||
insert into t2 values (2);
|
||||
connection: default
|
||||
handler t1 open;
|
||||
handler t1 read first;
|
||||
c1
|
||||
1
|
||||
connection: flush
|
||||
flush tables;;
|
||||
connection: default
|
||||
handler t2 open;
|
||||
handler t2 read first;
|
||||
c1
|
||||
2
|
||||
handler t1 read next;
|
||||
c1
|
||||
1
|
||||
handler t1 close;
|
||||
handler t2 close;
|
||||
drop table t1,t2;
|
||||
drop table if exists t1,t2;
|
||||
create table t1 (c1 int);
|
||||
connection: default
|
||||
handler t1 open;
|
||||
handler t1 read first;
|
||||
c1
|
||||
connection: flush
|
||||
rename table t1 to t2;;
|
||||
connection: default
|
||||
handler t2 open;
|
||||
handler t2 read first;
|
||||
c1
|
||||
handler t1 read next;
|
||||
ERROR 42S02: Table 'test.t1' doesn't exist
|
||||
handler t1 close;
|
||||
handler t2 close;
|
||||
drop table t2;
|
||||
|
@ -307,6 +307,13 @@ UNIQUE USING BTREE(c1)
|
||||
) ENGINE= MEMORY DEFAULT CHARSET= utf8;
|
||||
INSERT INTO t1 VALUES('1'), ('2');
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, KEY USING BTREE(a)) ENGINE=MEMORY;
|
||||
INSERT INTO t1 VALUES(1),(2),(2);
|
||||
DELETE FROM t1 WHERE a=2;
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
1
|
||||
DROP TABLE t1;
|
||||
End of 4.1 tests
|
||||
CREATE TABLE t1(val INT, KEY USING BTREE(val)) ENGINE=memory;
|
||||
INSERT INTO t1 VALUES(0);
|
||||
@ -321,4 +328,12 @@ DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, UNIQUE USING BTREE(a)) ENGINE=MEMORY;
|
||||
INSERT INTO t1 VALUES(NULL),(NULL);
|
||||
DROP TABLE t1;
|
||||
create table t1(a varchar(255), b varchar(255),
|
||||
key using btree (a,b)) engine=memory;
|
||||
insert into t1 values (1, 1), (3, 3), (2, 2), (NULL, 1), (NULL, NULL), (0, 0);
|
||||
select * from t1 where a is null;
|
||||
a b
|
||||
NULL NULL
|
||||
NULL 1
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
|
@ -388,10 +388,14 @@ Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_par
|
||||
select * from information_schema.views where TABLE_NAME like "v%";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
NULL test v0 select schema_name from information_schema.schemata NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v1 select table_name from information_schema.tables NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v2 select column_name from information_schema.columns NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v3 select CHARACTER_SET_NAME from information_schema.character_sets NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v4 select COLLATION_NAME from information_schema.collations NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v1 select table_name from information_schema.tables
|
||||
where table_name="v1" NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v2 select column_name from information_schema.columns
|
||||
where table_name="v2" NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v3 select CHARACTER_SET_NAME from information_schema.character_sets
|
||||
where CHARACTER_SET_NAME like "latin1%" NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v4 select COLLATION_NAME from information_schema.collations
|
||||
where COLLATION_NAME like "latin1%" NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
drop view v0, v1, v2, v3, v4;
|
||||
create table t1 (a int);
|
||||
grant select,update,insert on t1 to mysqltest_1@localhost;
|
||||
@ -579,7 +583,7 @@ proc sql_data_access enum('CONTAINS_SQL','NO_SQL','READS_SQL_DATA','MODIFIES_SQL
|
||||
proc is_deterministic enum('YES','NO')
|
||||
proc security_type enum('INVOKER','DEFINER')
|
||||
proc param_list blob
|
||||
proc returns char(64)
|
||||
proc returns longblob
|
||||
proc body longblob
|
||||
proc definer char(77)
|
||||
proc created timestamp
|
||||
@ -1470,6 +1474,10 @@ f7 datetime NO NULL
|
||||
f8 datetime YES 2006-01-01 00:00:00
|
||||
drop table t1;
|
||||
End of 5.0 tests.
|
||||
show fields from information_schema.table_names;
|
||||
ERROR 42S02: Unknown table 'table_names' in information_schema
|
||||
show keys from information_schema.table_names;
|
||||
ERROR 42S02: Unknown table 'table_names' in information_schema
|
||||
select * from information_schema.engines WHERE ENGINE="MyISAM";
|
||||
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
|
||||
MyISAM DEFAULT Default engine as of MySQL 3.23 with great performance NO NO NO
|
||||
@ -1544,4 +1552,60 @@ count(*)
|
||||
select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='' AND TABLE_NAME='nonexisting';
|
||||
count(*)
|
||||
0
|
||||
CREATE VIEW v1
|
||||
AS SELECT *
|
||||
FROM INFORMATION_SCHEMA.TABLES;
|
||||
SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS where TABLE_NAME = 'v1';
|
||||
VIEW_DEFINITION
|
||||
SELECT *
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
DROP VIEW v1;
|
||||
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
|
||||
WHERE SCHEMA_NAME ='information_schema';
|
||||
SCHEMA_NAME
|
||||
information_schema
|
||||
SELECT TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA='mysql' and TABLE_NAME= 'db';
|
||||
TABLE_COLLATION
|
||||
utf8_bin
|
||||
select * from information_schema.columns where table_schema = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
select * from `information_schema`.`COLUMNS` where `TABLE_NAME` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
select * from `information_schema`.`KEY_COLUMN_USAGE` where `TABLE_SCHEMA` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
select * from `information_schema`.`KEY_COLUMN_USAGE` where `TABLE_NAME` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
select * from `information_schema`.`PARTITIONS` where `TABLE_SCHEMA` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
select * from `information_schema`.`PARTITIONS` where `TABLE_NAME` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
select * from `information_schema`.`REFERENTIAL_CONSTRAINTS` where `CONSTRAINT_SCHEMA` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME UNIQUE_CONSTRAINT_CATALOG UNIQUE_CONSTRAINT_SCHEMA UNIQUE_CONSTRAINT_NAME MATCH_OPTION UPDATE_RULE DELETE_RULE TABLE_NAME REFERENCED_TABLE_NAME
|
||||
select * from `information_schema`.`REFERENTIAL_CONSTRAINTS` where `TABLE_NAME` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME UNIQUE_CONSTRAINT_CATALOG UNIQUE_CONSTRAINT_SCHEMA UNIQUE_CONSTRAINT_NAME MATCH_OPTION UPDATE_RULE DELETE_RULE TABLE_NAME REFERENCED_TABLE_NAME
|
||||
select * from information_schema.schemata where schema_name = NULL;
|
||||
CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
|
||||
select * from `information_schema`.`STATISTICS` where `TABLE_SCHEMA` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
|
||||
select * from `information_schema`.`STATISTICS` where `TABLE_NAME` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
|
||||
select * from information_schema.tables where table_schema = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
|
||||
select * from information_schema.tables where table_catalog = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
|
||||
select * from information_schema.tables where table_name = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
|
||||
select * from `information_schema`.`TABLE_CONSTRAINTS` where `TABLE_SCHEMA` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
|
||||
select * from `information_schema`.`TABLE_CONSTRAINTS` where `TABLE_NAME` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
|
||||
select * from `information_schema`.`TRIGGERS` where `EVENT_OBJECT_SCHEMA` = NULL;
|
||||
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
|
||||
select * from `information_schema`.`TRIGGERS` where `EVENT_OBJECT_TABLE` = NULL;
|
||||
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
|
||||
select * from `information_schema`.`VIEWS` where `TABLE_SCHEMA` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
select * from `information_schema`.`VIEWS` where `TABLE_NAME` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
End of 5.1 tests.
|
||||
|
@ -546,5 +546,44 @@ Overlaps(@horiz1, @point2)
|
||||
0
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
CREATE TABLE t1 (p POINT);
|
||||
CREATE TABLE t2 (p POINT, INDEX(p));
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
1
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref p p 28 const 1 Using where
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
1
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref p p 28 const 1 Using where
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.0 tests
|
||||
create table t1 (g geometry not null, spatial gk(g)) engine=innodb;
|
||||
ERROR HY000: The used table type doesn't support SPATIAL indexes
|
||||
|
@ -1,5 +1,6 @@
|
||||
SET SESSION STORAGE_ENGINE = InnoDB;
|
||||
drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4;
|
||||
drop procedure if exists p1;
|
||||
create table t1 (
|
||||
c_id int(11) not null default '0',
|
||||
org_id int(11) default null,
|
||||
@ -1419,4 +1420,119 @@ select if(@a=@b,"ok","wrong");
|
||||
if(@a=@b,"ok","wrong")
|
||||
ok
|
||||
drop table t1;
|
||||
SET SESSION AUTOCOMMIT = 0;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
# Switch to connection con1
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(256))
|
||||
ENGINE = InnoDB;
|
||||
INSERT INTO t1 VALUES (1,2);
|
||||
BEGIN;
|
||||
UPDATE t1 SET b = 12 WHERE a = 1;
|
||||
affected rows: 1
|
||||
info: Rows matched: 1 Changed: 1 Warnings: 0
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 12
|
||||
# Switch to connection con2
|
||||
UPDATE t1 SET b = 21 WHERE a = 1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
# Switch to connection con1
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 12
|
||||
ROLLBACK;
|
||||
# 2. test for serialized update:
|
||||
CREATE TABLE t2 (a INT);
|
||||
TRUNCATE t1;
|
||||
INSERT INTO t1 VALUES (1,'init');
|
||||
CREATE PROCEDURE p1()
|
||||
BEGIN
|
||||
UPDATE t1 SET b = CONCAT(b, '+con2') WHERE a = 1;
|
||||
INSERT INTO t2 VALUES ();
|
||||
END|
|
||||
BEGIN;
|
||||
UPDATE t1 SET b = CONCAT(b, '+con1') WHERE a = 1;
|
||||
affected rows: 1
|
||||
info: Rows matched: 1 Changed: 1 Warnings: 0
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 init+con1
|
||||
# Switch to connection con2
|
||||
CALL p1;;
|
||||
# Switch to connection con1
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 init+con1
|
||||
COMMIT;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 init+con1
|
||||
# Switch to connection con2
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 init+con1+con2
|
||||
# Switch to connection con1
|
||||
# 3. test for updated key column:
|
||||
TRUNCATE t1;
|
||||
TRUNCATE t2;
|
||||
INSERT INTO t1 VALUES (1,'init');
|
||||
BEGIN;
|
||||
UPDATE t1 SET a = 2, b = CONCAT(b, '+con1') WHERE a = 1;
|
||||
affected rows: 1
|
||||
info: Rows matched: 1 Changed: 1 Warnings: 0
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
2 init+con1
|
||||
# Switch to connection con2
|
||||
CALL p1;;
|
||||
# Switch to connection con1
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
2 init+con1
|
||||
COMMIT;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
2 init+con1
|
||||
# Switch to connection con2
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
2 init+con1
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, PRIMARY KEY (a,b)) engine=innodb;
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
CONSTRAINT c2 FOREIGN KEY f2 (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb;
|
||||
ERROR 42000: Incorrect foreign key definition for 'f2': Key reference and table reference don't match
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb;
|
||||
ERROR 42000: Incorrect foreign key definition for 'c2': Key reference and table reference don't match
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
CONSTRAINT c1 FOREIGN KEY c2 (c) REFERENCES t1 (a) ON DELETE NO ACTION,
|
||||
CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION) engine=innodb;
|
||||
ALTER TABLE t2 DROP FOREIGN KEY c2;
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
FOREIGN KEY (c) REFERENCES t1 (a,k) ON UPDATE NO ACTION) engine=innodb;
|
||||
ERROR 42000: Incorrect foreign key definition for 'foreign key without name': Key reference and table reference don't match
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
FOREIGN KEY f1 (c) REFERENCES t1 (a,k) ON UPDATE NO ACTION) engine=innodb;
|
||||
ERROR 42000: Incorrect foreign key definition for 'f1': Key reference and table reference don't match
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
CONSTRAINT c1 FOREIGN KEY f1 (c) REFERENCES t1 (a) ON DELETE NO ACTION,
|
||||
CONSTRAINT c2 FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION,
|
||||
FOREIGN KEY f3 (c) REFERENCES t1 (a) ON UPDATE NO ACTION,
|
||||
FOREIGN KEY (c) REFERENCES t1 (a) ON UPDATE NO ACTION) engine=innodb;
|
||||
SHOW CREATE TABLE t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`c` int(11) NOT NULL,
|
||||
`d` int(11) NOT NULL,
|
||||
PRIMARY KEY (`c`,`d`),
|
||||
CONSTRAINT `c1` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON DELETE NO ACTION,
|
||||
CONSTRAINT `c2` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON UPDATE NO ACTION,
|
||||
CONSTRAINT `t2_ibfk_1` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON UPDATE NO ACTION,
|
||||
CONSTRAINT `t2_ibfk_2` FOREIGN KEY (`c`) REFERENCES `t1` (`a`) ON UPDATE NO ACTION
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=latin1
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
@ -816,3 +816,15 @@ id prev_id join_id
|
||||
3 2 0
|
||||
4 3 0
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# Bug#30384: Having SQL_BUFFER_RESULT option in the
|
||||
# CREATE .. KEY(..) .. SELECT led to creating corrupted index.
|
||||
#
|
||||
create table t1(f1 int);
|
||||
insert into t1 values(1),(2),(3);
|
||||
create table t2 (key(f1)) engine=myisam select sql_buffer_result f1 from t1;
|
||||
check table t2 extended;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check status OK
|
||||
drop table t1,t2;
|
||||
##################################################################
|
||||
|
@ -897,4 +897,168 @@ select '^^: The above should be ~= 20 + cost(select * from t1). Value less than
|
||||
Z
|
||||
^^: The above should be ~= 20 + cost(select * from t1). Value less than 20 is an error
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
|
||||
CREATE TABLE t2 (c INT PRIMARY KEY, d INT);
|
||||
INSERT INTO t1 VALUES(1,NULL),(2,NULL),(3,NULL),(4,NULL);
|
||||
INSERT INTO t1 SELECT a + 4, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 8, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 16, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 32, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 64, b FROM t1;
|
||||
INSERT INTO t2 SELECT a, b FROM t1;
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 2
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.b 1
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1
|
||||
SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a LIMIT 2;
|
||||
a b c d
|
||||
SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a LIMIT 2;
|
||||
a b c d
|
||||
1 NULL 1 NULL
|
||||
2 NULL 2 NULL
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using filesort
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.b 1
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 128 Using filesort
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1
|
||||
SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a;
|
||||
a b c d
|
||||
SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a;
|
||||
a b c d
|
||||
1 NULL 1 NULL
|
||||
2 NULL 2 NULL
|
||||
3 NULL 3 NULL
|
||||
4 NULL 4 NULL
|
||||
5 NULL 5 NULL
|
||||
6 NULL 6 NULL
|
||||
7 NULL 7 NULL
|
||||
8 NULL 8 NULL
|
||||
9 NULL 9 NULL
|
||||
10 NULL 10 NULL
|
||||
11 NULL 11 NULL
|
||||
12 NULL 12 NULL
|
||||
13 NULL 13 NULL
|
||||
14 NULL 14 NULL
|
||||
15 NULL 15 NULL
|
||||
16 NULL 16 NULL
|
||||
17 NULL 17 NULL
|
||||
18 NULL 18 NULL
|
||||
19 NULL 19 NULL
|
||||
20 NULL 20 NULL
|
||||
21 NULL 21 NULL
|
||||
22 NULL 22 NULL
|
||||
23 NULL 23 NULL
|
||||
24 NULL 24 NULL
|
||||
25 NULL 25 NULL
|
||||
26 NULL 26 NULL
|
||||
27 NULL 27 NULL
|
||||
28 NULL 28 NULL
|
||||
29 NULL 29 NULL
|
||||
30 NULL 30 NULL
|
||||
31 NULL 31 NULL
|
||||
32 NULL 32 NULL
|
||||
33 NULL 33 NULL
|
||||
34 NULL 34 NULL
|
||||
35 NULL 35 NULL
|
||||
36 NULL 36 NULL
|
||||
37 NULL 37 NULL
|
||||
38 NULL 38 NULL
|
||||
39 NULL 39 NULL
|
||||
40 NULL 40 NULL
|
||||
41 NULL 41 NULL
|
||||
42 NULL 42 NULL
|
||||
43 NULL 43 NULL
|
||||
44 NULL 44 NULL
|
||||
45 NULL 45 NULL
|
||||
46 NULL 46 NULL
|
||||
47 NULL 47 NULL
|
||||
48 NULL 48 NULL
|
||||
49 NULL 49 NULL
|
||||
50 NULL 50 NULL
|
||||
51 NULL 51 NULL
|
||||
52 NULL 52 NULL
|
||||
53 NULL 53 NULL
|
||||
54 NULL 54 NULL
|
||||
55 NULL 55 NULL
|
||||
56 NULL 56 NULL
|
||||
57 NULL 57 NULL
|
||||
58 NULL 58 NULL
|
||||
59 NULL 59 NULL
|
||||
60 NULL 60 NULL
|
||||
61 NULL 61 NULL
|
||||
62 NULL 62 NULL
|
||||
63 NULL 63 NULL
|
||||
64 NULL 64 NULL
|
||||
65 NULL 65 NULL
|
||||
66 NULL 66 NULL
|
||||
67 NULL 67 NULL
|
||||
68 NULL 68 NULL
|
||||
69 NULL 69 NULL
|
||||
70 NULL 70 NULL
|
||||
71 NULL 71 NULL
|
||||
72 NULL 72 NULL
|
||||
73 NULL 73 NULL
|
||||
74 NULL 74 NULL
|
||||
75 NULL 75 NULL
|
||||
76 NULL 76 NULL
|
||||
77 NULL 77 NULL
|
||||
78 NULL 78 NULL
|
||||
79 NULL 79 NULL
|
||||
80 NULL 80 NULL
|
||||
81 NULL 81 NULL
|
||||
82 NULL 82 NULL
|
||||
83 NULL 83 NULL
|
||||
84 NULL 84 NULL
|
||||
85 NULL 85 NULL
|
||||
86 NULL 86 NULL
|
||||
87 NULL 87 NULL
|
||||
88 NULL 88 NULL
|
||||
89 NULL 89 NULL
|
||||
90 NULL 90 NULL
|
||||
91 NULL 91 NULL
|
||||
92 NULL 92 NULL
|
||||
93 NULL 93 NULL
|
||||
94 NULL 94 NULL
|
||||
95 NULL 95 NULL
|
||||
96 NULL 96 NULL
|
||||
97 NULL 97 NULL
|
||||
98 NULL 98 NULL
|
||||
99 NULL 99 NULL
|
||||
100 NULL 100 NULL
|
||||
101 NULL 101 NULL
|
||||
102 NULL 102 NULL
|
||||
103 NULL 103 NULL
|
||||
104 NULL 104 NULL
|
||||
105 NULL 105 NULL
|
||||
106 NULL 106 NULL
|
||||
107 NULL 107 NULL
|
||||
108 NULL 108 NULL
|
||||
109 NULL 109 NULL
|
||||
110 NULL 110 NULL
|
||||
111 NULL 111 NULL
|
||||
112 NULL 112 NULL
|
||||
113 NULL 113 NULL
|
||||
114 NULL 114 NULL
|
||||
115 NULL 115 NULL
|
||||
116 NULL 116 NULL
|
||||
117 NULL 117 NULL
|
||||
118 NULL 118 NULL
|
||||
119 NULL 119 NULL
|
||||
120 NULL 120 NULL
|
||||
121 NULL 121 NULL
|
||||
122 NULL 122 NULL
|
||||
123 NULL 123 NULL
|
||||
124 NULL 124 NULL
|
||||
125 NULL 125 NULL
|
||||
126 NULL 126 NULL
|
||||
127 NULL 127 NULL
|
||||
128 NULL 128 NULL
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
End of 5.0 tests.
|
||||
|
@ -42,20 +42,20 @@ show create table mysql.general_log;
|
||||
Table Create Table
|
||||
general_log CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
|
||||
show fields from mysql.general_log;
|
||||
Field Type Null Key Default Extra
|
||||
event_time timestamp NO CURRENT_TIMESTAMP
|
||||
user_host mediumtext YES NULL
|
||||
thread_id int(11) YES NULL
|
||||
server_id int(11) YES NULL
|
||||
command_type varchar(64) YES NULL
|
||||
argument mediumtext YES NULL
|
||||
user_host mediumtext NO NULL
|
||||
thread_id int(11) NO NULL
|
||||
server_id int(11) NO NULL
|
||||
command_type varchar(64) NO NULL
|
||||
argument mediumtext NO NULL
|
||||
show create table mysql.slow_log;
|
||||
Table Create Table
|
||||
slow_log CREATE TABLE `slow_log` (
|
||||
@ -65,10 +65,10 @@ slow_log CREATE TABLE `slow_log` (
|
||||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
|
||||
show fields from mysql.slow_log;
|
||||
@ -79,10 +79,10 @@ query_time time NO NULL
|
||||
lock_time time NO NULL
|
||||
rows_sent int(11) NO NULL
|
||||
rows_examined int(11) NO NULL
|
||||
db varchar(512) YES NULL
|
||||
last_insert_id int(11) YES NULL
|
||||
insert_id int(11) YES NULL
|
||||
server_id int(11) YES NULL
|
||||
db varchar(512) NO NULL
|
||||
last_insert_id int(11) NO NULL
|
||||
insert_id int(11) NO NULL
|
||||
server_id int(11) NO NULL
|
||||
sql_text mediumtext NO NULL
|
||||
flush logs;
|
||||
flush tables;
|
||||
@ -141,11 +141,11 @@ show create table mysql.general_log;
|
||||
Table Create Table
|
||||
general_log CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
|
||||
show create table mysql.slow_log;
|
||||
Table Create Table
|
||||
@ -156,10 +156,10 @@ slow_log CREATE TABLE `slow_log` (
|
||||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
|
||||
alter table mysql.general_log engine=myisam;
|
||||
@ -168,11 +168,11 @@ show create table mysql.general_log;
|
||||
Table Create Table
|
||||
general_log CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='General log'
|
||||
show create table mysql.slow_log;
|
||||
Table Create Table
|
||||
@ -183,10 +183,10 @@ slow_log CREATE TABLE `slow_log` (
|
||||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Slow log'
|
||||
set global general_log='ON';
|
||||
@ -241,11 +241,11 @@ use mysql;
|
||||
CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';
|
||||
CREATE TABLE `slow_log` (
|
||||
`start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
@ -255,10 +255,10 @@ ON UPDATE CURRENT_TIMESTAMP,
|
||||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log';
|
||||
set global general_log='ON';
|
||||
@ -270,6 +270,10 @@ use mysql;
|
||||
lock tables general_log read local, help_category read local;
|
||||
ERROR HY000: You can't use locks with log tables.
|
||||
unlock tables;
|
||||
drop table if exists mysql.renamed_general_log;
|
||||
drop table if exists mysql.renamed_slow_log;
|
||||
drop table if exists mysql.general_log_new;
|
||||
drop table if exists mysql.slow_log_new;
|
||||
use mysql;
|
||||
RENAME TABLE general_log TO renamed_general_log;
|
||||
ERROR HY000: Cannot rename 'general_log'. When logging enabled, rename to/from log table must rename two tables: the log table to an archive table and another table back to 'general_log'
|
||||
@ -399,9 +403,9 @@ My own slow query sleep(2)
|
||||
My own slow query 0
|
||||
SELECT * FROM mysql.slow_log WHERE seq >= 2 LIMIT 3;
|
||||
start_time user_host query_time lock_time rows_sent rows_examined db last_insert_id insert_id server_id sql_text seq
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test NULL NULL 1 SELECT "My own slow query", sleep(2) 2
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test NULL NULL 1 SELECT "My own slow query", sleep(2) 3
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test NULL NULL 1 SELECT "My own slow query", sleep(2) 4
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) 2
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) 3
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) 4
|
||||
SET GLOBAL slow_query_log = 0;
|
||||
SET SESSION long_query_time =@old_long_query_time;
|
||||
FLUSH LOGS;
|
||||
@ -601,3 +605,218 @@ DROP PROCEDURE IF EXISTS `db_17876.archiveGeneralLog`;
|
||||
DROP DATABASE IF EXISTS `db_17876`;
|
||||
SET GLOBAL general_log = @old_general_log_state;
|
||||
SET GLOBAL slow_query_log = @old_slow_log_state;
|
||||
truncate table mysql.general_log;
|
||||
set @old_general_log_state = @@global.general_log;
|
||||
set global general_log = on;
|
||||
set @lparam = "000 001 002 003 004 005 006 007 008 009"
|
||||
"010 011 012 013 014 015 016 017 018 019"
|
||||
"020 021 022 023 024 025 026 027 028 029"
|
||||
"030 031 032 033 034 035 036 037 038 039"
|
||||
"040 041 042 043 044 045 046 047 048 049"
|
||||
"050 051 052 053 054 055 056 057 058 059"
|
||||
"060 061 062 063 064 065 066 067 068 069"
|
||||
"070 071 072 073 074 075 076 077 078 079"
|
||||
"080 081 082 083 084 085 086 087 088 089"
|
||||
"090 091 092 093 094 095 096 097 098 099"
|
||||
"100 101 102 103 104 105 106 107 108 109"
|
||||
"110 111 112 113 114 115 116 117 118 119"
|
||||
"120 121 122 123 124 125 126 127 128 129"
|
||||
"130 131 132 133 134 135 136 137 138 139"
|
||||
"140 141 142 143 144 145 146 147 148 149"
|
||||
"150 151 152 153 154 155 156 157 158 159"
|
||||
"160 161 162 163 164 165 166 167 168 169"
|
||||
"170 171 172 173 174 175 176 177 178 179"
|
||||
"180 181 182 183 184 185 186 187 188 189"
|
||||
"190 191 192 193 194 195 196 197 198 199"
|
||||
"200 201 202 203 204 205 206 207 208 209"
|
||||
"210 211 212 213 214 215 216 217 218 219"
|
||||
"220 221 222 223 224 225 226 227 228 229"
|
||||
"230 231 232 233 234 235 236 237 238 239"
|
||||
"240 241 242 243 244 245 246 247 248 249"
|
||||
"250 251 252 253 254 255 256 257 258 259"
|
||||
"260 261 262 263 264 265 266 267 268 269"
|
||||
"270 271 272 273 274 275 276 277 278 279"
|
||||
"280 281 282 283 284 285 286 287 288 289"
|
||||
"290 291 292 293 294 295 296 297 298 299"
|
||||
"300 301 302 303 304 305 306 307 308 309"
|
||||
"310 311 312 313 314 315 316 317 318 319"
|
||||
"320 321 322 323 324 325 326 327 328 329"
|
||||
"330 331 332 333 334 335 336 337 338 339"
|
||||
"340 341 342 343 344 345 346 347 348 349"
|
||||
"350 351 352 353 354 355 356 357 358 359"
|
||||
"360 361 362 363 364 365 366 367 368 369"
|
||||
"370 371 372 373 374 375 376 377 378 379"
|
||||
"380 381 382 383 384 385 386 387 388 389"
|
||||
"390 391 392 393 394 395 396 397 398 399"
|
||||
"400 401 402 403 404 405 406 407 408 409"
|
||||
"410 411 412 413 414 415 416 417 418 419"
|
||||
"420 421 422 423 424 425 426 427 428 429"
|
||||
"430 431 432 433 434 435 436 437 438 439"
|
||||
"440 441 442 443 444 445 446 447 448 449"
|
||||
"450 451 452 453 454 455 456 457 458 459"
|
||||
"460 461 462 463 464 465 466 467 468 469"
|
||||
"470 471 472 473 474 475 476 477 478 479"
|
||||
"480 481 482 483 484 485 486 487 488 489"
|
||||
"490 491 492 493 494 495 496 497 498 499"
|
||||
"500 501 502 503 504 505 506 507 508 509"
|
||||
"510 511 512 513 514 515 516 517 518 519"
|
||||
"520 521 522 523 524 525 526 527 528 529"
|
||||
"530 531 532 533 534 535 536 537 538 539"
|
||||
"540 541 542 543 544 545 546 547 548 549"
|
||||
"550 551 552 553 554 555 556 557 558 559"
|
||||
"560 561 562 563 564 565 566 567 568 569"
|
||||
"570 571 572 573 574 575 576 577 578 579"
|
||||
"580 581 582 583 584 585 586 587 588 589"
|
||||
"590 591 592 593 594 595 596 597 598 599"
|
||||
"600 601 602 603 604 605 606 607 608 609"
|
||||
"610 611 612 613 614 615 616 617 618 619"
|
||||
"620 621 622 623 624 625 626 627 628 629"
|
||||
"630 631 632 633 634 635 636 637 638 639"
|
||||
"640 641 642 643 644 645 646 647 648 649"
|
||||
"650 651 652 653 654 655 656 657 658 659"
|
||||
"660 661 662 663 664 665 666 667 668 669"
|
||||
"670 671 672 673 674 675 676 677 678 679"
|
||||
"680 681 682 683 684 685 686 687 688 689"
|
||||
"690 691 692 693 694 695 696 697 698 699"
|
||||
"700 701 702 703 704 705 706 707 708 709"
|
||||
"710 711 712 713 714 715 716 717 718 719"
|
||||
"720 721 722 723 724 725 726 727 728 729"
|
||||
"730 731 732 733 734 735 736 737 738 739"
|
||||
"740 741 742 743 744 745 746 747 748 749"
|
||||
"750 751 752 753 754 755 756 757 758 759"
|
||||
"760 761 762 763 764 765 766 767 768 769"
|
||||
"770 771 772 773 774 775 776 777 778 779"
|
||||
"780 781 782 783 784 785 786 787 788 789"
|
||||
"790 791 792 793 794 795 796 797 798 799"
|
||||
"800 801 802 803 804 805 806 807 808 809"
|
||||
"810 811 812 813 814 815 816 817 818 819"
|
||||
"820 821 822 823 824 825 826 827 828 829"
|
||||
"830 831 832 833 834 835 836 837 838 839"
|
||||
"840 841 842 843 844 845 846 847 848 849"
|
||||
"850 851 852 853 854 855 856 857 858 859"
|
||||
"860 861 862 863 864 865 866 867 868 869"
|
||||
"870 871 872 873 874 875 876 877 878 879"
|
||||
"880 881 882 883 884 885 886 887 888 889"
|
||||
"890 891 892 893 894 895 896 897 898 899"
|
||||
"900 901 902 903 904 905 906 907 908 909"
|
||||
"910 911 912 913 914 915 916 917 918 919"
|
||||
"920 921 922 923 924 925 926 927 928 929"
|
||||
"930 931 932 933 934 935 936 937 938 939"
|
||||
"940 941 942 943 944 945 946 947 948 949"
|
||||
"950 951 952 953 954 955 956 957 958 959"
|
||||
"960 961 962 963 964 965 966 967 968 969"
|
||||
"970 971 972 973 974 975 976 977 978 979"
|
||||
"980 981 982 983 984 985 986 987 988 989"
|
||||
"990 991 992 993 994 995 996 997 998 999";
|
||||
prepare long_query from "select ? as long_query";
|
||||
execute long_query using @lparam;
|
||||
set global general_log = off;
|
||||
select command_type, argument from mysql.general_log;
|
||||
command_type argument
|
||||
Query set @lparam = "000 001 002 003 004 005 006 007 008 009"
|
||||
"010 011 012 013 014 015 016 017 018 019"
|
||||
"020 021 022 023 024 025 026 027 028 029"
|
||||
"030 031 032 033 034 035 036 037 038 039"
|
||||
"040 041 042 043 044 045 046 047 048 049"
|
||||
"050 051 052 053 054 055 056 057 058 059"
|
||||
"060 061 062 063 064 065 066 067 068 069"
|
||||
"070 071 072 073 074 075 076 077 078 079"
|
||||
"080 081 082 083 084 085 086 087 088 089"
|
||||
"090 091 092 093 094 095 096 097 098 099"
|
||||
"100 101 102 103 104 105 106 107 108 109"
|
||||
"110 111 112 113 114 115 116 117 118 119"
|
||||
"120 121 122 123 124 125 126 127 128 129"
|
||||
"130 131 132 133 134 135 136 137 138 139"
|
||||
"140 141 142 143 144 145 146 147 148 149"
|
||||
"150 151 152 153 154 155 156 157 158 159"
|
||||
"160 161 162 163 164 165 166 167 168 169"
|
||||
"170 171 172 173 174 175 176 177 178 179"
|
||||
"180 181 182 183 184 185 186 187 188 189"
|
||||
"190 191 192 193 194 195 196 197 198 199"
|
||||
"200 201 202 203 204 205 206 207 208 209"
|
||||
"210 211 212 213 214 215 216 217 218 219"
|
||||
"220 221 222 223 224 225 226 227 228 229"
|
||||
"230 231 232 233 234 235 236 237 238 239"
|
||||
"240 241 242 243 244 245 246 247 248 249"
|
||||
"250 251 252 253 254 255 256 257 258 259"
|
||||
"260 261 262 263 264 265 266 267 268 269"
|
||||
"270 271 272 273 274 275 276 277 278 279"
|
||||
"280 281 282 283 284 285 286 287 288 289"
|
||||
"290 291 292 293 294 295 296 297 298 299"
|
||||
"300 301 302 303 304 305 306 307 308 309"
|
||||
"310 311 312 313 314 315 316 317 318 319"
|
||||
"320 321 322 323 324 325 326 327 328 329"
|
||||
"330 331 332 333 334 335 336 337 338 339"
|
||||
"340 341 342 343 344 345 346 347 348 349"
|
||||
"350 351 352 353 354 355 356 357 358 359"
|
||||
"360 361 362 363 364 365 366 367 368 369"
|
||||
"370 371 372 373 374 375 376 377 378 379"
|
||||
"380 381 382 383 384 385 386 387 388 389"
|
||||
"390 391 392 393 394 395 396 397 398 399"
|
||||
"400 401 402 403 404 405 406 407 408 409"
|
||||
"410 411 412 413 414 415 416 417 418 419"
|
||||
"420 421 422 423 424 425 426 427 428 429"
|
||||
"430 431 432 433 434 435 436 437 438 439"
|
||||
"440 441 442 443 444 445 446 447 448 449"
|
||||
"450 451 452 453 454 455 456 457 458 459"
|
||||
"460 461 462 463 464 465 466 467 468 469"
|
||||
"470 471 472 473 474 475 476 477 478 479"
|
||||
"480 481 482 483 484 485 486 487 488 489"
|
||||
"490 491 492 493 494 495 496 497 498 499"
|
||||
"500 501 502 503 504 505 506 507 508 509"
|
||||
"510 511 512 513 514 515 516 517 518 519"
|
||||
"520 521 522 523 524 525 526 527 528 529"
|
||||
"530 531 532 533 534 535 536 537 538 539"
|
||||
"540 541 542 543 544 545 546 547 548 549"
|
||||
"550 551 552 553 554 555 556 557 558 559"
|
||||
"560 561 562 563 564 565 566 567 568 569"
|
||||
"570 571 572 573 574 575 576 577 578 579"
|
||||
"580 581 582 583 584 585 586 587 588 589"
|
||||
"590 591 592 593 594 595 596 597 598 599"
|
||||
"600 601 602 603 604 605 606 607 608 609"
|
||||
"610 611 612 613 614 615 616 617 618 619"
|
||||
"620 621 622 623 624 625 626 627 628 629"
|
||||
"630 631 632 633 634 635 636 637 638 639"
|
||||
"640 641 642 643 644 645 646 647 648 649"
|
||||
"650 651 652 653 654 655 656 657 658 659"
|
||||
"660 661 662 663 664 665 666 667 668 669"
|
||||
"670 671 672 673 674 675 676 677 678 679"
|
||||
"680 681 682 683 684 685 686 687 688 689"
|
||||
"690 691 692 693 694 695 696 697 698 699"
|
||||
"700 701 702 703 704 705 706 707 708 709"
|
||||
"710 711 712 713 714 715 716 717 718 719"
|
||||
"720 721 722 723 724 725 726 727 728 729"
|
||||
"730 731 732 733 734 735 736 737 738 739"
|
||||
"740 741 742 743 744 745 746 747 748 749"
|
||||
"750 751 752 753 754 755 756 757 758 759"
|
||||
"760 761 762 763 764 765 766 767 768 769"
|
||||
"770 771 772 773 774 775 776 777 778 779"
|
||||
"780 781 782 783 784 785 786 787 788 789"
|
||||
"790 791 792 793 794 795 796 797 798 799"
|
||||
"800 801 802 803 804 805 806 807 808 809"
|
||||
"810 811 812 813 814 815 816 817 818 819"
|
||||
"820 821 822 823 824 825 826 827 828 829"
|
||||
"830 831 832 833 834 835 836 837 838 839"
|
||||
"840 841 842 843 844 845 846 847 848 849"
|
||||
"850 851 852 853 854 855 856 857 858 859"
|
||||
"860 861 862 863 864 865 866 867 868 869"
|
||||
"870 871 872 873 874 875 876 877 878 879"
|
||||
"880 881 882 883 884 885 886 887 888 889"
|
||||
"890 891 892 893 894 895 896 897 898 899"
|
||||
"900 901 902 903 904 905 906 907 908 909"
|
||||
"910 911 912 913 914 915 916 917 918 919"
|
||||
"920 921 922 923 924 925 926 927 928 929"
|
||||
"930 931 932 933 934 935 936 937 938 939"
|
||||
"940 941 942 943 944 945 946 947 948 949"
|
||||
"950 951 952 953 954 955 956 957 958 959"
|
||||
"960 961 962 963 964 965 966 967 968 969"
|
||||
"970 971 972 973 974 975 976 977 978 979"
|
||||
"980 981 982 983 984 985 986 987 988 989"
|
||||
"990 991 992 993 994 995 996 997 998 999"
|
||||
Query prepare long_query from "select ? as long_query"
|
||||
Prepare select ? as long_query
|
||||
Query execute long_query using @lparam
|
||||
Execute select '000 001 002 003 004 005 006 007 008 009010 011 012 013 014 015 016 017 018 019020 021 022 023 024 025 026 027 028 029030 031 032 033 034 035 036 037 038 039040 041 042 043 044 045 046 047 048 049050 051 052 053 054 055 056 057 058 059060 061 062 063 064 065 066 067 068 069070 071 072 073 074 075 076 077 078 079080 081 082 083 084 085 086 087 088 089090 091 092 093 094 095 096 097 098 099100 101 102 103 104 105 106 107 108 109110 111 112 113 114 115 116 117 118 119120 121 122 123 124 125 126 127 128 129130 131 132 133 134 135 136 137 138 139140 141 142 143 144 145 146 147 148 149150 151 152 153 154 155 156 157 158 159160 161 162 163 164 165 166 167 168 169170 171 172 173 174 175 176 177 178 179180 181 182 183 184 185 186 187 188 189190 191 192 193 194 195 196 197 198 199200 201 202 203 204 205 206 207 208 209210 211 212 213 214 215 216 217 218 219220 221 222 223 224 225 226 227 228 229230 231 232 233 234 235 236 237 238 239240 241 242 243 244 245 246 247 248 249250 251 252 253 254 255 256 257 258 259260 261 262 263 264 265 266 267 268 269270 271 272 273 274 275 276 277 278 279280 281 282 283 284 285 286 287 288 289290 291 292 293 294 295 296 297 298 299300 301 302 303 304 305 306 307 308 309310 311 312 313 314 315 316 317 318 319320 321 322 323 324 325 326 327 328 329330 331 332 333 334 335 336 337 338 339340 341 342 343 344 345 346 347 348 349350 351 352 353 354 355 356 357 358 359360 361 362 363 364 365 366 367 368 369370 371 372 373 374 375 376 377 378 379380 381 382 383 384 385 386 387 388 389390 391 392 393 394 395 396 397 398 399400 401 402 403 404 405 406 407 408 409410 411 412 413 414 415 416 417 418 419420 421 422 423 424 425 426 427 428 429430 431 432 433 434 435 436 437 438 439440 441 442 443 444 445 446 447 448 449450 451 452 453 454 455 456 457 458 459460 461 462 463 464 465 466 467 468 469470 471 472 473 474 475 476 477 478 479480 481 482 483 484 485 486 487 488 489490 491 492 493 494 495 496 497 498 499500 501 502 503 504 505 506 507 508 509510 511 512 513 514 515 516 517 518 519520 521 522 523 524 525 526 527 528 529530 531 532 533 534 535 536 537 538 539540 541 542 543 544 545 546 547 548 549550 551 552 553 554 555 556 557 558 559560 561 562 563 564 565 566 567 568 569570 571 572 573 574 575 576 577 578 579580 581 582 583 584 585 586 587 588 589590 591 592 593 594 595 596 597 598 599600 601 602 603 604 605 606 607 608 609610 611 612 613 614 615 616 617 618 619620 621 622 623 624 625 626 627 628 629630 631 632 633 634 635 636 637 638 639640 641 642 643 644 645 646 647 648 649650 651 652 653 654 655 656 657 658 659660 661 662 663 664 665 666 667 668 669670 671 672 673 674 675 676 677 678 679680 681 682 683 684 685 686 687 688 689690 691 692 693 694 695 696 697 698 699700 701 702 703 704 705 706 707 708 709710 711 712 713 714 715 716 717 718 719720 721 722 723 724 725 726 727 728 729730 731 732 733 734 735 736 737 738 739740 741 742 743 744 745 746 747 748 749750 751 752 753 754 755 756 757 758 759760 761 762 763 764 765 766 767 768 769770 771 772 773 774 775 776 777 778 779780 781 782 783 784 785 786 787 788 789790 791 792 793 794 795 796 797 798 799800 801 802 803 804 805 806 807 808 809810 811 812 813 814 815 816 817 818 819820 821 822 823 824 825 826 827 828 829830 831 832 833 834 835 836 837 838 839840 841 842 843 844 845 846 847 848 849850 851 852 853 854 855 856 857 858 859860 861 862 863 864 865 866 867 868 869870 871 872 873 874 875 876 877 878 879880 881 882 883 884 885 886 887 888 889890 891 892 893 894 895 896 897 898 899900 901 902 903 904 905 906 907 908 909910 911 912 913 914 915 916 917 918 919920 921 922 923 924 925 926 927 928 929930 931 932 933 934 935 936 937 938 939940 941 942 943 944 945 946 947 948 949950 951 952 953 954 955 956 957 958 959960 961 962 963 964 965 966 967 968 969970 971 972 973 974 975 976 977 978 979980 981 982 983 984 985 986 987 988 989990 991 992 993 994 995 996 997 998 999' as long_query
|
||||
Query set global general_log = off
|
||||
deallocate prepare long_query;
|
||||
set global general_log = @old_general_log_state;
|
||||
|
@ -879,4 +879,9 @@ CHECK TABLE tm1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.tm1 check status OK
|
||||
DROP TABLE tm1, t1, t2;
|
||||
CREATE TABLE t1(c1 INT);
|
||||
CREATE TABLE t2 (c1 INT) ENGINE=MERGE UNION=(t1) INSERT_METHOD=FIRST;
|
||||
CREATE TABLE IF NOT EXISTS t1 SELECT * FROM t2;
|
||||
ERROR HY000: You can't specify target table 't1' for update in FROM clause
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.0 tests
|
||||
|
@ -3805,6 +3805,28 @@ c1
|
||||
2
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# Bug#29815: new option for suppressing last line of mysqldump:
|
||||
# "Dump completed on"
|
||||
#
|
||||
# --skip-dump-date:
|
||||
--
|
||||
|
||||
|
||||
|
||||
-- Dump completed
|
||||
# --dump-date:
|
||||
--
|
||||
|
||||
|
||||
|
||||
-- Dump completed on DATE
|
||||
# --dump-date (default):
|
||||
--
|
||||
|
||||
|
||||
|
||||
-- Dump completed on DATE
|
||||
#
|
||||
# End of 5.0 tests
|
||||
#
|
||||
drop table if exists t1;
|
||||
|
@ -211,3 +211,9 @@ COMMIT;
|
||||
COMMIT;
|
||||
SHOW TABLES;
|
||||
DROP SCHEMA IF EXISTS `mysqlslap`;
|
||||
#
|
||||
# Bug #29985: mysqlslap -- improper handling of resultsets in SPROCs
|
||||
#
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
CREATE PROCEDURE p1() SELECT 1;
|
||||
DROP PROCEDURE p1;
|
||||
|
@ -722,4 +722,7 @@ a int(11) YES NULL
|
||||
b varchar(255) YES NULL
|
||||
c datetime YES NULL
|
||||
drop table t1;
|
||||
mysqltest: At line 1: change user failed: Unknown database 'inexistent'
|
||||
mysqltest: At line 1: change user failed: Access denied for user 'inexistent'@'localhost' (using password: NO)
|
||||
mysqltest: At line 1: change user failed: Access denied for user 'root'@'localhost' (using password: YES)
|
||||
End of tests
|
||||
|
2153
mysql-test/r/named_pipe.result
Normal file
2153
mysql-test/r/named_pipe.result
Normal file
File diff suppressed because it is too large
Load Diff
@ -1,4 +1,4 @@
|
||||
drop table if exists t1;
|
||||
drop table if exists t1, t2;
|
||||
select null,\N,isnull(null),isnull(1/0),isnull(1/0 = null),ifnull(null,1),ifnull(null,"TRUE"),ifnull("TRUE","ERROR"),1/0 is null,1 is not null;
|
||||
NULL NULL isnull(null) isnull(1/0) isnull(1/0 = null) ifnull(null,1) ifnull(null,"TRUE") ifnull("TRUE","ERROR") 1/0 is null 1 is not null
|
||||
NULL NULL 1 1 1 1 TRUE TRUE 1 1
|
||||
@ -320,3 +320,26 @@ bug19145c CREATE TABLE `bug19145c` (
|
||||
drop table bug19145a;
|
||||
drop table bug19145b;
|
||||
drop table bug19145c;
|
||||
# End of 4.1 tests
|
||||
#
|
||||
# Bug #31471: decimal_bin_size: Assertion `scale >= 0 &&
|
||||
# precision > 0 && scale <= precision'
|
||||
#
|
||||
CREATE TABLE t1 (a DECIMAL (1, 0) ZEROFILL, b DECIMAL (1, 0) ZEROFILL);
|
||||
INSERT INTO t1 (a, b) VALUES (0, 0);
|
||||
CREATE TABLE t2 SELECT IFNULL(a, b) FROM t1;
|
||||
DESCRIBE t2;
|
||||
Field Type Null Key Default Extra
|
||||
IFNULL(a, b) decimal(1,0) unsigned YES NULL
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 SELECT IFNULL(a, NULL) FROM t1;
|
||||
DESCRIBE t2;
|
||||
Field Type Null Key Default Extra
|
||||
IFNULL(a, NULL) decimal(1,0) YES NULL
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 SELECT IFNULL(NULL, b) FROM t1;
|
||||
DESCRIBE t2;
|
||||
Field Type Null Key Default Extra
|
||||
IFNULL(NULL, b) decimal(1,0) YES NULL
|
||||
DROP TABLE t1, t2;
|
||||
# End of 5.0 tests
|
||||
|
@ -715,3 +715,14 @@ a SUM(a)
|
||||
4 4
|
||||
NULL 14
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#31095: Unexpected NULL constant caused server crash.
|
||||
#
|
||||
create table t1(a int);
|
||||
insert into t1 values (1),(2),(3);
|
||||
select count(a) from t1 group by null with rollup;
|
||||
count(a)
|
||||
3
|
||||
3
|
||||
drop table t1;
|
||||
##############################################################
|
||||
|
@ -1131,3 +1131,288 @@ id c3
|
||||
186 14
|
||||
196 14
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
b INT,
|
||||
PRIMARY KEY (a),
|
||||
KEY ab(a, b)
|
||||
);
|
||||
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4);
|
||||
INSERT INTO t1 SELECT a + 4, b + 4 FROM t1;
|
||||
INSERT INTO t1 SELECT a + 8, b + 8 FROM t1;
|
||||
INSERT INTO t1 SELECT a +16, b +16 FROM t1;
|
||||
INSERT INTO t1 SELECT a +32, b +32 FROM t1;
|
||||
INSERT INTO t1 SELECT a +64, b +64 FROM t1;
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range NULL ab 4 NULL 10 Using index for group-by
|
||||
SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
28
|
||||
29
|
||||
30
|
||||
31
|
||||
32
|
||||
33
|
||||
34
|
||||
35
|
||||
36
|
||||
37
|
||||
38
|
||||
39
|
||||
40
|
||||
41
|
||||
42
|
||||
43
|
||||
44
|
||||
45
|
||||
46
|
||||
47
|
||||
48
|
||||
49
|
||||
50
|
||||
51
|
||||
52
|
||||
53
|
||||
54
|
||||
55
|
||||
56
|
||||
57
|
||||
58
|
||||
59
|
||||
60
|
||||
61
|
||||
62
|
||||
63
|
||||
64
|
||||
65
|
||||
66
|
||||
67
|
||||
68
|
||||
69
|
||||
70
|
||||
71
|
||||
72
|
||||
73
|
||||
74
|
||||
75
|
||||
76
|
||||
77
|
||||
78
|
||||
79
|
||||
80
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
||||
85
|
||||
86
|
||||
87
|
||||
88
|
||||
89
|
||||
90
|
||||
91
|
||||
92
|
||||
93
|
||||
94
|
||||
95
|
||||
96
|
||||
97
|
||||
98
|
||||
99
|
||||
100
|
||||
101
|
||||
102
|
||||
103
|
||||
104
|
||||
105
|
||||
106
|
||||
107
|
||||
108
|
||||
109
|
||||
110
|
||||
111
|
||||
112
|
||||
113
|
||||
114
|
||||
115
|
||||
116
|
||||
117
|
||||
118
|
||||
119
|
||||
120
|
||||
121
|
||||
122
|
||||
123
|
||||
124
|
||||
125
|
||||
126
|
||||
127
|
||||
128
|
||||
SELECT @tmp_tables_after = @tmp_tables_before ;
|
||||
@tmp_tables_after = @tmp_tables_before
|
||||
1
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 128 Using index
|
||||
SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
28
|
||||
29
|
||||
30
|
||||
31
|
||||
32
|
||||
33
|
||||
34
|
||||
35
|
||||
36
|
||||
37
|
||||
38
|
||||
39
|
||||
40
|
||||
41
|
||||
42
|
||||
43
|
||||
44
|
||||
45
|
||||
46
|
||||
47
|
||||
48
|
||||
49
|
||||
50
|
||||
51
|
||||
52
|
||||
53
|
||||
54
|
||||
55
|
||||
56
|
||||
57
|
||||
58
|
||||
59
|
||||
60
|
||||
61
|
||||
62
|
||||
63
|
||||
64
|
||||
65
|
||||
66
|
||||
67
|
||||
68
|
||||
69
|
||||
70
|
||||
71
|
||||
72
|
||||
73
|
||||
74
|
||||
75
|
||||
76
|
||||
77
|
||||
78
|
||||
79
|
||||
80
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
||||
85
|
||||
86
|
||||
87
|
||||
88
|
||||
89
|
||||
90
|
||||
91
|
||||
92
|
||||
93
|
||||
94
|
||||
95
|
||||
96
|
||||
97
|
||||
98
|
||||
99
|
||||
100
|
||||
101
|
||||
102
|
||||
103
|
||||
104
|
||||
105
|
||||
106
|
||||
107
|
||||
108
|
||||
109
|
||||
110
|
||||
111
|
||||
112
|
||||
113
|
||||
114
|
||||
115
|
||||
116
|
||||
117
|
||||
118
|
||||
119
|
||||
120
|
||||
121
|
||||
122
|
||||
123
|
||||
124
|
||||
125
|
||||
126
|
||||
127
|
||||
128
|
||||
SELECT @tmp_tables_after = @tmp_tables_before;
|
||||
@tmp_tables_after = @tmp_tables_before
|
||||
1
|
||||
DROP TABLE t1;
|
||||
|
@ -1259,6 +1259,10 @@ INSERT INTO t1 SELECT a + 8, b FROM t1;
|
||||
ALTER TABLE t1 ADD PARTITION (PARTITION p1 VALUES LESS THAN (64));
|
||||
ALTER TABLE t1 DROP PARTITION p1;
|
||||
DROP TABLE t1;
|
||||
create table t (s1 int) engine=myisam partition by key (s1);
|
||||
create trigger t_ad after delete on t for each row insert into t values (old.s1);
|
||||
insert into t values (1);
|
||||
drop table t;
|
||||
USE mysql;
|
||||
SET GLOBAL general_log = 0;
|
||||
ALTER TABLE general_log ENGINE = MyISAM;
|
||||
@ -1267,4 +1271,24 @@ ALTER TABLE general_log PARTITION BY RANGE (TO_DAYS(event_time))
|
||||
ERROR HY000: Incorrect usage of PARTITION and log table
|
||||
ALTER TABLE general_log ENGINE = CSV;
|
||||
SET GLOBAL general_log = default;
|
||||
use test;
|
||||
create table t2 (b int);
|
||||
create table t1 (b int)
|
||||
PARTITION BY RANGE (t2.b) (
|
||||
PARTITION p1 VALUES LESS THAN (10),
|
||||
PARTITION p2 VALUES LESS THAN (20)
|
||||
) select * from t2;
|
||||
ERROR 42S22: Unknown column 't2.b' in 'partition function'
|
||||
create table t1 (a int)
|
||||
PARTITION BY RANGE (b) (
|
||||
PARTITION p1 VALUES LESS THAN (10),
|
||||
PARTITION p2 VALUES LESS THAN (20)
|
||||
) select * from t2;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL,
|
||||
`b` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (b) (PARTITION p1 VALUES LESS THAN (10) ENGINE = MyISAM, PARTITION p2 VALUES LESS THAN (20) ENGINE = MyISAM) */
|
||||
drop table t1, t2;
|
||||
End of 5.1 tests
|
||||
|
@ -129,3 +129,10 @@ insert into t1 (time, first_name, last_name) values ('2007-02-07', 'Q', 'Robert'
|
||||
SELECT * FROM t1 WHERE first_name='Andy' OR last_name='Jake';
|
||||
id time first_name last_name
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a DOUBLE NOT NULL, KEY(a)) ENGINE=InnoDB
|
||||
PARTITION BY KEY(a) PARTITIONS 10;
|
||||
INSERT INTO t1 VALUES(1),(2);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
2
|
||||
DROP TABLE t1;
|
||||
|
@ -2973,11 +2973,13 @@ Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
@ -3011,7 +3013,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
@ -2956,11 +2956,13 @@ Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
@ -2994,7 +2996,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
@ -2957,11 +2957,13 @@ Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
@ -2995,7 +2997,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
@ -2893,11 +2893,13 @@ Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
@ -2931,7 +2933,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
@ -5914,11 +5915,13 @@ Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
@ -5952,7 +5955,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
@ -1650,86 +1650,23 @@ a (select count(*) from t2)
|
||||
3 0
|
||||
4 0
|
||||
drop table t1,t2;
|
||||
DROP DATABASE IF EXISTS bug30269;
|
||||
FLUSH STATUS;
|
||||
CREATE DATABASE bug30269;
|
||||
USE bug30269;
|
||||
CREATE TABLE test1 (id int, name varchar(23));
|
||||
CREATE VIEW view1 AS SELECT * FROM test1;
|
||||
INSERT INTO test1 VALUES (5, 'testit');
|
||||
GRANT SELECT (id) ON TABLE bug30269.test1 TO 'bug30269'@'localhost';
|
||||
GRANT SELECT ON TABLE bug30269.view1 TO 'bug30269'@'localhost';
|
||||
set global query_cache_size= 81920;
|
||||
USE bug30269;
|
||||
show status like 'Qcache_queries_in_cache';
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
# Select statement not stored in query cache because of column privileges.
|
||||
SELECT id FROM test1 WHERE id>2;
|
||||
id
|
||||
5
|
||||
show status like 'Qcache_queries_in_cache';
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
SELECT id FROM view1 WHERE id>2;
|
||||
id
|
||||
5
|
||||
show status like 'Qcache_queries_in_cache';
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 1
|
||||
DROP DATABASE bug30269;
|
||||
DROP USER 'bug30269'@'localhost';
|
||||
set GLOBAL query_cache_type=default;
|
||||
set GLOBAL query_cache_limit=default;
|
||||
set GLOBAL query_cache_min_res_unit=default;
|
||||
set GLOBAL query_cache_size=default;
|
||||
End of 5.0 tests
|
||||
drop database if exists db1;
|
||||
drop database if exists db2;
|
||||
set GLOBAL query_cache_size=15*1024*1024;
|
||||
create database db1;
|
||||
use db1;
|
||||
create table t1(c1 int)engine=myisam;
|
||||
insert into t1(c1) values (1);
|
||||
select * from db1.t1 f;
|
||||
c1
|
||||
CREATE TABLE t1 (a ENUM('rainbow'));
|
||||
INSERT INTO t1 VALUES (),(),(),(),();
|
||||
SELECT 1 FROM t1 GROUP BY (SELECT 1 FROM t1 ORDER BY AVG(LAST_INSERT_ID()));
|
||||
1
|
||||
show status like 'Qcache_queries_in_cache';
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 1
|
||||
rename schema db1 to db2;
|
||||
show status like 'Qcache_queries_in_cache';
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
drop database db2;
|
||||
set global query_cache_size=default;
|
||||
drop database if exists db1;
|
||||
drop database if exists db3;
|
||||
set GLOBAL query_cache_size=15*1024*1024;
|
||||
create database db1;
|
||||
create database db3;
|
||||
use db1;
|
||||
create table t1(c1 int) engine=myisam;
|
||||
use db3;
|
||||
create table t1(c1 int) engine=myisam;
|
||||
use db1;
|
||||
insert into t1(c1) values (1);
|
||||
use mysql;
|
||||
select * from db1.t1;
|
||||
c1
|
||||
1
|
||||
select c1+1 from db1.t1;
|
||||
c1+1
|
||||
2
|
||||
select * from db3.t1;
|
||||
c1
|
||||
show status like 'Qcache_queries_in_cache';
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 3
|
||||
rename schema db1 to db2;
|
||||
show status like 'Qcache_queries_in_cache';
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 1
|
||||
drop database db2;
|
||||
drop database db3;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a LONGBLOB);
|
||||
INSERT INTO t1 SET a = 'aaaa';
|
||||
INSERT INTO t1 SET a = 'aaaa';
|
||||
SELECT 1 FROM t1 GROUP BY
|
||||
(SELECT LAST_INSERT_ID() FROM t1 ORDER BY MIN(a) ASC LIMIT 1);
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
@ -347,3 +347,36 @@ drop table t1;
|
||||
drop function f1;
|
||||
set GLOBAL query_cache_size=0;
|
||||
SET GLOBAL log_bin_trust_function_creators = 0;
|
||||
DROP DATABASE IF EXISTS bug30269;
|
||||
FLUSH STATUS;
|
||||
CREATE DATABASE bug30269;
|
||||
USE bug30269;
|
||||
CREATE TABLE test1 (id int, name varchar(23));
|
||||
CREATE VIEW view1 AS SELECT * FROM test1;
|
||||
INSERT INTO test1 VALUES (5, 'testit');
|
||||
GRANT SELECT (id) ON TABLE bug30269.test1 TO 'bug30269'@'localhost';
|
||||
GRANT SELECT ON TABLE bug30269.view1 TO 'bug30269'@'localhost';
|
||||
set global query_cache_size= 81920;
|
||||
USE bug30269;
|
||||
show status like 'Qcache_queries_in_cache';
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
# Select statement not stored in query cache because of column privileges.
|
||||
SELECT id FROM test1 WHERE id>2;
|
||||
id
|
||||
5
|
||||
show status like 'Qcache_queries_in_cache';
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 0
|
||||
SELECT id FROM view1 WHERE id>2;
|
||||
id
|
||||
5
|
||||
show status like 'Qcache_queries_in_cache';
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 1
|
||||
DROP DATABASE bug30269;
|
||||
DROP USER 'bug30269'@'localhost';
|
||||
set GLOBAL query_cache_type=default;
|
||||
set GLOBAL query_cache_limit=default;
|
||||
set GLOBAL query_cache_min_res_unit=default;
|
||||
set GLOBAL query_cache_size=default;
|
||||
|
@ -1,33 +1,12 @@
|
||||
drop database if exists testdb1;
|
||||
create database testdb1 default character set latin2;
|
||||
use testdb1;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (1),(2),(3);
|
||||
show create database testdb1;
|
||||
Database Create Database
|
||||
testdb1 CREATE DATABASE `testdb1` /*!40100 DEFAULT CHARACTER SET latin2 */
|
||||
show tables;
|
||||
Tables_in_testdb1
|
||||
t1
|
||||
rename database testdb1 to testdb2;
|
||||
show create database testdb1;
|
||||
ERROR 42000: Unknown database 'testdb1'
|
||||
show create database testdb2;
|
||||
Database Create Database
|
||||
testdb2 CREATE DATABASE `testdb2` /*!40100 DEFAULT CHARACTER SET latin2 */
|
||||
select database();
|
||||
database()
|
||||
testdb2
|
||||
show tables;
|
||||
Tables_in_testdb2
|
||||
t1
|
||||
select a from t1 order by a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
drop database testdb2;
|
||||
create database testdb1;
|
||||
rename database testdb1 to testdb1;
|
||||
ERROR HY000: Can't create database 'testdb1'; database exists
|
||||
drop database testdb1;
|
||||
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 'database testdb1 to testdb2' at line 1
|
||||
ALTER DATABASE wrong UPGRADE DATA DIRECTORY NAME;
|
||||
ERROR HY000: Incorrect usage of ALTER DATABASE UPGRADE DATA DIRECTORY NAME and name
|
||||
ALTER DATABASE `#mysql41#not-supported` UPGRADE DATA DIRECTORY NAME;
|
||||
ERROR HY000: Incorrect usage of ALTER DATABASE UPGRADE DATA DIRECTORY NAME and name
|
||||
ALTER DATABASE `#mysql51#not-yet` UPGRADE DATA DIRECTORY NAME;
|
||||
ERROR HY000: Incorrect usage of ALTER DATABASE UPGRADE DATA DIRECTORY NAME and name
|
||||
ALTER DATABASE `#mysql50#` UPGRADE DATA DIRECTORY NAME;
|
||||
ERROR HY000: Incorrect usage of ALTER DATABASE UPGRADE DATA DIRECTORY NAME and name
|
||||
ALTER DATABASE `#mysql50#upgrade-me` UPGRADE DATA DIRECTORY NAME;
|
||||
ERROR 42000: Unknown database '#mysql50#upgrade-me'
|
||||
|
@ -88,6 +88,33 @@ test.t1 repair status OK
|
||||
SET myisam_repair_threads=@@global.myisam_repair_threads;
|
||||
SET myisam_sort_buffer_size=@@global.myisam_sort_buffer_size;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a CHAR(255), KEY(a));
|
||||
SET myisam_sort_buffer_size=4496;
|
||||
INSERT INTO t1 VALUES
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),('0'),
|
||||
('0'),('0'),('0'),('0'),('0'),('0'),('0');
|
||||
SET myisam_repair_threads=2;
|
||||
REPAIR TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
SET myisam_repair_threads=@@global.myisam_repair_threads;
|
||||
SET myisam_sort_buffer_size=@@global.myisam_sort_buffer_size;
|
||||
DROP TABLE t1;
|
||||
End of 4.1 tests
|
||||
DROP TABLE IF EXISTS tt1;
|
||||
CREATE TEMPORARY TABLE tt1 (c1 INT);
|
||||
REPAIR TABLE tt1 USE_FRM;
|
||||
|
@ -607,11 +607,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t3 index period period 4 NULL 1
|
||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t1 index period period 4 NULL 1
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
select period from t1;
|
||||
period
|
||||
|
2155
mysql-test/r/shm.result
Normal file
2155
mysql-test/r/shm.result
Normal file
File diff suppressed because it is too large
Load Diff
@ -155,11 +155,11 @@ Pos Instruction
|
||||
0 stmt 9 "drop temporary table if exists sudoku..."
|
||||
1 stmt 1 "create temporary table sudoku_work ( ..."
|
||||
2 stmt 1 "create temporary table sudoku_schedul..."
|
||||
3 stmt 95 "call sudoku_init()"
|
||||
3 stmt 94 "call sudoku_init()"
|
||||
4 jump_if_not 7(8) p_naive@0
|
||||
5 stmt 4 "update sudoku_work set cnt = 0 where ..."
|
||||
6 jump 8
|
||||
7 stmt 95 "call sudoku_count()"
|
||||
7 stmt 94 "call sudoku_count()"
|
||||
8 stmt 6 "insert into sudoku_schedule (row,col)..."
|
||||
9 set v_scounter@2 0
|
||||
10 set v_i@3 1
|
||||
|
@ -142,7 +142,10 @@ declare c cursor for insert into test.t1 values ("foo", 42);
|
||||
open c;
|
||||
close c;
|
||||
end|
|
||||
ERROR 42000: Cursor statement must be a SELECT
|
||||
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 'insert into test.t1 values ("foo", 42);
|
||||
open c;
|
||||
close c;
|
||||
end' at line 3
|
||||
create procedure p()
|
||||
begin
|
||||
declare x int;
|
||||
@ -1223,7 +1226,7 @@ ERROR 42S02: Unknown table 'c' in field list
|
||||
drop procedure bug15091;
|
||||
drop function if exists bug16896;
|
||||
create aggregate function bug16896() returns int return 1;
|
||||
ERROR 42000: AGGREGATE is not supported for stored functions
|
||||
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 '() returns int return 1' at line 1
|
||||
DROP PROCEDURE IF EXISTS bug14702;
|
||||
CREATE IF NOT EXISTS PROCEDURE bug14702()
|
||||
BEGIN
|
||||
@ -1478,3 +1481,45 @@ end
|
||||
until true end repeat retry;
|
||||
end//
|
||||
ERROR 42000: LEAVE with no matching label: retry
|
||||
drop procedure if exists proc_28360;
|
||||
drop function if exists func_28360;
|
||||
CREATE PROCEDURE proc_28360()
|
||||
BEGIN
|
||||
ALTER DATABASE `#mysql50#upgrade-me` UPGRADE DATA DIRECTORY NAME;
|
||||
END//
|
||||
ERROR HY000: Can't drop or alter a DATABASE from within another stored routine
|
||||
CREATE FUNCTION func_28360() RETURNS int
|
||||
BEGIN
|
||||
ALTER DATABASE `#mysql50#upgrade-me` UPGRADE DATA DIRECTORY NAME;
|
||||
RETURN 0;
|
||||
END//
|
||||
ERROR HY000: Can't drop or alter a DATABASE from within another stored routine
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
CREATE PROCEDURE p1()
|
||||
BEGIN
|
||||
DECLARE c char(100);
|
||||
DECLARE cur1 CURSOR FOR SHOW TABLES;
|
||||
OPEN cur1;
|
||||
FETCH cur1 INTO c;
|
||||
select c;
|
||||
CLOSE cur1;
|
||||
END|
|
||||
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 'SHOW TABLES;
|
||||
OPEN cur1;
|
||||
FETCH cur1 INTO c;
|
||||
select c;
|
||||
CLOSE cur1;
|
||||
END' at line 4
|
||||
DROP DATABASE IF EXISTS mysqltest;
|
||||
CREATE DATABASE mysqltest;
|
||||
USE mysqltest;
|
||||
DROP DATABASE mysqltest;
|
||||
SELECT inexistent(), 1 + ,;
|
||||
ERROR 42000: FUNCTION inexistent does not exist
|
||||
SELECT inexistent();
|
||||
ERROR 42000: FUNCTION inexistent does not exist
|
||||
SELECT .inexistent();
|
||||
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 '()' at line 1
|
||||
SELECT ..inexistent();
|
||||
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 '.inexistent()' at line 1
|
||||
USE test;
|
||||
|
@ -4914,7 +4914,7 @@ create table t3 as select * from v1|
|
||||
show create table t3|
|
||||
Table Create Table
|
||||
t3 CREATE TABLE `t3` (
|
||||
`j` bigint(11) DEFAULT NULL
|
||||
`j` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
select * from t3|
|
||||
j
|
||||
@ -6620,4 +6620,295 @@ DROP TABLE t1;
|
||||
|
||||
DROP PROCEDURE p1;
|
||||
DROP PROCEDURE p2;
|
||||
|
||||
#
|
||||
# Bug#31035.
|
||||
#
|
||||
|
||||
#
|
||||
# - Prepare.
|
||||
#
|
||||
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
DROP FUNCTION IF EXISTS f2;
|
||||
DROP FUNCTION IF EXISTS f3;
|
||||
DROP FUNCTION IF EXISTS f4;
|
||||
|
||||
#
|
||||
# - Create required objects.
|
||||
#
|
||||
|
||||
CREATE TABLE t1(c1 INT);
|
||||
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
|
||||
CREATE FUNCTION f1()
|
||||
RETURNS INT
|
||||
NOT DETERMINISTIC
|
||||
RETURN 1;
|
||||
|
||||
CREATE FUNCTION f2(p INT)
|
||||
RETURNS INT
|
||||
NOT DETERMINISTIC
|
||||
RETURN 1;
|
||||
|
||||
CREATE FUNCTION f3()
|
||||
RETURNS INT
|
||||
DETERMINISTIC
|
||||
RETURN 1;
|
||||
|
||||
CREATE FUNCTION f4(p INT)
|
||||
RETURNS INT
|
||||
DETERMINISTIC
|
||||
RETURN 1;
|
||||
|
||||
#
|
||||
# - Check.
|
||||
#
|
||||
|
||||
SELECT f1() AS a FROM t1 GROUP BY a;
|
||||
a
|
||||
1
|
||||
|
||||
SELECT f2(@a) AS a FROM t1 GROUP BY a;
|
||||
a
|
||||
1
|
||||
|
||||
SELECT f3() AS a FROM t1 GROUP BY a;
|
||||
a
|
||||
1
|
||||
|
||||
SELECT f4(0) AS a FROM t1 GROUP BY a;
|
||||
a
|
||||
1
|
||||
|
||||
SELECT f4(@a) AS a FROM t1 GROUP BY a;
|
||||
a
|
||||
1
|
||||
|
||||
#
|
||||
# - Cleanup.
|
||||
#
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP FUNCTION f1;
|
||||
DROP FUNCTION f2;
|
||||
DROP FUNCTION f3;
|
||||
DROP FUNCTION f4;
|
||||
|
||||
#
|
||||
# Bug#31191.
|
||||
#
|
||||
|
||||
#
|
||||
# - Prepare.
|
||||
#
|
||||
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP TABLE IF EXISTS t2;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
|
||||
#
|
||||
# - Create required objects.
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (
|
||||
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
barcode INT(8) UNSIGNED ZEROFILL nOT NULL,
|
||||
PRIMARY KEY (id),
|
||||
UNIQUE KEY barcode (barcode)
|
||||
);
|
||||
|
||||
INSERT INTO t1 (id, barcode) VALUES (1, 12345678);
|
||||
INSERT INTO t1 (id, barcode) VALUES (2, 12345679);
|
||||
|
||||
CREATE TABLE test.t2 (
|
||||
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||
barcode BIGINT(11) UNSIGNED ZEROFILL NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
INSERT INTO test.t2 (id, barcode) VALUES (1, 12345106708);
|
||||
INSERT INTO test.t2 (id, barcode) VALUES (2, 12345106709);
|
||||
|
||||
CREATE FUNCTION f1(p INT(8))
|
||||
RETURNS BIGINT(11) UNSIGNED
|
||||
READS SQL DATA
|
||||
RETURN FLOOR(p/1000)*1000000 + 100000 + FLOOR((p MOD 1000)/10)*100 + (p MOD 10);
|
||||
|
||||
#
|
||||
# - Check.
|
||||
#
|
||||
|
||||
SELECT DISTINCT t1.barcode, f1(t1.barcode)
|
||||
FROM t1
|
||||
INNER JOIN t2
|
||||
ON f1(t1.barcode) = t2.barcode
|
||||
WHERE t1.barcode=12345678;
|
||||
barcode f1(t1.barcode)
|
||||
12345678 12345106708
|
||||
|
||||
#
|
||||
# - Cleanup.
|
||||
#
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
DROP FUNCTION f1;
|
||||
|
||||
#
|
||||
# Bug#31226.
|
||||
#
|
||||
|
||||
#
|
||||
# - Prepare.
|
||||
#
|
||||
|
||||
DROP TABLE IF EXISTS t1;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
|
||||
#
|
||||
# - Create required objects.
|
||||
#
|
||||
|
||||
CREATE TABLE t1(id INT);
|
||||
|
||||
INSERT INTO t1 VALUES (1), (2), (3);
|
||||
|
||||
CREATE FUNCTION f1()
|
||||
RETURNS DATETIME
|
||||
NOT DETERMINISTIC NO SQL
|
||||
RETURN NOW();
|
||||
|
||||
#
|
||||
# - Check.
|
||||
#
|
||||
|
||||
SELECT f1() FROM t1 GROUP BY 1;
|
||||
f1()
|
||||
<timestamp>
|
||||
|
||||
#
|
||||
# - Cleanup.
|
||||
#
|
||||
|
||||
DROP TABLE t1;
|
||||
DROP FUNCTION f1;
|
||||
|
||||
DROP PROCEDURE IF EXISTS db28318_a.t1;
|
||||
DROP PROCEDURE IF EXISTS db28318_b.t2;
|
||||
DROP DATABASE IF EXISTS db28318_a;
|
||||
DROP DATABASE IF EXISTS db28318_b;
|
||||
CREATE DATABASE db28318_a;
|
||||
CREATE DATABASE db28318_b;
|
||||
CREATE PROCEDURE db28318_a.t1() SELECT "db28318_a.t1";
|
||||
CREATE PROCEDURE db28318_b.t2() CALL t1();
|
||||
use db28318_a;
|
||||
CALL db28318_b.t2();
|
||||
ERROR 42000: PROCEDURE db28318_b.t1 does not exist
|
||||
DROP PROCEDURE db28318_a.t1;
|
||||
DROP PROCEDURE db28318_b.t2;
|
||||
DROP DATABASE db28318_a;
|
||||
DROP DATABASE db28318_b;
|
||||
use test;
|
||||
End of 5.0 tests
|
||||
|
||||
#
|
||||
# Bug#20550.
|
||||
#
|
||||
|
||||
#
|
||||
# - Prepare.
|
||||
#
|
||||
|
||||
DROP VIEW IF EXISTS v1;
|
||||
DROP VIEW IF EXISTS v2;
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
DROP FUNCTION IF EXISTS f2;
|
||||
|
||||
#
|
||||
# - Create required objects.
|
||||
#
|
||||
|
||||
CREATE FUNCTION f1() RETURNS VARCHAR(65525) RETURN 'Hello';
|
||||
|
||||
CREATE FUNCTION f2() RETURNS TINYINT RETURN 1;
|
||||
|
||||
CREATE VIEW v1 AS SELECT f1();
|
||||
|
||||
CREATE VIEW v2 AS SELECT f2();
|
||||
|
||||
#
|
||||
# - Check.
|
||||
#
|
||||
|
||||
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'v1';
|
||||
DATA_TYPE
|
||||
varchar
|
||||
|
||||
SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'v2';
|
||||
DATA_TYPE
|
||||
tinyint
|
||||
|
||||
#
|
||||
# - Cleanup.
|
||||
#
|
||||
|
||||
DROP FUNCTION f1;
|
||||
DROP FUNCTION f2;
|
||||
DROP VIEW v1;
|
||||
DROP VIEW v2;
|
||||
|
||||
#
|
||||
# - Bug#24923: prepare.
|
||||
#
|
||||
|
||||
DROP FUNCTION IF EXISTS f1;
|
||||
|
||||
#
|
||||
# - Bug#24923: create required objects.
|
||||
#
|
||||
|
||||
CREATE FUNCTION f1(p INT)
|
||||
RETURNS ENUM ('Very_long_enum_element_identifier',
|
||||
'Another_very_long_enum_element_identifier')
|
||||
BEGIN
|
||||
CASE p
|
||||
WHEN 1 THEN
|
||||
RETURN 'Very_long_enum_element_identifier';
|
||||
ELSE
|
||||
RETURN 'Another_very_long_enum_element_identifier';
|
||||
END CASE;
|
||||
END|
|
||||
|
||||
#
|
||||
# - Bug#24923: check.
|
||||
#
|
||||
|
||||
SELECT f1(1);
|
||||
f1(1)
|
||||
Very_long_enum_element_identifier
|
||||
|
||||
SELECT f1(2);
|
||||
f1(2)
|
||||
Another_very_long_enum_element_identifier
|
||||
|
||||
SHOW CREATE FUNCTION f1;
|
||||
Function sql_mode Create Function character_set_client collation_connection Database Collation
|
||||
f1 CREATE DEFINER=`root`@`localhost` FUNCTION `f1`(p INT) RETURNS enum('Very_long_enum_element_identifier','Another_very_long_enum_element_identifier') CHARSET latin1
|
||||
BEGIN
|
||||
CASE p
|
||||
WHEN 1 THEN
|
||||
RETURN 'Very_long_enum_element_identifier';
|
||||
ELSE
|
||||
RETURN 'Another_very_long_enum_element_identifier';
|
||||
END CASE;
|
||||
END latin1 latin1_swedish_ci latin1_swedish_ci
|
||||
#
|
||||
# - Bug#24923: cleanup.
|
||||
#
|
||||
|
||||
DROP FUNCTION f1;
|
||||
|
||||
End of 5.1 tests
|
||||
|
@ -608,11 +608,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t3 index period period 4 NULL 1
|
||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t1 index period period 4 NULL 1
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
select period from t1;
|
||||
period
|
||||
|
@ -611,11 +611,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t3 index period period 4 NULL 1
|
||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t1 index period period 4 NULL 1
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
select period from t1;
|
||||
period
|
||||
|
@ -196,7 +196,7 @@ proc CREATE TABLE `proc` (
|
||||
`is_deterministic` enum('YES','NO') NOT NULL DEFAULT 'NO',
|
||||
`security_type` enum('INVOKER','DEFINER') NOT NULL DEFAULT 'DEFINER',
|
||||
`param_list` blob NOT NULL,
|
||||
`returns` char(64) NOT NULL DEFAULT '',
|
||||
`returns` longblob NOT NULL,
|
||||
`body` longblob NOT NULL,
|
||||
`definer` char(77) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL DEFAULT '',
|
||||
`created` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
@ -240,11 +240,11 @@ show create table general_log;
|
||||
Table Create Table
|
||||
general_log CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
|
||||
show create table slow_log;
|
||||
Table Create Table
|
||||
@ -255,10 +255,10 @@ slow_log CREATE TABLE `slow_log` (
|
||||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
|
||||
show tables;
|
||||
|
@ -145,3 +145,82 @@ d dt ts
|
||||
0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||
2001-11-11 2001-11-11 00:00:00 2001-11-11 00:00:00
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
a INT
|
||||
);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT str_to_date( '', a ) FROM t1;
|
||||
str_to_date( '', a )
|
||||
0000-00-00 00:00:00
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a DATE, b int, PRIMARY KEY (a,b));
|
||||
INSERT INTO t1 VALUES (DATE(NOW()), 1);
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
COUNT(*)
|
||||
0
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
INSERT INTO t1 VALUES (DATE(NOW()), 2);
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
COUNT(*)
|
||||
0
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
|
||||
COUNT(*)
|
||||
0
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
ALTER TABLE t1 DROP PRIMARY KEY;
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
COUNT(*)
|
||||
0
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a DATE);
|
||||
CREATE TABLE t2 (a DATE);
|
||||
CREATE INDEX i ON t1 (a);
|
||||
INSERT INTO t1 VALUES ('0000-00-00'),('0000-00-00');
|
||||
INSERT INTO t2 VALUES ('0000-00-00'),('0000-00-00');
|
||||
SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
SELECT * FROM t2 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
SET SQL_MODE=TRADITIONAL;
|
||||
EXPLAIN SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref i i 4 const 1 Using where; Using index
|
||||
Warnings:
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
Warnings:
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
SELECT * FROM t2 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
Warnings:
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
INSERT INTO t1 VALUES ('0000-00-00');
|
||||
ERROR 22007: Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
SET SQL_MODE=DEFAULT;
|
||||
DROP TABLE t1,t2;
|
||||
End of 5.0 tests
|
||||
|
@ -59,6 +59,8 @@ t
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a timestamp, b date, c time, d datetime);
|
||||
insert into t1 (b,c,d) values(now(),curtime(),now());
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'b' at row 1
|
||||
select date_format(a,"%Y-%m-%d")=b,right(a+0,6)=c+0,a=d+0 from t1;
|
||||
date_format(a,"%Y-%m-%d")=b right(a+0,6)=c+0 a=d+0
|
||||
1 1 1
|
||||
@ -427,6 +429,83 @@ f1
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '2007010100000' for column 'f1' at row 1
|
||||
drop table t1;
|
||||
#
|
||||
# Bug#27216: functions with parameters of different date types may
|
||||
# return wrong type of the result.
|
||||
#
|
||||
create table t1 (f1 date, f2 datetime, f3 varchar(20));
|
||||
create table t2 as select coalesce(f1,f1) as f4 from t1;
|
||||
desc t2;
|
||||
Field Type Null Key Default Extra
|
||||
f4 date YES NULL
|
||||
create table t3 as select coalesce(f1,f2) as f4 from t1;
|
||||
desc t3;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t4 as select coalesce(f2,f2) as f4 from t1;
|
||||
desc t4;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t5 as select coalesce(f1,f3) as f4 from t1;
|
||||
desc t5;
|
||||
Field Type Null Key Default Extra
|
||||
f4 varbinary(20) YES NULL
|
||||
create table t6 as select coalesce(f2,f3) as f4 from t1;
|
||||
desc t6;
|
||||
Field Type Null Key Default Extra
|
||||
f4 varbinary(20) YES NULL
|
||||
create table t7 as select coalesce(makedate(1997,1),f2) as f4 from t1;
|
||||
desc t7;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t8 as select coalesce(cast('01-01-01' as datetime),f2) as f4
|
||||
from t1;
|
||||
desc t8;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t9 as select case when 1 then cast('01-01-01' as date)
|
||||
when 0 then cast('01-01-01' as date) end as f4 from t1;
|
||||
desc t9;
|
||||
Field Type Null Key Default Extra
|
||||
f4 date YES NULL
|
||||
create table t10 as select case when 1 then cast('01-01-01' as datetime)
|
||||
when 0 then cast('01-01-01' as datetime) end as f4 from t1;
|
||||
desc t10;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t11 as select if(1, cast('01-01-01' as datetime),
|
||||
cast('01-01-01' as date)) as f4 from t1;
|
||||
desc t11;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t12 as select least(cast('01-01-01' as datetime),
|
||||
cast('01-01-01' as date)) as f4 from t1;
|
||||
desc t12;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t13 as select ifnull(cast('01-01-01' as datetime),
|
||||
cast('01-01-01' as date)) as f4 from t1;
|
||||
desc t13;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
drop tables t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13;
|
||||
###################################################################
|
||||
create table t1 (f1 time);
|
||||
insert into t1 set f1 = '45:44:44';
|
||||
insert into t1 set f1 = '15:44:44';
|
||||
select * from t1 where (convert(f1,datetime)) != 1;
|
||||
f1
|
||||
15:44:44
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '0000-00-00 45:44:44'
|
||||
drop table t1;
|
||||
create table t1 (a tinyint);
|
||||
insert into t1 values (), (), ();
|
||||
select sum(a) from t1 group by convert(a, datetime);
|
||||
sum(a)
|
||||
NULL
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
set @org_mode=@@sql_mode;
|
||||
create table t1 (da date default '1962-03-03 23:33:34', dt datetime default '1962-03-03');
|
||||
Warnings:
|
||||
|
@ -683,6 +683,7 @@ select * from t1;
|
||||
a b
|
||||
123.12345 123.1
|
||||
drop table t1;
|
||||
End of 4.1 tests
|
||||
CREATE TABLE t1
|
||||
(EMPNUM CHAR(3) NOT NULL,
|
||||
HOURS DECIMAL(5));
|
||||
@ -799,3 +800,16 @@ SELECT ROUND(qty,3), dps, ROUND(qty,dps) FROM t1;
|
||||
ROUND(qty,3) dps ROUND(qty,dps)
|
||||
1.133 3 1.133
|
||||
DROP TABLE t1;
|
||||
SELECT 1 % .123456789123456789123456789123456789123456789123456789123456789123456789123456789 AS '%';
|
||||
%
|
||||
0.012345687012345687012345687012345687012345687012345687012345687012345687000000000
|
||||
SELECT MOD(1, .123456789123456789123456789123456789123456789123456789123456789123456789123456789) AS 'MOD()';
|
||||
MOD()
|
||||
0.012345687012345687012345687012345687012345687012345687012345687012345687000000000
|
||||
create table t1 (f1 decimal(6,6),f2 decimal(6,6) zerofill);
|
||||
insert into t1 values (-0.123456,0.123456);
|
||||
select group_concat(f1),group_concat(f2) from t1;
|
||||
group_concat(f1) group_concat(f2)
|
||||
-0.123456 0.123456
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
|
@ -344,6 +344,22 @@ create table t1 (s1 float(0,2));
|
||||
ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 's1').
|
||||
create table t1 (s1 float(1,2));
|
||||
ERROR 42000: For float(M,D), double(M,D) or decimal(M,D), M must be >= D (column 's1').
|
||||
CREATE TABLE t1 (
|
||||
f1 real zerofill,
|
||||
f2 double zerofill,
|
||||
f3 float zerofill);
|
||||
INSERT INTO t1 VALUES ( 0.314152e+1, 0.314152e+1, 0.314152e+1);
|
||||
PREPARE stmt1 FROM 'select f1, f2, f3 FROM t1';
|
||||
select f1, f2, f3 FROM t1;
|
||||
f1 f2 f3
|
||||
0000000000000003.14152 0000000000000003.14152 000003.14152
|
||||
select f1, f2, f3 FROM t1;
|
||||
f1 f2 f3
|
||||
0000000000000003.14152 0000000000000003.14152 000003.14152
|
||||
EXECUTE stmt1;
|
||||
f1 f2 f3
|
||||
0000000000000003.14152 0000000000000003.14152 000003.14152
|
||||
DROP TABLE t1;
|
||||
create table t1 (f1 double(200, 0));
|
||||
insert into t1 values (1e199), (-1e199);
|
||||
insert into t1 values (1e200), (-1e200);
|
||||
|
@ -95,10 +95,10 @@ FR
|
||||
DROP TABLE bug19904;
|
||||
CREATE DEFINER=CURRENT_USER() FUNCTION should_not_parse
|
||||
RETURNS STRING SONAME "should_not_parse.so";
|
||||
ERROR HY000: Incorrect usage of SONAME and DEFINER
|
||||
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 'RETURNS STRING SONAME "should_not_parse.so"' at line 2
|
||||
CREATE DEFINER=someone@somewhere FUNCTION should_not_parse
|
||||
RETURNS STRING SONAME "should_not_parse.so";
|
||||
ERROR HY000: Incorrect usage of SONAME and DEFINER
|
||||
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 'RETURNS STRING SONAME "should_not_parse.so"' at line 2
|
||||
create table t1(f1 int);
|
||||
insert into t1 values(1),(2);
|
||||
explain select myfunc_int(f1) from t1 order by 1;
|
||||
@ -214,7 +214,7 @@ DROP FUNCTION IF EXISTS metaphon;
|
||||
CREATE FUNCTION metaphon(a int) RETURNS int
|
||||
return 0;
|
||||
CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
|
||||
ERROR HY000: Function 'metaphon' already exists
|
||||
DROP FUNCTION metaphon;
|
||||
DROP FUNCTION metaphon;
|
||||
CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
|
||||
CREATE FUNCTION metaphon(a int) RETURNS int
|
||||
@ -334,6 +334,13 @@ Qcache_queries_in_cache 0
|
||||
drop table t1;
|
||||
drop function metaphon;
|
||||
set GLOBAL query_cache_size=default;
|
||||
DROP DATABASE IF EXISTS mysqltest;
|
||||
CREATE DATABASE mysqltest;
|
||||
USE mysqltest;
|
||||
DROP DATABASE mysqltest;
|
||||
CREATE FUNCTION metaphon RETURNS STRING SONAME "UDF_EXAMPLE_LIB";
|
||||
DROP FUNCTION metaphon;
|
||||
USE test;
|
||||
CREATE TABLE const_len_bug (
|
||||
str_const varchar(4000),
|
||||
result1 varchar(4000),
|
||||
|
@ -59,3 +59,28 @@ drop table `txu@0023p@0023p1`;
|
||||
drop table `txu#p#p1`;
|
||||
truncate t1;
|
||||
drop table t1;
|
||||
drop database if exists `tabc`;
|
||||
drop database if exists `a-b-c`;
|
||||
create database `tabc` default character set latin2;
|
||||
create table tabc.t1 (a int);
|
||||
FLUSH TABLES;
|
||||
show databases like '%a-b-c%';
|
||||
Database (%a-b-c%)
|
||||
#mysql50#a-b-c
|
||||
ALTER DATABASE `#mysql50#a-b-c` UPGRADE DATA DIRECTORY NAME;
|
||||
show databases like '%a-b-c%';
|
||||
Database (%a-b-c%)
|
||||
a-b-c
|
||||
show create database `a-b-c`;
|
||||
Database Create Database
|
||||
a-b-c CREATE DATABASE `a-b-c` /*!40100 DEFAULT CHARACTER SET latin2 */
|
||||
show tables in `a-b-c`;
|
||||
Tables_in_a-b-c
|
||||
t1
|
||||
show create table `a-b-c`.`t1`;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` int(11) DEFAULT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin2
|
||||
drop database `a-b-c`;
|
||||
drop database `tabc`;
|
||||
|
@ -286,6 +286,8 @@ select * from information_schema.session_variables where variable_name like 'net
|
||||
VARIABLE_NAME VARIABLE_VALUE
|
||||
NET_BUFFER_LENGTH 1024
|
||||
set net_buffer_length=2000000000;
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect net_buffer_length value: '2000000000'
|
||||
show variables like 'net_buffer_length';
|
||||
Variable_name Value
|
||||
net_buffer_length 1048576
|
||||
@ -797,6 +799,9 @@ set @@query_prealloc_size = @test;
|
||||
select @@query_prealloc_size = @test;
|
||||
@@query_prealloc_size = @test
|
||||
1
|
||||
set global sql_mode=repeat('a',80);
|
||||
ERROR 42000: Variable 'sql_mode' can't be set to the value of 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
End of 4.1 tests
|
||||
create table t1 (a int);
|
||||
select a into @x from t1;
|
||||
Warnings:
|
||||
|
@ -625,7 +625,7 @@ drop table t1;
|
||||
create table t1 (a int, b int);
|
||||
create view v1 as select a, sum(b) from t1 group by a;
|
||||
select b from v1 use index (some_index) where b=1;
|
||||
ERROR 42000: Key 'some_index' doesn't exist in table 'v1'
|
||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
create table t1 (col1 char(5),col2 char(5));
|
||||
@ -2701,27 +2701,26 @@ CREATE TABLE t1(
|
||||
fName varchar(25) NOT NULL,
|
||||
lName varchar(25) NOT NULL,
|
||||
DOB date NOT NULL,
|
||||
test_date date NOT NULL,
|
||||
uID int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
INSERT INTO t1(fName, lName, DOB) VALUES
|
||||
('Hank', 'Hill', '1964-09-29'),
|
||||
('Tom', 'Adams', '1908-02-14'),
|
||||
('Homer', 'Simpson', '1968-03-05');
|
||||
INSERT INTO t1(fName, lName, DOB, test_date) VALUES
|
||||
('Hank', 'Hill', '1964-09-29', '2007-01-01'),
|
||||
('Tom', 'Adams', '1908-02-14', '2007-01-01'),
|
||||
('Homer', 'Simpson', '1968-03-05', '2007-01-01');
|
||||
CREATE VIEW v1 AS
|
||||
SELECT (year(now())-year(DOB)) AS Age
|
||||
SELECT (year(test_date)-year(DOB)) AS Age
|
||||
FROM t1 HAVING Age < 75;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(now()) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75) latin1 latin1_swedish_ci
|
||||
set timestamp=1136066400;
|
||||
SELECT (year(now())-year(DOB)) AS Age FROM t1 HAVING Age < 75;
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(`t1`.`test_date`) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75) latin1 latin1_swedish_ci
|
||||
SELECT (year(test_date)-year(DOB)) AS Age FROM t1 HAVING Age < 75;
|
||||
Age
|
||||
42
|
||||
38
|
||||
set timestamp=1136066400;
|
||||
43
|
||||
39
|
||||
SELECT * FROM v1;
|
||||
Age
|
||||
42
|
||||
38
|
||||
43
|
||||
39
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a char(6) DEFAULT 'xxx');
|
||||
@ -3559,6 +3558,45 @@ table_name is_updatable
|
||||
v1 NO
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
SELECT * FROM v1 USE KEY(non_existant);
|
||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
||||
SELECT * FROM v1 FORCE KEY(non_existant);
|
||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
||||
SELECT * FROM v1 IGNORE KEY(non_existant);
|
||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b INT NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY(a), KEY (b));
|
||||
INSERT INTO t1 VALUES (),(),(),(),(),(),(),(),(),(),(),(),(),(),();
|
||||
CREATE VIEW v1 AS SELECT * FROM t1 FORCE KEY (PRIMARY,b) ORDER BY a;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` FORCE INDEX (PRIMARY) FORCE INDEX (`b`) order by `t1`.`a` latin1 latin1_swedish_ci
|
||||
EXPLAIN SELECT * FROM v1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 15
|
||||
CREATE VIEW v2 AS SELECT * FROM t1 USE KEY () ORDER BY a;
|
||||
SHOW CREATE VIEW v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` USE INDEX () order by `t1`.`a` latin1 latin1_swedish_ci
|
||||
EXPLAIN SELECT * FROM v2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 15 Using filesort
|
||||
CREATE VIEW v3 AS SELECT * FROM t1 IGNORE KEY (b) ORDER BY a;
|
||||
SHOW CREATE VIEW v3;
|
||||
View Create View character_set_client collation_connection
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` IGNORE INDEX (`b`) order by `t1`.`a` latin1 latin1_swedish_ci
|
||||
EXPLAIN SELECT * FROM v3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 15 Using filesort
|
||||
DROP VIEW v1;
|
||||
DROP VIEW v2;
|
||||
DROP VIEW v3;
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests.
|
||||
DROP DATABASE IF EXISTS `d-1`;
|
||||
CREATE DATABASE `d-1`;
|
||||
|
@ -778,15 +778,60 @@ GRANT CREATE VIEW ON db26813.v2 TO u26813@localhost;
|
||||
GRANT DROP, CREATE VIEW ON db26813.v3 TO u26813@localhost;
|
||||
GRANT SELECT ON db26813.t1 TO u26813@localhost;
|
||||
ALTER VIEW v1 AS SELECT f2 FROM t1;
|
||||
ERROR 42000: CREATE VIEW command denied to user 'u26813'@'localhost' for table 'v1'
|
||||
ERROR 42000: Access denied; you need the SUPER privilege for this operation
|
||||
ALTER VIEW v2 AS SELECT f2 FROM t1;
|
||||
ERROR 42000: DROP command denied to user 'u26813'@'localhost' for table 'v2'
|
||||
ERROR 42000: Access denied; you need the SUPER privilege for this operation
|
||||
ALTER VIEW v3 AS SELECT f2 FROM t1;
|
||||
ERROR 42000: Access denied; you need the SUPER privilege for this operation
|
||||
SHOW CREATE VIEW v3;
|
||||
View Create View character_set_client collation_connection
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`f2` AS `f2` from `t1` latin1 latin1_swedish_ci
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
||||
DROP USER u26813@localhost;
|
||||
DROP DATABASE db26813;
|
||||
#
|
||||
# Bug#29908: A user can gain additional access through the ALTER VIEW.
|
||||
#
|
||||
CREATE DATABASE mysqltest_29908;
|
||||
USE mysqltest_29908;
|
||||
CREATE TABLE t1(f1 INT, f2 INT);
|
||||
CREATE USER u29908_1@localhost;
|
||||
CREATE DEFINER = u29908_1@localhost VIEW v1 AS SELECT f1 FROM t1;
|
||||
CREATE DEFINER = u29908_1@localhost SQL SECURITY INVOKER VIEW v2 AS
|
||||
SELECT f1 FROM t1;
|
||||
GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v1 TO u29908_1@localhost;
|
||||
GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v2 TO u29908_1@localhost;
|
||||
GRANT SELECT ON mysqltest_29908.t1 TO u29908_1@localhost;
|
||||
CREATE USER u29908_2@localhost;
|
||||
GRANT DROP, CREATE VIEW ON mysqltest_29908.v1 TO u29908_2@localhost;
|
||||
GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v2 TO u29908_2@localhost;
|
||||
GRANT SELECT ON mysqltest_29908.t1 TO u29908_2@localhost;
|
||||
ALTER VIEW v1 AS SELECT f2 FROM t1;
|
||||
ERROR 42000: Access denied; you need the SUPER privilege for this operation
|
||||
ALTER VIEW v2 AS SELECT f2 FROM t1;
|
||||
ERROR 42000: Access denied; you need the SUPER privilege for this operation
|
||||
SHOW CREATE VIEW v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
||||
ALTER VIEW v1 AS SELECT f2 FROM t1;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f2` AS `f2` from `t1` latin1 latin1_swedish_ci
|
||||
ALTER VIEW v2 AS SELECT f2 FROM t1;
|
||||
SHOW CREATE VIEW v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select `t1`.`f2` AS `f2` from `t1` latin1 latin1_swedish_ci
|
||||
ALTER VIEW v1 AS SELECT f1 FROM t1;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
||||
ALTER VIEW v2 AS SELECT f1 FROM t1;
|
||||
SHOW CREATE VIEW v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
||||
DROP USER u29908_1@localhost;
|
||||
DROP USER u29908_2@localhost;
|
||||
DROP DATABASE mysqltest_29908;
|
||||
#######################################################################
|
||||
DROP DATABASE IF EXISTS mysqltest1;
|
||||
DROP DATABASE IF EXISTS mysqltest2;
|
||||
CREATE DATABASE mysqltest1;
|
||||
@ -893,6 +938,8 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such`@`user_1` SQL SECURITY DEFINER VI
|
||||
Warnings:
|
||||
Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
ALTER ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1;
|
||||
Warnings:
|
||||
Note 1449 There is no 'no_such'@'user_1' registered
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=MERGE DEFINER=`no_such`@`user_1` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci
|
||||
|
@ -1,2 +0,0 @@
|
||||
mysqld is alive
|
||||
End of 5.0 tests.
|
@ -1012,3 +1012,14 @@ select ExtractValue('<a>a</a>', '/a[@x=@y0123456789_0123456789_0123456789_012345
|
||||
ERROR HY000: XPATH error: comparison of two nodesets is not supported: '=@y0123456789_0123456789_0123456'
|
||||
select ExtractValue('<a>a</a>', '/a[@x=$y0123456789_0123456789_0123456789_0123456789]');
|
||||
ERROR HY000: Unknown XPATH variable at: '$y0123456789_0123456789_01234567'
|
||||
select updatexml(NULL, 1, 1), updatexml(1, NULL, 1), updatexml(1, 1, NULL);
|
||||
updatexml(NULL, 1, 1) updatexml(1, NULL, 1) updatexml(1, 1, NULL)
|
||||
NULL NULL NULL
|
||||
select updatexml(NULL, NULL, 1), updatexml(1, NULL, NULL),
|
||||
updatexml(NULL, 1, NULL);
|
||||
updatexml(NULL, NULL, 1) updatexml(1, NULL, NULL) updatexml(NULL, 1, NULL)
|
||||
NULL NULL NULL
|
||||
select updatexml(NULL, NULL, NULL);
|
||||
updatexml(NULL, NULL, NULL)
|
||||
NULL
|
||||
End of 5.1 tests
|
||||
|
@ -2956,11 +2956,13 @@ Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
@ -2994,7 +2996,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
@ -4,6 +4,13 @@ reset master;
|
||||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
show variables like 'relay_log%';
|
||||
Variable_name Value
|
||||
relay_log MYSQLTEST_VARDIR/master-data/relay-log
|
||||
relay_log_index
|
||||
relay_log_info_file relay-log.info
|
||||
relay_log_purge ON
|
||||
relay_log_space_limit 0
|
||||
stop slave;
|
||||
change master to master_host='127.0.0.1',master_user='root',
|
||||
master_password='',master_port=MASTER_PORT;
|
||||
|
@ -2,12 +2,9 @@
|
||||
# in case of bi-directional replication
|
||||
-- source include/master-slave.inc
|
||||
|
||||
#
|
||||
# Start replication master -> slave
|
||||
#
|
||||
# We have to sync with master, to ensure slave had time to start properly
|
||||
# before we stop it. If not, we get errors about UNIX_TIMESTAMP() in the log.
|
||||
sync_slave_with_master;
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
show variables like 'relay_log%';
|
||||
|
||||
connection slave;
|
||||
--disable_warnings
|
||||
stop slave;
|
||||
|
@ -1351,8 +1351,16 @@ SELECT * FROM t2;
|
||||
|
||||
# Test INSERT DELAYED and wait until the table has one more record
|
||||
SELECT COUNT(auto) FROM t2;
|
||||
INSERT DELAYED INTO t2 VALUES (4,011403,37,'intercepted','audiology','tinily','');
|
||||
while (`SELECT COUNT(auto)!=1214 FROM t2`)
|
||||
INSERT DELAYED INTO t2 VALUES (99999,011403,37,'the','delayed','insert','');
|
||||
|
||||
# Insert another record since in Archive delayed values are only
|
||||
# guaranteed to materialize based on either:
|
||||
# 1) A new row showing up from a normal insert
|
||||
# 2) A flush table has occurred.
|
||||
INSERT INTO t2 VALUES (100000,000001,00,'after','delayed','insert','');
|
||||
|
||||
# Wait for the delayed insert to appear
|
||||
while (`SELECT COUNT(auto)!=1215 FROM t2`)
|
||||
{
|
||||
sleep 0.1;
|
||||
}
|
||||
@ -1361,7 +1369,7 @@ SELECT COUNT(auto) FROM t2;
|
||||
# Adding test for ALTER TABLE
|
||||
ALTER TABLE t2 DROP COLUMN fld6;
|
||||
SHOW CREATE TABLE t2;
|
||||
SELECT * FROM t2;
|
||||
SELECT * FROM t2 WHERE auto != 100000;
|
||||
|
||||
|
||||
# Adding tests for autoincrement
|
||||
|
35
mysql-test/t/change_user.test
Normal file
35
mysql-test/t/change_user.test
Normal file
@ -0,0 +1,35 @@
|
||||
#
|
||||
# Bug#20023 mysql_change_user() resets the value of SQL_BIG_SELECTS
|
||||
#
|
||||
|
||||
--echo Bug#20023
|
||||
SELECT @@session.sql_big_selects;
|
||||
SELECT @@global.max_join_size;
|
||||
--echo change_user
|
||||
--change_user
|
||||
SELECT @@session.sql_big_selects;
|
||||
SELECT @@global.max_join_size;
|
||||
SET @@global.max_join_size = 10000;
|
||||
SET @@session.max_join_size = default;
|
||||
--echo change_user
|
||||
--change_user
|
||||
SELECT @@session.sql_big_selects;
|
||||
SET @@global.max_join_size = -1;
|
||||
SET @@session.max_join_size = default;
|
||||
--echo change_user
|
||||
--change_user
|
||||
SELECT @@session.sql_big_selects;
|
||||
|
||||
#
|
||||
# Bug#31418 User locks misfunctioning after mysql_change_user()
|
||||
#
|
||||
|
||||
--echo Bug#31418
|
||||
SELECT IS_FREE_LOCK('bug31418');
|
||||
SELECT IS_USED_LOCK('bug31418');
|
||||
SELECT GET_LOCK('bug31418', 1);
|
||||
SELECT IS_USED_LOCK('bug31418') = CONNECTION_ID();
|
||||
--echo change_user
|
||||
--change_user
|
||||
SELECT IS_FREE_LOCK('bug31418');
|
||||
SELECT IS_USED_LOCK('bug31418');
|
@ -1197,14 +1197,17 @@ drop table t1,t2;
|
||||
CREATE DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
--error 1102
|
||||
DROP DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
--error 1049
|
||||
RENAME DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa TO a;
|
||||
--error 1102
|
||||
RENAME DATABASE mysqltest TO aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
create database mysqltest;
|
||||
--error 1102
|
||||
RENAME DATABASE mysqltest TO aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
drop database mysqltest;
|
||||
|
||||
# TODO: enable these tests when RENAME DATABASE is implemented.
|
||||
# --error 1049
|
||||
# RENAME DATABASE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa TO a;
|
||||
# --error 1102
|
||||
# RENAME DATABASE mysqltest TO aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
# create database mysqltest;
|
||||
# --error 1102
|
||||
# RENAME DATABASE mysqltest TO aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
# drop database mysqltest;
|
||||
|
||||
--error 1102
|
||||
USE aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa;
|
||||
--error 1102
|
||||
@ -1300,4 +1303,29 @@ return 0;
|
||||
drop view имя_вью_кодировке_утф8_длиной_больше_чем_42;
|
||||
drop table имя_таблицы_в_кодировке_утф8_длиной_больше_чем_48;
|
||||
set names default;
|
||||
|
||||
#
|
||||
# Bug#21136 CREATE TABLE SELECT within CREATE TABLE SELECT causes server crash
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3;
|
||||
drop function if exists f1;
|
||||
--enable_warnings
|
||||
|
||||
--delimiter |
|
||||
create function f1() returns int
|
||||
begin
|
||||
declare res int;
|
||||
create temporary table t3 select 1 i;
|
||||
set res:= (select count(*) from t1);
|
||||
drop temporary table t3;
|
||||
return res;
|
||||
end|
|
||||
--delimiter ;
|
||||
create table t1 as select 1;
|
||||
create table t2 as select f1() from t1;
|
||||
drop table t1,t2;
|
||||
drop function f1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -1322,7 +1322,7 @@ drop table if exists t1,t2,t3,t4;
|
||||
DROP TABLE IF EXISTS bug13894;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE bug13894 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE bug13894 ( val integer not null ) ENGINE = CSV;
|
||||
INSERT INTO bug13894 VALUES (5);
|
||||
INSERT INTO bug13894 VALUES (10);
|
||||
INSERT INTO bug13894 VALUES (11);
|
||||
@ -1340,7 +1340,7 @@ DROP TABLE bug13894;
|
||||
DROP TABLE IF EXISTS bug14672;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE bug14672 (c1 integer) engine = CSV;
|
||||
CREATE TABLE bug14672 (c1 integer not null) engine = CSV;
|
||||
INSERT INTO bug14672 VALUES (1), (2), (3);
|
||||
SELECT * FROM bug14672;
|
||||
DELETE FROM bug14672 WHERE c1 = 2;
|
||||
@ -1357,7 +1357,7 @@ DROP TABLE bug14672;
|
||||
# Test CONCURRENT INSERT (5.1)
|
||||
#
|
||||
|
||||
CREATE TABLE test_concurrent_insert ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_concurrent_insert ( val integer not null ) ENGINE = CSV;
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
@ -1393,7 +1393,7 @@ DROP TABLE test_concurrent_insert;
|
||||
|
||||
# Check that repair on the newly created table works fine
|
||||
|
||||
CREATE TABLE test_repair_table ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table ( val integer not null ) ENGINE = CSV;
|
||||
|
||||
CHECK TABLE test_repair_table;
|
||||
REPAIR TABLE test_repair_table;
|
||||
@ -1405,7 +1405,7 @@ DROP TABLE test_repair_table;
|
||||
# restore the meta-file
|
||||
#
|
||||
|
||||
CREATE TABLE test_repair_table2 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table2 ( val integer not null ) ENGINE = CSV;
|
||||
--remove_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table2.CSM
|
||||
|
||||
# Should give a warning and perform autorepair. We also disable ps-protocol
|
||||
@ -1423,7 +1423,7 @@ DROP TABLE test_repair_table2;
|
||||
|
||||
|
||||
# Corrupt csv file and see if we can repair it
|
||||
CREATE TABLE test_repair_table3 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table3 ( val integer not null ) ENGINE = CSV;
|
||||
--remove_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table3.CSV
|
||||
--write_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table3.CSV
|
||||
"1"
|
||||
@ -1517,7 +1517,7 @@ DROP TABLE test_repair_table5;
|
||||
# BUG#13406 - incorrect amount of "records deleted"
|
||||
#
|
||||
|
||||
create table t1 (a int) engine=csv;
|
||||
create table t1 (a int not null) engine=csv;
|
||||
insert t1 values (1);
|
||||
--enable_info
|
||||
delete from t1; # delete_row
|
||||
@ -1549,7 +1549,7 @@ drop table t1;
|
||||
# whole alter table code is being tested all around the test suite already.
|
||||
#
|
||||
|
||||
create table t1 (v varchar(32));
|
||||
create table t1 (v varchar(32) not null);
|
||||
insert into t1 values ('def'),('abc'),('hij'),('3r4f');
|
||||
select * from t1;
|
||||
# Fast alter, no copy performed
|
||||
@ -1583,8 +1583,8 @@ drop table t1;
|
||||
# resulted in scanning through deleted memory and we were geting a crash.
|
||||
# that's why we need two tables in the bugtest
|
||||
|
||||
create table bug15205 (val int(11) default null) engine=csv;
|
||||
create table bug15205_2 (val int(11) default null) engine=csv;
|
||||
create table bug15205 (val int(11) not null) engine=csv;
|
||||
create table bug15205_2 (val int(11) not null) engine=csv;
|
||||
--remove_file $MYSQLTEST_VARDIR/master-data/test/bug15205.CSV
|
||||
# system error (can't open the datafile)
|
||||
--replace_result $MYSQLTEST_VARDIR . master-data/ ''
|
||||
@ -1604,8 +1604,8 @@ drop table bug15205_2;
|
||||
#
|
||||
set names latin1;
|
||||
create table t1 (
|
||||
c varchar(1),
|
||||
name varchar(64)
|
||||
c varchar(1) not null,
|
||||
name varchar(64) not null
|
||||
) character set latin1 engine=csv;
|
||||
insert into t1 values (0xC0,'LATIN CAPITAL LETTER A WITH GRAVE');
|
||||
insert into t1 values (0xE0,'LATIN SMALL LETTER A WITH GRAVE');
|
||||
@ -1623,9 +1623,9 @@ drop table t1;
|
||||
# Bug#22080 "CHECK fails to identify some corruption"
|
||||
#
|
||||
|
||||
create table bug22080_1 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_2 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_3 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_1 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
create table bug22080_2 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
create table bug22080_3 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
insert into bug22080_1 values(1,'string');
|
||||
insert into bug22080_1 values(2,'string');
|
||||
insert into bug22080_1 values(3,'string');
|
||||
@ -1655,7 +1655,7 @@ drop tables bug22080_1,bug22080_2,bug22080_3;
|
||||
#
|
||||
# Testing float type
|
||||
#
|
||||
create table float_test (id float,string varchar(64)) Engine=CSV;
|
||||
create table float_test (id float not null,string varchar(64) not null) Engine=CSV;
|
||||
insert into float_test values(1.0,'string');
|
||||
insert into float_test values(2.23,'serg.g');
|
||||
insert into float_test values(0.03,'string');
|
||||
@ -1670,12 +1670,12 @@ drop table float_test;
|
||||
#
|
||||
|
||||
CREATE TABLE `bug21328` (
|
||||
`col1` int(11) DEFAULT NULL,
|
||||
`col2` int(11) DEFAULT NULL,
|
||||
`col3` int(11) DEFAULT NULL
|
||||
`col1` int(11) NOT NULL,
|
||||
`col2` int(11) NOT NULL,
|
||||
`col3` int(11) NOT NULL
|
||||
) ENGINE=CSV;
|
||||
|
||||
insert into bug21328 values (1,NULL,NULL);
|
||||
insert into bug21328 values (1,0,0);
|
||||
alter table bug21328 engine=myisam;
|
||||
drop table bug21328;
|
||||
|
||||
@ -1683,7 +1683,7 @@ drop table bug21328;
|
||||
# BUG#28971 - ALTER TABLE followed by UPDATE for a CSV table make server
|
||||
# crash
|
||||
#
|
||||
create table t1(a blob, b int) engine=csv;
|
||||
create table t1(a blob not null, b int not null) engine=csv;
|
||||
insert into t1 values('a', 1);
|
||||
flush tables;
|
||||
update t1 set b=2;
|
||||
@ -1693,13 +1693,13 @@ drop table t1;
|
||||
#
|
||||
# Bug #29353: negative values
|
||||
#
|
||||
create table t1(a int) engine=csv;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values(-1), (-123.34), (2), (-23);
|
||||
select * from t1;
|
||||
check table t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1(a int, b int) engine=csv;
|
||||
create table t1(a int not null, b int not null) engine=csv;
|
||||
--remove_file $MYSQLTEST_VARDIR/master-data/test/t1.CSV
|
||||
--write_file $MYSQLTEST_VARDIR/master-data/test/t1.CSV
|
||||
1, 1E-2
|
||||
@ -1717,7 +1717,7 @@ drop table t1;
|
||||
#
|
||||
# Bug #29411: deleting from a csv table leads to the table corruption
|
||||
#
|
||||
create table t1(a int) engine=csv;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values (0), (1), (2);
|
||||
delete from t1 limit 2;
|
||||
check table t1;
|
||||
@ -1727,4 +1727,43 @@ check table t1;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #31473: does not work with NULL value in datetime field
|
||||
#
|
||||
create table t1(a datetime not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1(a set('foo','bar') not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1(a varchar(32) not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1(a blob not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1(a bit(1) not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select BIN(a) from t1;
|
||||
drop table t1;
|
||||
# We prevent creation of table with nullable ENUM
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
create table t1(a enum('foo','bar') default null) engine=csv;
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
create table t1(a enum('foo','bar') default 'foo') engine=csv;
|
||||
# Enum columns must be specified as NOT NULL
|
||||
create table t1(a enum('foo','bar') default 'foo' not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
@ -651,4 +651,9 @@ select * from t1 where a=if(b<10,_ucs2 0x00C0,_ucs2 0x0062);
|
||||
select * from t1 where a=if(b<10,_ucs2 0x0062,_ucs2 0x00C0);
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#30981 CHAR(0x41 USING ucs2) doesn't add leading zero
|
||||
#
|
||||
select hex(char(0x41 using ucs2));
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
@ -1404,3 +1404,30 @@ SELECT b FROM t2 UNION SELECT c FROM t1;
|
||||
SELECT i FROM t2 UNION SELECT c FROM t1;
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
#
|
||||
# Bug#30982: CHAR(..USING..) can return a not-well-formed string
|
||||
# Bug #30986: Character set introducer followed by a HEX string can return bad result
|
||||
#
|
||||
set sql_mode=traditional;
|
||||
select hex(char(0xFF using utf8));
|
||||
select hex(convert(0xFF using utf8));
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 0x616263FF);
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 X'616263FF');
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 B'001111111111');
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select (_utf8 X'616263FF');
|
||||
set sql_mode=default;
|
||||
select hex(char(0xFF using utf8));
|
||||
select hex(convert(0xFF using utf8));
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 0x616263FF);
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 X'616263FF');
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 B'001111111111');
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select (_utf8 X'616263FF');
|
||||
|
@ -251,4 +251,35 @@ CREATE TABLE t2(c1 INT) ENGINE=MERGE UNION=(t1);
|
||||
--error 1031
|
||||
INSERT DELAYED INTO t2 VALUES(1);
|
||||
DROP TABLE t1, t2;
|
||||
#
|
||||
# Bug#27358 INSERT DELAYED does not honour SQL_MODE of the client
|
||||
#
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
--enable_warnings
|
||||
SET SQL_MODE='NO_AUTO_VALUE_ON_ZERO';
|
||||
CREATE TABLE `t1` (
|
||||
`id` int(11) PRIMARY KEY auto_increment,
|
||||
`f1` varchar(10) NOT NULL UNIQUE
|
||||
);
|
||||
INSERT DELAYED INTO t1 VALUES(0,"test1");
|
||||
sleep 1;
|
||||
SELECT * FROM t1;
|
||||
SET SQL_MODE='PIPES_AS_CONCAT';
|
||||
INSERT DELAYED INTO t1 VALUES(0,'a' || 'b');
|
||||
sleep 1;
|
||||
SELECT * FROM t1;
|
||||
SET SQL_MODE='ERROR_FOR_DIVISION_BY_ZERO,STRICT_ALL_TABLES';
|
||||
--error 1365
|
||||
INSERT DELAYED INTO t1 VALUES(mod(1,0),"test3");
|
||||
CREATE TABLE t2 (
|
||||
`id` int(11) PRIMARY KEY auto_increment,
|
||||
`f1` date
|
||||
);
|
||||
SET SQL_MODE='NO_ZERO_DATE,STRICT_ALL_TABLES,NO_ZERO_IN_DATE';
|
||||
--error ER_TRUNCATED_WRONG_VALUE
|
||||
INSERT DELAYED INTO t2 VALUES (0,'0000-00-00');
|
||||
--error ER_TRUNCATED_WRONG_VALUE
|
||||
INSERT DELAYED INTO t2 VALUES (0,'2007-00-00');
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
|
@ -277,3 +277,18 @@ SELECT * FROM t1;
|
||||
DROP TABLE t1, t2;
|
||||
DROP DATABASE db1;
|
||||
DROP DATABASE db2;
|
||||
|
||||
#
|
||||
# Bug 31742: delete from ... order by function call that causes an error,
|
||||
# asserts server
|
||||
#
|
||||
|
||||
CREATE FUNCTION f1() RETURNS INT RETURN 1;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (0);
|
||||
--error 1318
|
||||
DELETE FROM t1 ORDER BY (f1(10)) LIMIT 1;
|
||||
DROP TABLE t1;
|
||||
DROP FUNCTION f1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user