mirror of
https://github.com/MariaDB/server.git
synced 2025-09-02 09:41:40 +03:00
Merge hf@192.168.21.12:work/mysql-4.1.9855
into eagle.intranet.mysql.r18.ru:/home/hf/work/mysql-4.1.mrg sql/item_func.cc: Auto merged
This commit is contained in:
@@ -87,6 +87,9 @@ install-data-local:
|
||||
$(INSTALL_DATA) $(srcdir)/lib/init_db.sql $(DESTDIR)$(testdir)/lib
|
||||
$(INSTALL_DATA) $(srcdir)/lib/*.pl $(DESTDIR)$(testdir)/lib
|
||||
|
||||
uninstall-local:
|
||||
@RM@ -f -r $(DESTDIR)$(testdir)
|
||||
|
||||
std_data/client-key.pem:
|
||||
@CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data
|
||||
std_data/client-cert.pem:
|
||||
|
4
mysql-test/include/have_euckr.inc
Normal file
4
mysql-test/include/have_euckr.inc
Normal file
@@ -0,0 +1,4 @@
|
||||
-- require r/have_euckr.require
|
||||
disable_query_log;
|
||||
show collation like "euckr_korean_ci";
|
||||
enable_query_log;
|
4
mysql-test/include/have_gb2312.inc
Normal file
4
mysql-test/include/have_gb2312.inc
Normal file
@@ -0,0 +1,4 @@
|
||||
-- require r/have_gb2312.require
|
||||
disable_query_log;
|
||||
show collation like "gb2312_chinese_ci";
|
||||
enable_query_log;
|
@@ -230,7 +230,10 @@ int wait_for_server_start(char *bin_dir __attribute__((unused)),
|
||||
char *user, char *password, int port,char *tmp_dir)
|
||||
{
|
||||
arg_list_t al;
|
||||
int err= 0, i;
|
||||
int err= 0;
|
||||
#ifndef __WIN__
|
||||
int i;
|
||||
#endif
|
||||
char trash[FN_REFLEN];
|
||||
|
||||
/* mysqladmin file */
|
||||
|
@@ -172,6 +172,7 @@ our $exe_mysqlbinlog;
|
||||
our $exe_mysql_client_test;
|
||||
our $exe_mysqld;
|
||||
our $exe_mysqldump; # Called from test case
|
||||
our $exe_mysqlimport; # Called from test case
|
||||
our $exe_mysqlshow; # Called from test case
|
||||
our $exe_mysql_fix_system_tables;
|
||||
our $exe_mysqltest;
|
||||
@@ -462,6 +463,13 @@ sub command_line_setup () {
|
||||
my $opt_slave_myport= 9308;
|
||||
$opt_ndbcluster_port= 9350;
|
||||
|
||||
if ( $ENV{'MTR_BUILD_THREAD'} )
|
||||
{
|
||||
$opt_master_myport= $ENV{'MTR_BUILD_THREAD'} * 40 + 8120;
|
||||
$opt_slave_myport= $opt_master_myport + 16;
|
||||
$opt_ndbcluster_port= $opt_master_myport + 24;
|
||||
}
|
||||
|
||||
# Read the command line
|
||||
# Note: Keep list, and the order, in sync with usage at end of this file
|
||||
|
||||
@@ -833,7 +841,9 @@ sub executable_setup () {
|
||||
{
|
||||
$path_client_bindir= mtr_path_exists("$glob_basedir/client_release",
|
||||
"$glob_basedir/bin");
|
||||
$exe_mysqld= mtr_exe_exists ("$path_client_bindir/mysqld-nt");
|
||||
$exe_mysqld= mtr_exe_exists ("$path_client_bindir/mysqld-nt",
|
||||
"$path_client_bindir/mysqld",
|
||||
"$path_client_bindir/mysqld-debug",);
|
||||
$path_language= mtr_path_exists("$glob_basedir/share/english/");
|
||||
$path_charsetsdir= mtr_path_exists("$glob_basedir/share/charsets");
|
||||
}
|
||||
@@ -861,6 +871,7 @@ sub executable_setup () {
|
||||
"/usr/bin/false");
|
||||
}
|
||||
$exe_mysqldump= mtr_exe_exists("$path_client_bindir/mysqldump");
|
||||
$exe_mysqlimport= mtr_exe_exists("$path_client_bindir/mysqlimport");
|
||||
$exe_mysqlshow= mtr_exe_exists("$path_client_bindir/mysqlshow");
|
||||
$exe_mysqlbinlog= mtr_exe_exists("$path_client_bindir/mysqlbinlog");
|
||||
$exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin");
|
||||
@@ -874,6 +885,7 @@ sub executable_setup () {
|
||||
{
|
||||
$path_client_bindir= mtr_path_exists("$glob_basedir/bin");
|
||||
$exe_mysqldump= mtr_exe_exists("$path_client_bindir/mysqldump");
|
||||
$exe_mysqlimport= mtr_exe_exists("$path_client_bindir/mysqlimport");
|
||||
$exe_mysqlshow= mtr_exe_exists("$path_client_bindir/mysqlshow");
|
||||
$exe_mysqlbinlog= mtr_exe_exists("$path_client_bindir/mysqlbinlog");
|
||||
$exe_mysqladmin= mtr_exe_exists("$path_client_bindir/mysqladmin");
|
||||
@@ -886,8 +898,18 @@ sub executable_setup () {
|
||||
"$glob_basedir/share/english/");
|
||||
$path_charsetsdir= mtr_path_exists("$glob_basedir/share/mysql/charsets",
|
||||
"$glob_basedir/share/charsets");
|
||||
$exe_mysqld= mtr_exe_exists ("$glob_basedir/libexec/mysqld",
|
||||
"$glob_basedir/bin/mysqld");
|
||||
|
||||
if ( $glob_win32 )
|
||||
{
|
||||
$exe_mysqld= mtr_exe_exists ("$glob_basedir/bin/mysqld-nt",
|
||||
"$glob_basedir/bin/mysqld",
|
||||
"$glob_basedir/bin/mysqld-debug",);
|
||||
}
|
||||
else
|
||||
{
|
||||
$exe_mysqld= mtr_exe_exists ("$glob_basedir/libexec/mysqld",
|
||||
"$glob_basedir/bin/mysqld");
|
||||
}
|
||||
|
||||
if ( $glob_use_embedded_server )
|
||||
{
|
||||
@@ -971,6 +993,13 @@ sub environment_setup () {
|
||||
chomp($ENV{$key});
|
||||
}
|
||||
}
|
||||
|
||||
# We are nice and report a bit about our settings
|
||||
print "Using MTR_BUILD_THREAD = ",$ENV{MTR_BUILD_THREAD} || 0,"\n";
|
||||
print "Using MASTER_MYPORT = $ENV{MASTER_MYPORT}\n";
|
||||
print "Using MASTER_MYPORT1 = $ENV{MASTER_MYPORT1}\n";
|
||||
print "Using SLAVE_MYPORT = $ENV{SLAVE_MYPORT}\n";
|
||||
print "Using NDBCLUSTER_PORT = $opt_ndbcluster_port\n";
|
||||
}
|
||||
|
||||
|
||||
@@ -2076,6 +2105,14 @@ sub run_mysqltest ($) {
|
||||
$cmdline_mysqldump .=
|
||||
" --debug=d:t:A,$opt_vardir/log/mysqldump.trace";
|
||||
}
|
||||
my $cmdline_mysqlimport= "$exe_mysqlimport -uroot " .
|
||||
"--port=$master->[0]->{'path_myport'} " .
|
||||
"--socket=$master->[0]->{'path_mysock'} --password=";
|
||||
if ( $opt_debug )
|
||||
{
|
||||
$cmdline_mysqlimport .=
|
||||
" --debug=d:t:A,$opt_vardir/log/mysqlimport.trace";
|
||||
}
|
||||
|
||||
my $cmdline_mysqlshow= "$exe_mysqlshow -uroot " .
|
||||
"--port=$master->[0]->{'path_myport'} " .
|
||||
@@ -2126,6 +2163,7 @@ sub run_mysqltest ($) {
|
||||
|
||||
$ENV{'MYSQL'}= $cmdline_mysql;
|
||||
$ENV{'MYSQL_DUMP'}= $cmdline_mysqldump;
|
||||
$ENV{'MYSQL_IMPORT'}= $cmdline_mysqlimport;
|
||||
$ENV{'MYSQL_SHOW'}= $cmdline_mysqlshow;
|
||||
$ENV{'MYSQL_BINLOG'}= $cmdline_mysqlbinlog;
|
||||
$ENV{'MYSQL_FIX_SYSTEM_TABLES'}= $cmdline_mysql_fix_system_tables;
|
||||
|
@@ -209,6 +209,25 @@ NDBCLUSTER_PORT=9350
|
||||
MYSQL_MANAGER_PW_FILE=$MYSQL_TEST_DIR/var/tmp/manager.pwd
|
||||
MYSQL_MANAGER_LOG=$MYSQL_TEST_DIR/var/log/manager.log
|
||||
MYSQL_MANAGER_USER=root
|
||||
|
||||
#
|
||||
# To make it easier for different devs to work on the same host,
|
||||
# an environment variable can be used to control all ports. A small
|
||||
# number is to be used, 0 - 16 or similar.
|
||||
#
|
||||
if [ -n "$MTR_BUILD_THREAD" ] ; then
|
||||
MASTER_MYPORT=`expr $MTR_BUILD_THREAD '*' 5 + 10000`
|
||||
MYSQL_MANAGER_PORT=`expr $MASTER_MYPORT + 2`
|
||||
SLAVE_MYPORT=`expr $MASTER_MYPORT + 3`
|
||||
NDBCLUSTER_PORT=`expr $MASTER_MYPORT + 4`
|
||||
|
||||
echo "Using MTR_BUILD_THREAD = $MTR_BUILD_THREAD"
|
||||
echo "Using MASTER_MYPORT = $MASTER_MYPORT"
|
||||
echo "Using MYSQL_MANAGER_PORT = $MYSQL_MANAGER_PORT"
|
||||
echo "Using SLAVE_MYPORT = $SLAVE_MYPORT"
|
||||
echo "Using NDBCLUSTER_PORT = $NDBCLUSTER_PORT"
|
||||
fi
|
||||
|
||||
NO_SLAVE=0
|
||||
USER_TEST=
|
||||
FAILED_CASES=
|
||||
@@ -546,6 +565,11 @@ if [ x$SOURCE_DIST = x1 ] ; then
|
||||
else
|
||||
MYSQL_DUMP="$BASEDIR/client/mysqldump"
|
||||
fi
|
||||
if [ -f "$BASEDIR/client/.libs/mysqlimport" ] ; then
|
||||
MYSQL_IMPORT="$BASEDIR/client/.libs/mysqlimport"
|
||||
else
|
||||
MYSQL_IMPORT="$BASEDIR/client/mysqlimport"
|
||||
fi
|
||||
if [ -f "$BASEDIR/client/.libs/mysqlbinlog" ] ; then
|
||||
MYSQL_BINLOG="$BASEDIR/client/.libs/mysqlbinlog"
|
||||
else
|
||||
@@ -614,6 +638,7 @@ else
|
||||
fi
|
||||
MYSQL_TEST="$CLIENT_BINDIR/mysqltest"
|
||||
MYSQL_DUMP="$CLIENT_BINDIR/mysqldump"
|
||||
MYSQL_IMPORT="$CLIENT_BINDIR/mysqlimport"
|
||||
MYSQL_BINLOG="$CLIENT_BINDIR/mysqlbinlog"
|
||||
MYSQLADMIN="$CLIENT_BINDIR/mysqladmin"
|
||||
WAIT_PID="$CLIENT_BINDIR/mysql_waitpid"
|
||||
@@ -693,10 +718,11 @@ fi
|
||||
MYSQL_DUMP_DIR="$MYSQL_DUMP"
|
||||
export MYSQL_DUMP_DIR
|
||||
MYSQL_DUMP="$MYSQL_DUMP --no-defaults -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
|
||||
MYSQL_IMPORT="$MYSQL_IMPORT -uroot --socket=$MASTER_MYSOCK --password=$DBPASSWD $EXTRA_MYSQLDUMP_OPT"
|
||||
MYSQL_BINLOG="$MYSQL_BINLOG --no-defaults --local-load=$MYSQL_TMP_DIR $EXTRA_MYSQLBINLOG_OPT"
|
||||
MYSQL_FIX_SYSTEM_TABLES="$MYSQL_FIX_SYSTEM_TABLES --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD --basedir=$BASEDIR --bindir=$CLIENT_BINDIR --verbose"
|
||||
MYSQL="$MYSQL --no-defaults --host=localhost --port=$MASTER_MYPORT --socket=$MASTER_MYSOCK --user=root --password=$DBPASSWD"
|
||||
export MYSQL MYSQL_DUMP MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES
|
||||
export MYSQL MYSQL_DUMP MYSQL_IMPORT MYSQL_BINLOG MYSQL_FIX_SYSTEM_TABLES
|
||||
export CLIENT_BINDIR MYSQL_CLIENT_TEST CHARSETSDIR
|
||||
export NDB_TOOLS_DIR
|
||||
export NDB_MGM
|
||||
|
@@ -1716,7 +1716,6 @@ int main(int argc, char **argv)
|
||||
int* handle;
|
||||
char test[FN_LEN];
|
||||
char mask[FN_REFLEN];
|
||||
char *p;
|
||||
int position;
|
||||
|
||||
/* single test */
|
||||
|
@@ -108,3 +108,29 @@ select * from t1 procedure analyse (1,1);
|
||||
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
|
||||
test.t1.d 100000 100000 6 6 0 0 100000 0 MEDIUMINT(6) UNSIGNED NOT NULL
|
||||
drop table t1;
|
||||
create table t1 (product varchar(32), country_id int not null, year int,
|
||||
profit int);
|
||||
insert into t1 values ( 'Computer', 2,2000, 1200),
|
||||
( 'TV', 1, 1999, 150),
|
||||
( 'Calculator', 1, 1999,50),
|
||||
( 'Computer', 1, 1999,1500),
|
||||
( 'Computer', 1, 2000,1500),
|
||||
( 'TV', 1, 2000, 150),
|
||||
( 'TV', 2, 2000, 100),
|
||||
( 'TV', 2, 2000, 100),
|
||||
( 'Calculator', 1, 2000,75),
|
||||
( 'Calculator', 2, 2000,75),
|
||||
( 'TV', 1, 1999, 100),
|
||||
( 'Computer', 1, 1999,1200),
|
||||
( 'Computer', 2, 2000,1500),
|
||||
( 'Calculator', 2, 2000,75),
|
||||
( 'Phone', 3, 2003,10)
|
||||
;
|
||||
create table t2 (country_id int primary key, country char(20) not null);
|
||||
insert into t2 values (1, 'USA'),(2,'India'), (3,'Finland');
|
||||
select product, sum(profit),avg(profit) from t1 group by product with rollup procedure analyse();
|
||||
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
|
||||
test.t1.product Computer TV 2 8 0 0 4.2500 NULL ENUM('Computer','Phone','TV') NOT NULL
|
||||
sum(profit) 10 6900 2 4 0 0 1946 2868 ENUM('10','275','600','6900') NOT NULL
|
||||
avg(profit) 10.0000 1380.0000 7 9 0 0 394.6875 570.2003 ENUM('10.0000','68.7500','120.0000','1380.0000') NOT NULL
|
||||
drop table t1,t2;
|
||||
|
@@ -30,3 +30,10 @@ check table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a int);
|
||||
prepare stmt1 from "SELECT * FROM t1 PROCEDURE ANALYSE()";
|
||||
execute stmt1;
|
||||
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
|
||||
execute stmt1;
|
||||
Field_name Min_value Max_value Min_length Max_length Empties_or_zeros Nulls Avg_value_or_avg_length Std Optimal_fieldtype
|
||||
deallocate prepare stmt1;
|
||||
|
@@ -1284,3 +1284,22 @@ SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterd");
|
||||
id
|
||||
4
|
||||
DROP TABLE t1;
|
||||
create table t1 (a int, key(a)) engine=bdb;
|
||||
create table t2 (b int, key(b)) engine=bdb;
|
||||
insert into t1 values (1),(1),(2),(3),(4);
|
||||
insert into t2 values (1),(5),(6),(7);
|
||||
delete from t1 where (a in (select b from t2));
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
3
|
||||
insert into t1 set a=(select b from t2);
|
||||
ERROR 21000: Subquery returns more than 1 row
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
3
|
||||
update t1 set a = a + 1 where (a in (select b from t2));
|
||||
select count(*) from t1;
|
||||
count(*)
|
||||
3
|
||||
drop table t1, t2;
|
||||
End of 4.1 tests
|
||||
|
@@ -1,4 +1,4 @@
|
||||
drop table if exists t1,t2,t3;
|
||||
drop table if exists t1,t2,t3,t4,t5;
|
||||
drop database if exists mysqltest;
|
||||
create table t1 (b char(0));
|
||||
insert into t1 values (""),(null);
|
||||
@@ -247,21 +247,6 @@ select * from t1;
|
||||
0 1 2
|
||||
0 0 1
|
||||
drop table t1;
|
||||
create table t1 select 1,2,3;
|
||||
create table if not exists t1 select 1,2;
|
||||
Warnings:
|
||||
Note 1050 Table 't1' already exists
|
||||
create table if not exists t1 select 1,2,3,4;
|
||||
ERROR 21S01: Column count doesn't match value count at row 1
|
||||
create table if not exists t1 select 1;
|
||||
Warnings:
|
||||
Note 1050 Table 't1' already exists
|
||||
select * from t1;
|
||||
1 2 3
|
||||
1 2 3
|
||||
0 1 2
|
||||
0 0 1
|
||||
drop table t1;
|
||||
create table t1 (a int not null, b int, primary key (a));
|
||||
insert into t1 values (1,1);
|
||||
create table if not exists t1 select 2;
|
||||
@@ -601,6 +586,11 @@ DESC t2;
|
||||
Field Type Null Key Default Extra
|
||||
f2 varchar(86) YES NULL
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t12913 (f1 ENUM ('a','b')) AS SELECT 'a' AS f1;
|
||||
SELECT * FROM t12913;
|
||||
f1
|
||||
a
|
||||
DROP TABLE t12913;
|
||||
create database mysqltest;
|
||||
use mysqltest;
|
||||
drop database mysqltest;
|
||||
@@ -621,3 +611,91 @@ create table if not exists t1 (a int);
|
||||
Warnings:
|
||||
Note 1050 Table 't1' already exists
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
a varchar(112) charset utf8 collate utf8_bin not null,
|
||||
primary key (a)
|
||||
) select 'test' as a ;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` varchar(112) character set utf8 collate utf8_bin NOT NULL default '',
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
CREATE TABLE t2 (
|
||||
a int(11) default NULL
|
||||
);
|
||||
insert into t2 values(111);
|
||||
create table t1 (
|
||||
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||
b int not null, primary key (a)
|
||||
) select a, 1 as b from t2 ;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` varchar(12) character set utf8 collate utf8_bin NOT NULL default '',
|
||||
`b` int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||
b int not null, primary key (a)
|
||||
) select 'a' as a , 1 as b from t2 ;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` varchar(12) character set utf8 collate utf8_bin NOT NULL default '',
|
||||
`b` int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
a varchar(12) charset utf8 collate utf8_bin,
|
||||
b int not null, primary key (a)
|
||||
) select 'a' as a , 1 as b from t2 ;
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`a` varchar(12) character set utf8 collate utf8_bin NOT NULL default '',
|
||||
`b` int(11) NOT NULL default '0',
|
||||
PRIMARY KEY (`a`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1, t2;
|
||||
create table t1 (
|
||||
a1 int not null,
|
||||
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||
);
|
||||
insert into t1 values (1,1,1, 1,1,1, 1,1,1);
|
||||
create table t2 (
|
||||
a1 varchar(12) charset utf8 collate utf8_bin not null,
|
||||
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,
|
||||
primary key (a1)
|
||||
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;
|
||||
drop table t2;
|
||||
create table t2 (
|
||||
a1 varchar(12) charset utf8 collate utf8_bin,
|
||||
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1;
|
||||
drop table t1, t2;
|
||||
create table t1 (
|
||||
a1 int, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||
);
|
||||
insert into t1 values (1,1,1, 1,1,1, 1,1,1);
|
||||
create table t2 (
|
||||
a1 varchar(12) charset utf8 collate utf8_bin not null,
|
||||
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,
|
||||
primary key (a1)
|
||||
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;
|
||||
drop table t2;
|
||||
create table t2 ( a int default 3, b int default 3)
|
||||
select a1,a2 from t1;
|
||||
show create table t2;
|
||||
Table Create Table
|
||||
t2 CREATE TABLE `t2` (
|
||||
`a` int(11) default '3',
|
||||
`b` int(11) default '3',
|
||||
`a1` int(11) default NULL,
|
||||
`a2` int(11) default NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1, t2;
|
||||
|
@@ -4929,3 +4929,50 @@ Warnings:
|
||||
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;
|
||||
INSERT INTO bug13894 VALUES (5);
|
||||
INSERT INTO bug13894 VALUES (10);
|
||||
INSERT INTO bug13894 VALUES (11);
|
||||
INSERT INTO bug13894 VALUES (10);
|
||||
SELECT * FROM bug13894;
|
||||
val
|
||||
5
|
||||
10
|
||||
11
|
||||
10
|
||||
UPDATE bug13894 SET val=6 WHERE val=10;
|
||||
SELECT * FROM bug13894;
|
||||
val
|
||||
5
|
||||
11
|
||||
6
|
||||
6
|
||||
DROP TABLE bug13894;
|
||||
DROP TABLE IF EXISTS bug14672;
|
||||
CREATE TABLE bug14672 (c1 integer) engine = CSV;
|
||||
INSERT INTO bug14672 VALUES (1), (2), (3);
|
||||
SELECT * FROM bug14672;
|
||||
c1
|
||||
1
|
||||
2
|
||||
3
|
||||
DELETE FROM bug14672 WHERE c1 = 2;
|
||||
SELECT * FROM bug14672;
|
||||
c1
|
||||
1
|
||||
3
|
||||
INSERT INTO bug14672 VALUES (4);
|
||||
SELECT * FROM bug14672;
|
||||
c1
|
||||
1
|
||||
3
|
||||
4
|
||||
INSERT INTO bug14672 VALUES (5);
|
||||
SELECT * FROM bug14672;
|
||||
c1
|
||||
1
|
||||
3
|
||||
4
|
||||
5
|
||||
DROP TABLE bug14672;
|
||||
|
@@ -19,3 +19,26 @@ SELECT * FROM t1 WHERE popisek LIKE '2005-01-1';
|
||||
popisek
|
||||
2005-01-1
|
||||
drop table t1;
|
||||
set names cp1250;
|
||||
CREATE TABLE t1
|
||||
(
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
str VARCHAR(32) CHARACTER SET cp1250 COLLATE cp1250_czech_cs NOT NULL default '',
|
||||
UNIQUE KEY (str)
|
||||
);
|
||||
INSERT INTO t1 VALUES (NULL, 'a');
|
||||
INSERT INTO t1 VALUES (NULL, 'aa');
|
||||
INSERT INTO t1 VALUES (NULL, 'aaa');
|
||||
INSERT INTO t1 VALUES (NULL, 'aaaa');
|
||||
INSERT INTO t1 VALUES (NULL, 'aaaaa');
|
||||
INSERT INTO t1 VALUES (NULL, 'aaaaaa');
|
||||
INSERT INTO t1 VALUES (NULL, 'aaaaaaa');
|
||||
select * from t1 where str like 'aa%';
|
||||
id str
|
||||
2 aa
|
||||
3 aaa
|
||||
4 aaaa
|
||||
5 aaaaa
|
||||
6 aaaaaa
|
||||
7 aaaaaaa
|
||||
drop table t1;
|
||||
|
@@ -8576,22 +8576,6 @@ FC4B
|
||||
DROP TABLE t1;
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t3;
|
||||
RESET MASTER;
|
||||
CREATE TABLE t1(f1 blob);
|
||||
PREPARE stmt1 FROM 'INSERT INTO t1 VALUES(?)';
|
||||
SET @var1= x'8300';
|
||||
EXECUTE stmt1 USING @var1;
|
||||
SHOW BINLOG EVENTS FROM 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.000001 # Query 1 # use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=95,COLLATION_CONNECTION=95,COLLATION_DATABASE=95,COLLATION_SERVER=8
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1(f1 blob)
|
||||
master-bin.000001 # Query 1 # use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=95,COLLATION_CONNECTION=95,COLLATION_DATABASE=95,COLLATION_SERVER=8
|
||||
master-bin.000001 # User var 1 # @`var1`=_binary 0x8300 COLLATE binary
|
||||
master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(@'var1')
|
||||
SELECT HEX(f1) FROM t1;
|
||||
HEX(f1)
|
||||
8300
|
||||
DROP table t1;
|
||||
SET collation_connection='cp932_japanese_ci';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
|
19
mysql-test/r/ctype_cp932_binlog.result
Normal file
19
mysql-test/r/ctype_cp932_binlog.result
Normal file
@@ -0,0 +1,19 @@
|
||||
drop table if exists t1;
|
||||
set names cp932;
|
||||
set character_set_database = cp932;
|
||||
RESET MASTER;
|
||||
CREATE TABLE t1(f1 blob);
|
||||
PREPARE stmt1 FROM 'INSERT INTO t1 VALUES(?)';
|
||||
SET @var1= x'8300';
|
||||
EXECUTE stmt1 USING @var1;
|
||||
SHOW BINLOG EVENTS FROM 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.000001 # Query 1 # use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=95,COLLATION_CONNECTION=95,COLLATION_DATABASE=95,COLLATION_SERVER=8
|
||||
master-bin.000001 # Query 1 # use `test`; CREATE TABLE t1(f1 blob)
|
||||
master-bin.000001 # Query 1 # use `test`; SET ONE_SHOT CHARACTER_SET_CLIENT=95,COLLATION_CONNECTION=95,COLLATION_DATABASE=95,COLLATION_SERVER=8
|
||||
master-bin.000001 # User var 1 # @`var1`=_binary 0x8300 COLLATE binary
|
||||
master-bin.000001 # Query 1 # use `test`; INSERT INTO t1 VALUES(@'var1')
|
||||
SELECT HEX(f1) FROM t1;
|
||||
HEX(f1)
|
||||
8300
|
||||
DROP table t1;
|
167
mysql-test/r/ctype_euckr.result
Normal file
167
mysql-test/r/ctype_euckr.result
Normal file
@@ -0,0 +1,167 @@
|
||||
drop table if exists t1;
|
||||
SET @test_character_set= 'euckr';
|
||||
SET @test_collation= 'euckr_korean_ci';
|
||||
SET @safe_character_set_server= @@character_set_server;
|
||||
SET @safe_collation_server= @@collation_server;
|
||||
SET character_set_server= @test_character_set;
|
||||
SET collation_server= @test_collation;
|
||||
CREATE DATABASE d1;
|
||||
USE d1;
|
||||
CREATE TABLE t1 (c CHAR(10), KEY(c));
|
||||
SHOW FULL COLUMNS FROM t1;
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
c char(10) euckr_korean_ci YES MUL NULL
|
||||
INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
|
||||
SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
|
||||
want3results
|
||||
aaa
|
||||
aaaa
|
||||
aaaaa
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
|
||||
SHOW FULL COLUMNS FROM t1;
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
c1 varchar(15) euckr_korean_ci YES MUL NULL
|
||||
INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
|
||||
SELECT c1 as want3results from t1 where c1 like 'l%';
|
||||
want3results
|
||||
location
|
||||
loberge
|
||||
lotre
|
||||
SELECT c1 as want3results from t1 where c1 like 'lo%';
|
||||
want3results
|
||||
location
|
||||
loberge
|
||||
lotre
|
||||
SELECT c1 as want1result from t1 where c1 like 'loc%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'loca%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locat%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locati%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locatio%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'location%';
|
||||
want1result
|
||||
location
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
SET character_set_server= @safe_character_set_server;
|
||||
SET collation_server= @safe_collation_server;
|
||||
SET NAMES euckr;
|
||||
SET collation_connection='euckr_korean_ci';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
insert into t1 values ('a'), ('a '), ('a\t');
|
||||
select collation(a),hex(a) from t1 order by a;
|
||||
collation(a) hex(a)
|
||||
euckr_korean_ci 6109
|
||||
euckr_korean_ci 61
|
||||
euckr_korean_ci 6120
|
||||
drop table t1;
|
||||
create table t1 engine=innodb select repeat('a',50) as c1;
|
||||
alter table t1 add index(c1(5));
|
||||
insert into t1 values ('abcdefg'),('abcde100'),('abcde110'),('abcde111');
|
||||
select collation(c1) from t1 limit 1;
|
||||
collation(c1)
|
||||
euckr_korean_ci
|
||||
select c1 from t1 where c1 like 'abcdef%' order by c1;
|
||||
c1
|
||||
abcdefg
|
||||
select c1 from t1 where c1 like 'abcde1%' order by c1;
|
||||
c1
|
||||
abcde100
|
||||
abcde110
|
||||
abcde111
|
||||
select c1 from t1 where c1 like 'abcde11%' order by c1;
|
||||
c1
|
||||
abcde110
|
||||
abcde111
|
||||
select c1 from t1 where c1 like 'abcde111%' order by c1;
|
||||
c1
|
||||
abcde111
|
||||
drop table t1;
|
||||
select @@collation_connection;
|
||||
@@collation_connection
|
||||
euckr_korean_ci
|
||||
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
|
||||
insert into t1 values('abcdef');
|
||||
insert into t1 values('_bcdef');
|
||||
insert into t1 values('a_cdef');
|
||||
insert into t1 values('ab_def');
|
||||
insert into t1 values('abc_ef');
|
||||
insert into t1 values('abcd_f');
|
||||
insert into t1 values('abcde_');
|
||||
select c1 as c1u from t1 where c1 like 'ab\_def';
|
||||
c1u
|
||||
ab_def
|
||||
select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
SET collation_connection='euckr_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
insert into t1 values ('a'), ('a '), ('a\t');
|
||||
select collation(a),hex(a) from t1 order by a;
|
||||
collation(a) hex(a)
|
||||
euckr_bin 6109
|
||||
euckr_bin 61
|
||||
euckr_bin 6120
|
||||
drop table t1;
|
||||
create table t1 engine=innodb select repeat('a',50) as c1;
|
||||
alter table t1 add index(c1(5));
|
||||
insert into t1 values ('abcdefg'),('abcde100'),('abcde110'),('abcde111');
|
||||
select collation(c1) from t1 limit 1;
|
||||
collation(c1)
|
||||
euckr_bin
|
||||
select c1 from t1 where c1 like 'abcdef%' order by c1;
|
||||
c1
|
||||
abcdefg
|
||||
select c1 from t1 where c1 like 'abcde1%' order by c1;
|
||||
c1
|
||||
abcde100
|
||||
abcde110
|
||||
abcde111
|
||||
select c1 from t1 where c1 like 'abcde11%' order by c1;
|
||||
c1
|
||||
abcde110
|
||||
abcde111
|
||||
select c1 from t1 where c1 like 'abcde111%' order by c1;
|
||||
c1
|
||||
abcde111
|
||||
drop table t1;
|
||||
select @@collation_connection;
|
||||
@@collation_connection
|
||||
euckr_bin
|
||||
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
|
||||
insert into t1 values('abcdef');
|
||||
insert into t1 values('_bcdef');
|
||||
insert into t1 values('a_cdef');
|
||||
insert into t1 values('ab_def');
|
||||
insert into t1 values('abc_ef');
|
||||
insert into t1 values('abcd_f');
|
||||
insert into t1 values('abcde_');
|
||||
select c1 as c1u from t1 where c1 like 'ab\_def';
|
||||
c1u
|
||||
ab_def
|
||||
select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
SET NAMES euckr;
|
||||
CREATE TABLE t1 (a text) character set euckr;
|
||||
INSERT INTO t1 VALUES (0xA2E6),(0xFEF7);
|
||||
SELECT hex(a) FROM t1 ORDER BY a;
|
||||
hex(a)
|
||||
A2E6
|
||||
FEF7
|
||||
DROP TABLE t1;
|
167
mysql-test/r/ctype_gb2312.result
Normal file
167
mysql-test/r/ctype_gb2312.result
Normal file
@@ -0,0 +1,167 @@
|
||||
drop table if exists t1;
|
||||
SET @test_character_set= 'gb2312';
|
||||
SET @test_collation= 'gb2312_chinese_ci';
|
||||
SET @safe_character_set_server= @@character_set_server;
|
||||
SET @safe_collation_server= @@collation_server;
|
||||
SET character_set_server= @test_character_set;
|
||||
SET collation_server= @test_collation;
|
||||
CREATE DATABASE d1;
|
||||
USE d1;
|
||||
CREATE TABLE t1 (c CHAR(10), KEY(c));
|
||||
SHOW FULL COLUMNS FROM t1;
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
c char(10) gb2312_chinese_ci YES MUL NULL
|
||||
INSERT INTO t1 VALUES ('aaa'),('aaaa'),('aaaaa');
|
||||
SELECT c as want3results FROM t1 WHERE c LIKE 'aaa%';
|
||||
want3results
|
||||
aaa
|
||||
aaaa
|
||||
aaaaa
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (c1 varchar(15), KEY c1 (c1(2)));
|
||||
SHOW FULL COLUMNS FROM t1;
|
||||
Field Type Collation Null Key Default Extra Privileges Comment
|
||||
c1 varchar(15) gb2312_chinese_ci YES MUL NULL
|
||||
INSERT INTO t1 VALUES ('location'),('loberge'),('lotre'),('boabab');
|
||||
SELECT c1 as want3results from t1 where c1 like 'l%';
|
||||
want3results
|
||||
location
|
||||
loberge
|
||||
lotre
|
||||
SELECT c1 as want3results from t1 where c1 like 'lo%';
|
||||
want3results
|
||||
location
|
||||
loberge
|
||||
lotre
|
||||
SELECT c1 as want1result from t1 where c1 like 'loc%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'loca%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locat%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locati%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'locatio%';
|
||||
want1result
|
||||
location
|
||||
SELECT c1 as want1result from t1 where c1 like 'location%';
|
||||
want1result
|
||||
location
|
||||
DROP TABLE t1;
|
||||
DROP DATABASE d1;
|
||||
USE test;
|
||||
SET character_set_server= @safe_character_set_server;
|
||||
SET collation_server= @safe_collation_server;
|
||||
SET NAMES gb2312;
|
||||
SET collation_connection='gb2312_chinese_ci';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
insert into t1 values ('a'), ('a '), ('a\t');
|
||||
select collation(a),hex(a) from t1 order by a;
|
||||
collation(a) hex(a)
|
||||
gb2312_chinese_ci 6109
|
||||
gb2312_chinese_ci 61
|
||||
gb2312_chinese_ci 6120
|
||||
drop table t1;
|
||||
create table t1 engine=innodb select repeat('a',50) as c1;
|
||||
alter table t1 add index(c1(5));
|
||||
insert into t1 values ('abcdefg'),('abcde100'),('abcde110'),('abcde111');
|
||||
select collation(c1) from t1 limit 1;
|
||||
collation(c1)
|
||||
gb2312_chinese_ci
|
||||
select c1 from t1 where c1 like 'abcdef%' order by c1;
|
||||
c1
|
||||
abcdefg
|
||||
select c1 from t1 where c1 like 'abcde1%' order by c1;
|
||||
c1
|
||||
abcde100
|
||||
abcde110
|
||||
abcde111
|
||||
select c1 from t1 where c1 like 'abcde11%' order by c1;
|
||||
c1
|
||||
abcde110
|
||||
abcde111
|
||||
select c1 from t1 where c1 like 'abcde111%' order by c1;
|
||||
c1
|
||||
abcde111
|
||||
drop table t1;
|
||||
select @@collation_connection;
|
||||
@@collation_connection
|
||||
gb2312_chinese_ci
|
||||
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
|
||||
insert into t1 values('abcdef');
|
||||
insert into t1 values('_bcdef');
|
||||
insert into t1 values('a_cdef');
|
||||
insert into t1 values('ab_def');
|
||||
insert into t1 values('abc_ef');
|
||||
insert into t1 values('abcd_f');
|
||||
insert into t1 values('abcde_');
|
||||
select c1 as c1u from t1 where c1 like 'ab\_def';
|
||||
c1u
|
||||
ab_def
|
||||
select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
SET collation_connection='gb2312_bin';
|
||||
create table t1 select repeat('a',4000) a;
|
||||
delete from t1;
|
||||
insert into t1 values ('a'), ('a '), ('a\t');
|
||||
select collation(a),hex(a) from t1 order by a;
|
||||
collation(a) hex(a)
|
||||
gb2312_bin 6109
|
||||
gb2312_bin 61
|
||||
gb2312_bin 6120
|
||||
drop table t1;
|
||||
create table t1 engine=innodb select repeat('a',50) as c1;
|
||||
alter table t1 add index(c1(5));
|
||||
insert into t1 values ('abcdefg'),('abcde100'),('abcde110'),('abcde111');
|
||||
select collation(c1) from t1 limit 1;
|
||||
collation(c1)
|
||||
gb2312_bin
|
||||
select c1 from t1 where c1 like 'abcdef%' order by c1;
|
||||
c1
|
||||
abcdefg
|
||||
select c1 from t1 where c1 like 'abcde1%' order by c1;
|
||||
c1
|
||||
abcde100
|
||||
abcde110
|
||||
abcde111
|
||||
select c1 from t1 where c1 like 'abcde11%' order by c1;
|
||||
c1
|
||||
abcde110
|
||||
abcde111
|
||||
select c1 from t1 where c1 like 'abcde111%' order by c1;
|
||||
c1
|
||||
abcde111
|
||||
drop table t1;
|
||||
select @@collation_connection;
|
||||
@@collation_connection
|
||||
gb2312_bin
|
||||
create table t1 ROW_FORMAT=DYNAMIC select repeat('a',50) as c1 ;
|
||||
insert into t1 values('abcdef');
|
||||
insert into t1 values('_bcdef');
|
||||
insert into t1 values('a_cdef');
|
||||
insert into t1 values('ab_def');
|
||||
insert into t1 values('abc_ef');
|
||||
insert into t1 values('abcd_f');
|
||||
insert into t1 values('abcde_');
|
||||
select c1 as c1u from t1 where c1 like 'ab\_def';
|
||||
c1u
|
||||
ab_def
|
||||
select c1 as c2h from t1 where c1 like 'ab#_def' escape '#';
|
||||
c2h
|
||||
ab_def
|
||||
drop table t1;
|
||||
SET NAMES gb2312;
|
||||
CREATE TABLE t1 (a text) character set gb2312;
|
||||
INSERT INTO t1 VALUES (0xA2A1),(0xD7FE);
|
||||
SELECT hex(a) FROM t1 ORDER BY a;
|
||||
hex(a)
|
||||
A2A1
|
||||
D7FE
|
||||
DROP TABLE t1;
|
@@ -181,11 +181,18 @@ select * from t1 where a=_koi8r'
|
||||
a
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
select * from t1 where a=concat(_koi8r'<27><><EFBFBD><EFBFBD>');
|
||||
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (koi8r_general_ci,COERCIBLE) for operation '='
|
||||
a
|
||||
<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
||||
select * from t1 where a=_latin1'<27><><EFBFBD><EFBFBD>';
|
||||
ERROR HY000: Illegal mix of collations (cp1251_general_ci,IMPLICIT) and (latin1_swedish_ci,COERCIBLE) for operation '='
|
||||
drop table t1;
|
||||
set names latin1;
|
||||
create table t1 (a char(10) character set utf8 collate utf8_bin);
|
||||
insert into t1 values (' xxx');
|
||||
select * from t1 where a=lpad('xxx',10,' ');
|
||||
a
|
||||
xxx
|
||||
drop table t1;
|
||||
set names koi8r;
|
||||
create table t1 (c1 char(10) character set cp1251);
|
||||
insert into t1 values ('<27>');
|
||||
|
@@ -677,3 +677,29 @@ hex(a)
|
||||
005B
|
||||
803D
|
||||
drop table t1;
|
||||
create table t1(f1 varchar(5) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL) engine=InnoDB;
|
||||
insert into t1 values('a');
|
||||
create index t1f1 on t1(f1);
|
||||
select f1 from t1 where f1 like 'a%';
|
||||
f1
|
||||
a
|
||||
drop table t1;
|
||||
create table t1 (utext varchar(20) character set ucs2);
|
||||
insert into t1 values ("lily");
|
||||
insert into t1 values ("river");
|
||||
prepare stmt from 'select utext from t1 where utext like ?';
|
||||
set @param1='%%';
|
||||
execute stmt using @param1;
|
||||
utext
|
||||
lily
|
||||
river
|
||||
execute stmt using @param1;
|
||||
utext
|
||||
lily
|
||||
river
|
||||
select utext from t1 where utext like '%%';
|
||||
utext
|
||||
lily
|
||||
river
|
||||
drop table t1;
|
||||
deallocate prepare stmt;
|
||||
|
@@ -1061,3 +1061,20 @@ create table t1 (a varchar(255)) default charset=utf8;
|
||||
select * from t1 where find_in_set('-1', a);
|
||||
a
|
||||
drop table t1;
|
||||
create table t1 (a int);
|
||||
insert into t1 values (48),(49),(50);
|
||||
set names utf8;
|
||||
select distinct char(a) from t1;
|
||||
char(a)
|
||||
0
|
||||
1
|
||||
2
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (t TINYTEXT CHARACTER SET utf8);
|
||||
INSERT INTO t1 VALUES(REPEAT('a', 100));
|
||||
CREATE TEMPORARY TABLE t2 SELECT COALESCE(t) AS bug FROM t1;
|
||||
SELECT LENGTH(bug) FROM t2;
|
||||
LENGTH(bug)
|
||||
100
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
|
@@ -456,3 +456,11 @@ f1 f2
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect date value: '2003-04-05 g'
|
||||
Warning 1292 Truncated incorrect datetime value: '2003-04-05 10:11:12.101010234567'
|
||||
create table t1 (f1 datetime);
|
||||
insert into t1 (f1) values ("2005-01-01");
|
||||
insert into t1 (f1) values ("2005-02-01");
|
||||
select date_format(f1, "%m") as d1, date_format(f1, "%M") as d2 from t1 order by date_format(f1, "%M");
|
||||
d1 d2
|
||||
02 February
|
||||
01 January
|
||||
drop table t1;
|
||||
|
@@ -428,4 +428,11 @@ REPAIR TABLE t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair status OK
|
||||
SET myisam_repair_threads=@@global.myisam_repair_threads;
|
||||
INSERT INTO t1 VALUES('testword\'\'');
|
||||
SELECT a FROM t1 WHERE MATCH a AGAINST('testword' IN BOOLEAN MODE);
|
||||
a
|
||||
testword''
|
||||
SELECT a FROM t1 WHERE MATCH a AGAINST('testword\'\'' IN BOOLEAN MODE);
|
||||
a
|
||||
testword''
|
||||
DROP TABLE t1;
|
||||
|
@@ -215,3 +215,24 @@ select count(*) from t1 where match a against ('aaazzz' in boolean mode);
|
||||
count(*)
|
||||
262
|
||||
drop table t1;
|
||||
set names utf8;
|
||||
create table t1(a text,fulltext(a)) collate=utf8_swedish_ci;
|
||||
insert into t1 values('test test '),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test');
|
||||
delete from t1 limit 1;
|
||||
drop table t1;
|
||||
set names latin1;
|
||||
|
@@ -145,3 +145,9 @@ insert into t1 values (1);
|
||||
select rand(i) from t1;
|
||||
ERROR HY000: Incorrect arguments to RAND
|
||||
drop table t1;
|
||||
create table t1 (a varchar(90), ts datetime not null, index (a)) engine=innodb default charset=utf8;
|
||||
insert into t1 values ('http://www.foo.com/', now());
|
||||
select a from t1 where a='http://www.foo.com/' order by abs(timediff(ts, 0));
|
||||
a
|
||||
http://www.foo.com/
|
||||
drop table t1;
|
||||
|
@@ -49,3 +49,11 @@ select a from t1 where mid(a+0,6,3) = ( mid(20040106123400,6,3) );
|
||||
a
|
||||
2004-01-06 12:34:00
|
||||
drop table t1;
|
||||
create table t1 as select uuid(), length(uuid());
|
||||
show create table t1;
|
||||
Table Create Table
|
||||
t1 CREATE TABLE `t1` (
|
||||
`uuid()` char(36) character set utf8 NOT NULL default '',
|
||||
`length(uuid())` int(10) NOT NULL default '0'
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
drop table t1;
|
||||
|
@@ -170,8 +170,8 @@ Field Type Null Key Default Extra
|
||||
f1 date 0000-00-00
|
||||
f2 datetime YES NULL
|
||||
f3 time YES NULL
|
||||
f4 time 00:00:00
|
||||
f5 time 00:00:00
|
||||
f4 time YES NULL
|
||||
f5 time YES NULL
|
||||
f6 time 00:00:00
|
||||
f7 datetime YES NULL
|
||||
f8 date YES NULL
|
||||
|
@@ -655,3 +655,9 @@ t1 where object_id=85984;
|
||||
object_id geometrytype(geo) ISSIMPLE(GEO) ASTEXT(centroid(geo))
|
||||
85984 MULTIPOLYGON 0 POINT(-114.87787186923 36.33101763469)
|
||||
drop table t1;
|
||||
select (asWKT(geomfromwkb((0x000000000140240000000000004024000000000000))));
|
||||
(asWKT(geomfromwkb((0x000000000140240000000000004024000000000000))))
|
||||
POINT(10 10)
|
||||
select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))));
|
||||
(asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))))
|
||||
POINT(10 10)
|
||||
|
@@ -351,10 +351,10 @@ GRANT USAGE ON *.* TO 'grant_user'@'localhost'
|
||||
GRANT INSERT (a, d, c, b) ON `test`.`t1` TO 'grant_user'@'localhost'
|
||||
select Host,Db,User,Table_name,Column_name,Column_priv from mysql.columns_priv;
|
||||
Host Db User Table_name Column_name Column_priv
|
||||
localhost test grant_user t1 c Insert
|
||||
localhost test grant_user t1 b Insert
|
||||
localhost test grant_user t1 a Insert
|
||||
localhost test grant_user t1 d Insert
|
||||
localhost test grant_user t1 a Insert
|
||||
localhost test grant_user t1 c Insert
|
||||
revoke ALL PRIVILEGES on t1 from grant_user@localhost;
|
||||
show grants for grant_user@localhost;
|
||||
Grants for grant_user@localhost
|
||||
@@ -377,9 +377,9 @@ show grants for mysqltest_3@localhost;
|
||||
Grants for mysqltest_3@localhost
|
||||
GRANT USAGE ON *.* TO 'mysqltest_3'@'localhost'
|
||||
GRANT SELECT (b) ON `mysqltest_1`.`t2` TO 'mysqltest_3'@'localhost'
|
||||
GRANT SELECT (c) ON `mysqltest_2`.`t1` TO 'mysqltest_3'@'localhost'
|
||||
GRANT UPDATE (a) ON `mysqltest_1`.`t1` TO 'mysqltest_3'@'localhost'
|
||||
GRANT UPDATE (d) ON `mysqltest_2`.`t2` TO 'mysqltest_3'@'localhost'
|
||||
GRANT SELECT (c) ON `mysqltest_2`.`t1` TO 'mysqltest_3'@'localhost'
|
||||
update mysqltest_1.t1, mysqltest_1.t2 set q=10 where b=1;
|
||||
ERROR 42000: UPDATE command denied to user 'mysqltest_3'@'localhost' for column 'q' in table 't1'
|
||||
update mysqltest_1.t1, mysqltest_2.t2 set d=20 where d=1;
|
||||
@@ -443,3 +443,33 @@ flush privileges;
|
||||
set @user123="non-existent";
|
||||
select * from mysql.db where user=@user123;
|
||||
Host Db User Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Grant_priv References_priv Index_priv Alter_priv Create_tmp_table_priv Lock_tables_priv
|
||||
set names koi8r;
|
||||
create database <20><>;
|
||||
grant select on <20><>.* to root@localhost;
|
||||
select hex(Db) from mysql.db where Db='<27><>';
|
||||
hex(Db)
|
||||
D0B1D0B4
|
||||
show grants for root@localhost;
|
||||
Grants for root@localhost
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||
GRANT SELECT ON `<60><>`.* TO 'root'@'localhost'
|
||||
flush privileges;
|
||||
show grants for root@localhost;
|
||||
Grants for root@localhost
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||
GRANT SELECT ON `<60><>`.* TO 'root'@'localhost'
|
||||
drop database <20><>;
|
||||
revoke all privileges on <20><>.* from root@localhost;
|
||||
show grants for root@localhost;
|
||||
Grants for root@localhost
|
||||
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION
|
||||
set names latin1;
|
||||
insert into mysql.user (host, user) values ('', 'mysqltest_7');
|
||||
flush privileges;
|
||||
set password for mysqltest_7@ = password('systpass');
|
||||
show grants for mysqltest_7@;
|
||||
Grants for mysqltest_7@
|
||||
GRANT USAGE ON *.* TO 'mysqltest_7'@'' IDENTIFIED BY PASSWORD '*2FB071A056F9BB745219D9C876814231DAF46517'
|
||||
drop user mysqltest_7@;
|
||||
show grants for mysqltest_7@;
|
||||
ERROR 42000: There is no such grant defined for user 'mysqltest_7' on host ''
|
||||
|
@@ -131,3 +131,15 @@ lock table mysql.user write;
|
||||
revoke all on *.* from 'mysqltest_1'@'localhost';
|
||||
unlock tables;
|
||||
drop user 'mysqltest_1'@'localhost';
|
||||
insert into mysql.user (user, host) values
|
||||
('mysqltest_1', 'host1'),
|
||||
('mysqltest_2', 'host2'),
|
||||
('mysqltest_3', 'host3'),
|
||||
('mysqltest_4', 'host4'),
|
||||
('mysqltest_5', 'host5'),
|
||||
('mysqltest_6', 'host6'),
|
||||
('mysqltest_7', 'host7');
|
||||
flush privileges;
|
||||
drop user mysqltest_3@host3;
|
||||
drop user mysqltest_1@host1, mysqltest_2@host2, mysqltest_4@host4,
|
||||
mysqltest_5@host5, mysqltest_6@host6, mysqltest_7@host7;
|
||||
|
@@ -445,3 +445,21 @@ drop table t2;
|
||||
drop table t3;
|
||||
drop table t4;
|
||||
drop table t5;
|
||||
create table t1 (c1 int);
|
||||
insert into t1 values (1);
|
||||
handler t1 open;
|
||||
handler t1 read first;
|
||||
c1
|
||||
1
|
||||
send the below to another connection, do not wait for the result
|
||||
optimize table t1;
|
||||
proceed with the normal connection
|
||||
handler t1 read next;
|
||||
c1
|
||||
1
|
||||
handler t1 close;
|
||||
read the result from the other connection
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 optimize status OK
|
||||
proceed with the normal connection
|
||||
drop table t1;
|
||||
|
2
mysql-test/r/have_euckr.require
Normal file
2
mysql-test/r/have_euckr.require
Normal file
@@ -0,0 +1,2 @@
|
||||
Collation Charset Id Default Compiled Sortlen
|
||||
euckr_korean_ci euckr 19 Yes Yes 1
|
2
mysql-test/r/have_gb2312.require
Normal file
2
mysql-test/r/have_gb2312.require
Normal file
@@ -0,0 +1,2 @@
|
||||
Collation Charset Id Default Compiled Sortlen
|
||||
gb2312_chinese_ci gb2312 24 Yes Yes 1
|
@@ -128,3 +128,16 @@ id description c
|
||||
1 test 0
|
||||
2 test2 0
|
||||
drop table t1,t2,t3;
|
||||
CREATE TABLE t1 (a int);
|
||||
INSERT INTO t1 VALUES (3), (4), (1), (3), (1);
|
||||
SELECT SUM(a) FROM t1 GROUP BY a HAVING SUM(a)>0;
|
||||
SUM(a)
|
||||
2
|
||||
6
|
||||
4
|
||||
SELECT SUM(a) FROM t1 GROUP BY a HAVING SUM(a);
|
||||
SUM(a)
|
||||
2
|
||||
6
|
||||
4
|
||||
DROP TABLE t1;
|
||||
|
@@ -1722,3 +1722,75 @@ checksum table test_checksum;
|
||||
Table Checksum
|
||||
test.test_checksum 2050879373
|
||||
drop table test_checksum;
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a int primary key, b int, foreign key (b) references t1(a)) engine = innodb;
|
||||
create table t1(a char(10) primary key, b varchar(20)) engine = innodb;
|
||||
ERROR HY000: Can't create table './test/t1.frm' (errno: 150)
|
||||
set foreign_key_checks=1;
|
||||
drop table t2;
|
||||
set foreign_key_checks=0;
|
||||
create table t1(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=latin1;
|
||||
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=utf8;
|
||||
ERROR HY000: Can't create table './test/t2.frm' (errno: 150)
|
||||
set foreign_key_checks=1;
|
||||
drop table t1;
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb;
|
||||
create table t1(a varchar(10) primary key) engine = innodb;
|
||||
alter table t1 modify column a int;
|
||||
Got one of the listed errors
|
||||
set foreign_key_checks=1;
|
||||
drop table t2,t1;
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=latin1;
|
||||
create table t1(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=latin1;
|
||||
alter table t1 convert to character set utf8;
|
||||
set foreign_key_checks=1;
|
||||
drop table t2,t1;
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=latin1;
|
||||
create table t3(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=utf8;
|
||||
rename table t3 to t1;
|
||||
ERROR HY000: Error on rename of './test/t3' to './test/t1' (errno: 150)
|
||||
set foreign_key_checks=1;
|
||||
drop table t2,t3;
|
||||
create table t2 (
|
||||
a int, b char(10), filler char(10), primary key(a, b(2))
|
||||
) character set utf8 engine = innodb;
|
||||
insert into t2 values (1,'abcdefg','one');
|
||||
insert into t2 values (2,'ijkilmn','two');
|
||||
insert into t2 values (3, 'qrstuvw','three');
|
||||
update t2 set a=5, filler='booo' where a=1;
|
||||
drop table t2;
|
||||
create table t2 (
|
||||
a int, b char(10), filler char(10), primary key(a, b(2))
|
||||
) character set ucs2 engine = innodb;
|
||||
insert into t2 values (1,'abcdefg','one');
|
||||
insert into t2 values (2,'ijkilmn','two');
|
||||
insert into t2 values (3, 'qrstuvw','three');
|
||||
update t2 set a=5, filler='booo' where a=1;
|
||||
drop table t2;
|
||||
create table t1(a int not null, b char(110),primary key(a,b(100))) engine=innodb default charset=utf8;
|
||||
insert into t1 values(1,'abcdefg'),(2,'defghijk');
|
||||
insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
|
||||
insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
|
||||
select a,hex(b) from t1 order by b;
|
||||
a hex(b)
|
||||
1 61626364656667
|
||||
2 6465666768696A6B
|
||||
6 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1
|
||||
7 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2
|
||||
update t1 set b = 'three' where a = 6;
|
||||
drop table t1;
|
||||
create table t1(a int not null, b text(110),primary key(a,b(100))) engine=innodb default charset=utf8;
|
||||
insert into t1 values(1,'abcdefg'),(2,'defghijk');
|
||||
insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
|
||||
insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
|
||||
select a,hex(b) from t1 order by b;
|
||||
a hex(b)
|
||||
1 61626364656667
|
||||
2 6465666768696A6B
|
||||
6 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1
|
||||
7 D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2
|
||||
update t1 set b = 'three' where a = 6;
|
||||
drop table t1;
|
||||
|
@@ -678,3 +678,11 @@ f1
|
||||
2001
|
||||
2002
|
||||
drop table t1;
|
||||
create table t1(x int, y int);
|
||||
create table t2(x int, z int);
|
||||
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(x);
|
||||
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(z);
|
||||
ERROR 42S22: Unknown column 'z' in 'field list'
|
||||
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(t2.x);
|
||||
ERROR 42S02: Unknown table 't2' in field list
|
||||
drop table t1,t2;
|
||||
|
@@ -76,3 +76,12 @@ select * from t1;
|
||||
id
|
||||
0
|
||||
SET @@SQL_MODE=@OLD_SQL_MODE;
|
||||
drop table t1;
|
||||
create table t1 (a varchar(20), b varchar(20));
|
||||
load data infile '../../std_data/loaddata5.dat' into table t1 fields terminated by ',' enclosed by '"' escaped by '"' (a,b);
|
||||
select * from t1;
|
||||
a b
|
||||
field1 field2
|
||||
a"b cd"ef
|
||||
a"b c"d"e
|
||||
drop table t1;
|
||||
|
@@ -717,3 +717,52 @@ SELECT b FROM t2;
|
||||
b
|
||||
3
|
||||
DROP TABLE t1, t2;
|
||||
create table t1(a int);
|
||||
create table t2(a int);
|
||||
insert into t1 values (1);
|
||||
insert into t2 values (2);
|
||||
create table t3 (a int) engine=merge union=(t1, t2) insert_method=first;
|
||||
select * from t3;
|
||||
a
|
||||
1
|
||||
2
|
||||
insert t2 select * from t2;
|
||||
select * from t2;
|
||||
a
|
||||
2
|
||||
2
|
||||
insert t3 select * from t1;
|
||||
select * from t3;
|
||||
a
|
||||
1
|
||||
1
|
||||
2
|
||||
2
|
||||
insert t1 select * from t3;
|
||||
select * from t1;
|
||||
a
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
2
|
||||
2
|
||||
select * from t2;
|
||||
a
|
||||
2
|
||||
2
|
||||
select * from t3;
|
||||
a
|
||||
1
|
||||
1
|
||||
1
|
||||
1
|
||||
2
|
||||
2
|
||||
2
|
||||
2
|
||||
check table t1, t2;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
test.t2 check status OK
|
||||
drop table t1, t2, t3;
|
||||
|
@@ -93,6 +93,7 @@ master-bin.000001 79 Query 1 79 use `test`; BEGIN
|
||||
master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(8)
|
||||
master-bin.000001 178 Query 1 79 use `test`; insert into t2 select * from t1
|
||||
master-bin.000001 244 Query 1 244 use `test`; ROLLBACK
|
||||
master-bin.000001 287 Query 1 287 use `test`; DO RELEASE_LOCK("a")
|
||||
delete from t1;
|
||||
delete from t2;
|
||||
reset master;
|
||||
@@ -202,3 +203,53 @@ select (@after-@before) >= 2;
|
||||
(@after-@before) >= 2
|
||||
1
|
||||
drop table t1,t2;
|
||||
commit;
|
||||
begin;
|
||||
create temporary table ti (a int) engine=innodb;
|
||||
rollback;
|
||||
Warnings:
|
||||
Warning 1196 Some non-transactional changed tables couldn't be rolled back
|
||||
insert into ti values(1);
|
||||
set autocommit=0;
|
||||
create temporary table t1 (a int) engine=myisam;
|
||||
commit;
|
||||
insert t1 values (1);
|
||||
rollback;
|
||||
create table t0 (n int);
|
||||
insert t0 select * from t1;
|
||||
set autocommit=1;
|
||||
insert into t0 select GET_LOCK("lock1",null);
|
||||
set autocommit=0;
|
||||
create table t2 (n int) engine=innodb;
|
||||
insert into t2 values (3);
|
||||
select get_lock("lock1",60);
|
||||
get_lock("lock1",60)
|
||||
1
|
||||
show binlog events from 79;
|
||||
Log_name Pos Event_type Server_id Orig_log_pos Info
|
||||
master-bin.000001 79 Query 1 79 use `test`; BEGIN
|
||||
master-bin.000001 119 Query 1 79 use `test`; insert into t1 values(16)
|
||||
master-bin.000001 179 Query 1 79 use `test`; insert into t1 values(18)
|
||||
master-bin.000001 239 Query 1 239 use `test`; COMMIT
|
||||
master-bin.000001 280 Query 1 280 use `test`; delete from t1
|
||||
master-bin.000001 329 Query 1 329 use `test`; delete from t2
|
||||
master-bin.000001 378 Query 1 378 use `test`; alter table t2 type=MyISAM
|
||||
master-bin.000001 439 Query 1 439 use `test`; insert into t1 values (1)
|
||||
master-bin.000001 499 Query 1 499 use `test`; insert into t2 values (20)
|
||||
master-bin.000001 560 Query 1 560 use `test`; drop table t1,t2
|
||||
master-bin.000001 611 Query 1 611 use `test`; BEGIN
|
||||
master-bin.000001 651 Query 1 611 use `test`; create temporary table ti (a int) engine=innodb
|
||||
master-bin.000001 733 Query 1 733 use `test`; ROLLBACK
|
||||
master-bin.000001 776 Query 1 776 use `test`; insert into ti values(1)
|
||||
master-bin.000001 835 Query 1 835 use `test`; BEGIN
|
||||
master-bin.000001 875 Query 1 835 use `test`; create temporary table t1 (a int) engine=myisam
|
||||
master-bin.000001 957 Query 1 957 use `test`; COMMIT
|
||||
master-bin.000001 998 Query 1 998 use `test`; create table t0 (n int)
|
||||
master-bin.000001 1056 Query 1 1056 use `test`; insert t0 select * from t1
|
||||
master-bin.000001 1117 Query 1 1117 use `test`; DO RELEASE_LOCK("a")
|
||||
master-bin.000001 1172 Query 1 1172 use `test`; insert into t0 select GET_LOCK("lock1",null)
|
||||
master-bin.000001 1251 Query 1 1251 use `test`; create table t2 (n int) engine=innodb
|
||||
master-bin.000001 1323 Query 1 1323 use `test`; DROP /*!40005 TEMPORARY */ TABLE IF EXISTS `test`.`t1`,`test`.`ti`
|
||||
master-bin.000001 1424 Query 1 1424 use `test`; DO RELEASE_LOCK("lock1")
|
||||
do release_lock("lock1");
|
||||
drop table t0,t2;
|
||||
|
@@ -498,6 +498,16 @@ id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 system NULL NULL NULL NULL 1 Using temporary
|
||||
1 SIMPLE t2 index NULL PRIMARY 4 NULL 2 Using index; Distinct
|
||||
drop table t1,t2;
|
||||
create table t1 (
|
||||
c1 varchar(32),
|
||||
key (c1)
|
||||
) engine=myisam;
|
||||
alter table t1 disable keys;
|
||||
insert into t1 values ('a'), ('b');
|
||||
select c1 from t1 order by c1 limit 1;
|
||||
c1
|
||||
a
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (`a` int(11) NOT NULL default '0', `b` int(11) NOT NULL default '0', UNIQUE KEY `a` USING RTREE (`a`,`b`)) ENGINE=MyISAM;
|
||||
Got one of the listed errors
|
||||
create table t1 (a int, b varchar(200), c text not null) checksum=1;
|
||||
@@ -670,3 +680,53 @@ show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 1 a 1 a A 10 NULL NULL YES BTREE
|
||||
drop table t1;
|
||||
set myisam_stats_method=nulls_ignored;
|
||||
show variables like 'myisam_stats_method';
|
||||
Variable_name Value
|
||||
myisam_stats_method nulls_ignored
|
||||
create table t1 (
|
||||
a char(3), b char(4), c char(5), d char(6),
|
||||
key(a,b,c,d)
|
||||
);
|
||||
insert into t1 values ('bcd','def1', NULL, 'zz');
|
||||
insert into t1 values ('bcd','def2', NULL, 'zz');
|
||||
insert into t1 values ('bce','def1', 'yuu', NULL);
|
||||
insert into t1 values ('bce','def2', NULL, 'quux');
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 1 a 1 a A 2 NULL NULL YES BTREE
|
||||
t1 1 a 2 b A 4 NULL NULL YES BTREE
|
||||
t1 1 a 3 c A 4 NULL NULL YES BTREE
|
||||
t1 1 a 4 d A 4 NULL NULL YES BTREE
|
||||
delete from t1;
|
||||
analyze table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 analyze status OK
|
||||
show index from t1;
|
||||
Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_part Packed Null Index_type Comment
|
||||
t1 1 a 1 a A 0 NULL NULL YES BTREE
|
||||
t1 1 a 2 b A 0 NULL NULL YES BTREE
|
||||
t1 1 a 3 c A 0 NULL NULL YES BTREE
|
||||
t1 1 a 4 d A 0 NULL NULL YES BTREE
|
||||
set myisam_stats_method=DEFAULT;
|
||||
drop table t1;
|
||||
create table t1(
|
||||
cip INT NOT NULL,
|
||||
time TIME NOT NULL,
|
||||
score INT NOT NULL DEFAULT 0,
|
||||
bob TINYBLOB
|
||||
);
|
||||
insert into t1 (cip, time) VALUES (1, '00:01'), (2, '00:02'), (3,'00:03');
|
||||
insert into t1 (cip, bob, time) VALUES (4, 'a', '00:04'), (5, 'b', '00:05'),
|
||||
(6, 'c', '00:06');
|
||||
select * from t1 where bob is null and cip=1;
|
||||
cip time score bob
|
||||
1 00:01:00 0 NULL
|
||||
create index bug on t1 (bob(22), cip, time);
|
||||
select * from t1 where bob is null and cip=1;
|
||||
cip time score bob
|
||||
1 00:01:00 0 NULL
|
||||
drop table t1;
|
||||
|
@@ -1493,3 +1493,13 @@ insert into t2 (a, b) values (NULL, NULL),(10, NULL),(NULL, "twenty"),(30, "thir
|
||||
</database>
|
||||
</mysqldump>
|
||||
drop table t1, t2;
|
||||
create table t1 (a text character set utf8, b text character set latin1);
|
||||
insert t1 values (0x4F736E616272C3BC636B, 0x4BF66C6E);
|
||||
select * from t1;
|
||||
a b
|
||||
Osnabr<EFBFBD>ck K<>ln
|
||||
test.t1: Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
|
||||
select * from t1;
|
||||
a b
|
||||
Osnabr<EFBFBD>ck K<>ln
|
||||
drop table t1;
|
||||
|
@@ -179,8 +179,7 @@ a b c
|
||||
2 two two
|
||||
alter table t1 drop index c;
|
||||
select * from t1 where b = 'two';
|
||||
a b c
|
||||
2 two two
|
||||
ERROR HY000: Can't lock file (errno: 241)
|
||||
select * from t1 where b = 'two';
|
||||
a b c
|
||||
2 two two
|
||||
|
@@ -667,3 +667,7 @@ counter datavalue
|
||||
57 newval
|
||||
58 newval
|
||||
drop table t1;
|
||||
CREATE TABLE t1 ( b INT ) PACK_KEYS = 0 ENGINE = ndb;
|
||||
select * from t1;
|
||||
b
|
||||
drop table t1;
|
||||
|
@@ -190,12 +190,22 @@ p a
|
||||
6 AAA
|
||||
drop table t1;
|
||||
create table t1 (
|
||||
a varchar(10) primary key
|
||||
) engine=ndb;
|
||||
insert into t1 values ('jonas % ');
|
||||
replace into t1 values ('jonas % ');
|
||||
replace into t1 values ('jonas % ');
|
||||
a char(10) primary key
|
||||
) engine=ndbcluster default charset=latin1;
|
||||
insert into t1 values ('aaabb');
|
||||
select * from t1;
|
||||
a
|
||||
jonas %
|
||||
aaabb
|
||||
replace into t1 set a = 'AAABB';
|
||||
select * from t1;
|
||||
a
|
||||
AAABB
|
||||
replace into t1 set a = 'aAaBb';
|
||||
select * from t1;
|
||||
a
|
||||
aAaBb
|
||||
replace into t1 set a = 'aaabb';
|
||||
select * from t1;
|
||||
a
|
||||
aaabb
|
||||
drop table t1;
|
||||
|
@@ -30,6 +30,7 @@ create table t1 (a int) engine=ndbcluster;
|
||||
insert into t1 value (2);
|
||||
select * from t1;
|
||||
ERROR HY000: Got error 241 'Invalid schema object version' from ndbcluster
|
||||
flush table t1;
|
||||
select * from t1;
|
||||
a
|
||||
2
|
||||
|
@@ -639,25 +639,6 @@ execute stmt using @a, @b;
|
||||
?=?
|
||||
1
|
||||
deallocate prepare stmt;
|
||||
create table t1 (utext varchar(20) character set ucs2);
|
||||
insert into t1 values ("lily");
|
||||
insert into t1 values ("river");
|
||||
prepare stmt from 'select utext from t1 where utext like ?';
|
||||
set @param1='%%';
|
||||
execute stmt using @param1;
|
||||
utext
|
||||
lily
|
||||
river
|
||||
execute stmt using @param1;
|
||||
utext
|
||||
lily
|
||||
river
|
||||
select utext from t1 where utext like '%%';
|
||||
utext
|
||||
lily
|
||||
river
|
||||
drop table t1;
|
||||
deallocate prepare stmt;
|
||||
create table t1 (a int);
|
||||
prepare stmt from "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 '?' at line 1
|
||||
@@ -699,3 +680,56 @@ execute stmt;
|
||||
@@tx_isolation
|
||||
REPEATABLE-READ
|
||||
deallocate prepare stmt;
|
||||
prepare stmt from "create temporary table t1 (letter enum('','a','b','c')
|
||||
not null)";
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
set names latin1;
|
||||
prepare stmt from "create table t1 (a enum('test') default 'test')
|
||||
character set utf8";
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
set names default;
|
||||
deallocate prepare stmt;
|
||||
create table t1 (
|
||||
word_id mediumint(8) unsigned not null default '0',
|
||||
formatted varchar(20) not null default ''
|
||||
);
|
||||
insert into t1 values
|
||||
(80,'pendant'), (475,'pretendants'), (989,'tendances'),
|
||||
(1019,'cependant'),(1022,'abondance'),(1205,'independants'),
|
||||
(13,'lessiver'),(25,'lambiner'),(46,'situer'),(71,'terminer'),
|
||||
(82,'decrocher');
|
||||
select count(*) from t1 where formatted like '%NDAN%';
|
||||
count(*)
|
||||
6
|
||||
select count(*) from t1 where formatted like '%ER';
|
||||
count(*)
|
||||
5
|
||||
prepare stmt from "select count(*) from t1 where formatted like ?";
|
||||
set @like="%NDAN%";
|
||||
execute stmt using @like;
|
||||
count(*)
|
||||
6
|
||||
set @like="%ER";
|
||||
execute stmt using @like;
|
||||
count(*)
|
||||
5
|
||||
set @like="%NDAN%";
|
||||
execute stmt using @like;
|
||||
count(*)
|
||||
6
|
||||
set @like="%ER";
|
||||
execute stmt using @like;
|
||||
count(*)
|
||||
5
|
||||
deallocate prepare stmt;
|
||||
drop table t1;
|
||||
|
@@ -32,19 +32,19 @@ identified by 'looser' ;
|
||||
show grants for second_user@localhost ;
|
||||
Grants for second_user@localhost
|
||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
drop table mysqltest.t9 ;
|
||||
show grants for second_user@localhost ;
|
||||
Grants for second_user@localhost
|
||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
show grants for second_user@localhost ;
|
||||
Grants for second_user@localhost
|
||||
GRANT USAGE ON *.* TO 'second_user'@'localhost' IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t1` TO 'second_user'@'localhost'
|
||||
GRANT SELECT ON `mysqltest`.`t9` TO 'second_user'@'localhost'
|
||||
prepare s_t1 from 'select a as my_col from t1' ;
|
||||
execute s_t1 ;
|
||||
my_col
|
||||
|
@@ -982,4 +982,29 @@ show status like "Qcache_hits";
|
||||
Variable_name Value
|
||||
Qcache_hits 1
|
||||
drop table t1;
|
||||
create table t1 (a int);
|
||||
flush status;
|
||||
(select a from t1) union (select a from t1);
|
||||
a
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 1
|
||||
show status like "Qcache_inserts";
|
||||
Variable_name Value
|
||||
Qcache_inserts 1
|
||||
show status like "Qcache_hits";
|
||||
Variable_name Value
|
||||
Qcache_hits 0
|
||||
(select a from t1) union (select a from t1);
|
||||
a
|
||||
show status like "Qcache_queries_in_cache";
|
||||
Variable_name Value
|
||||
Qcache_queries_in_cache 1
|
||||
show status like "Qcache_inserts";
|
||||
Variable_name Value
|
||||
Qcache_inserts 1
|
||||
show status like "Qcache_hits";
|
||||
Variable_name Value
|
||||
Qcache_hits 1
|
||||
drop table t1;
|
||||
set GLOBAL query_cache_size=0;
|
||||
|
@@ -31,7 +31,7 @@ n
|
||||
4
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 561 slave-relay-bin.000002 # master-bin.000001 Yes No 0 0 244 # Master master-bin.000001 244 No #
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 561 slave-relay-bin.000002 # master-bin.000001 # No 0 0 244 # Master master-bin.000001 244 No #
|
||||
start slave until master_log_file='master-no-such-bin.000001', master_log_pos=291;
|
||||
select * from t1;
|
||||
n
|
||||
@@ -41,7 +41,7 @@ n
|
||||
4
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 561 slave-relay-bin.000002 # master-bin.000001 Yes No 0 0 244 # Master master-no-such-bin.000001 291 No #
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 561 slave-relay-bin.000002 # master-bin.000001 # No 0 0 244 # Master master-no-such-bin.000001 291 No #
|
||||
start slave until relay_log_file='slave-relay-bin.000002', relay_log_pos=537;
|
||||
select * from t2;
|
||||
n
|
||||
@@ -49,7 +49,7 @@ n
|
||||
2
|
||||
show slave status;
|
||||
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 561 slave-relay-bin.000002 # master-bin.000001 Yes No 0 0 449 # Relay slave-relay-bin.000002 537 No #
|
||||
# 127.0.0.1 root MASTER_MYPORT 1 master-bin.000001 561 slave-relay-bin.000002 # master-bin.000001 # No 0 0 449 # Relay slave-relay-bin.000002 537 No #
|
||||
start slave;
|
||||
stop slave;
|
||||
start slave until master_log_file='master-bin.000001', master_log_pos=561;
|
||||
|
@@ -2698,3 +2698,19 @@ a b c d
|
||||
1 2 2 1
|
||||
1 2 3 1
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
create table t1 (f1 int primary key, f2 int);
|
||||
create table t2 (f3 int, f4 int, primary key(f3,f4));
|
||||
insert into t1 values (1,1);
|
||||
insert into t2 values (1,1),(1,2);
|
||||
select distinct count(f2) >0 from t1 left join t2 on f1=f3 group by f1;
|
||||
count(f2) >0
|
||||
1
|
||||
drop table t1,t2;
|
||||
create table t1 (f1 int,f2 int);
|
||||
insert into t1 values(1,1);
|
||||
create table t2 (f3 int, f4 int, primary key(f3,f4));
|
||||
insert into t2 values(1,1);
|
||||
select * from t1 where f1 in (select f3 from t2 where (f3,f4)= (select f3,f4 from t2));
|
||||
f1 f2
|
||||
1 1
|
||||
drop table t1,t2;
|
||||
|
@@ -513,3 +513,10 @@ t1 CREATE TABLE `t1` (
|
||||
KEY `c2` USING BTREE (`c2`)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
DROP TABLE t1;
|
||||
flush tables;
|
||||
SHOW TABLE STATUS like 't1';
|
||||
Name Engine Version Row_format Rows Avg_row_length Data_length Max_data_length Index_length Data_free Auto_increment Create_time Update_time Check_time Collation Checksum Create_options Comment
|
||||
t1 NULL NULL NULL NULL # # # # NULL NULL NULL NULL NULL NULL NULL NULL Incorrect information in file: './test/t1.frm'
|
||||
show create table t1;
|
||||
ERROR HY000: Incorrect information in file: './test/t1.frm'
|
||||
drop table t1;
|
||||
|
@@ -1253,3 +1253,29 @@ id
|
||||
5
|
||||
99
|
||||
drop table t1;
|
||||
create table t1 (f1 decimal(60,25), f2 decimal(60,25));
|
||||
insert into t1 values (0.0,0.0);
|
||||
select f1 from t1 union all select f2 from t1;
|
||||
f1
|
||||
0.0000000000000000000000000
|
||||
0.0000000000000000000000000
|
||||
select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
|
||||
union all
|
||||
select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
|
||||
description f1
|
||||
XXXXXXXXXXXXXXXXXXXX 0.0000000000000000000000000
|
||||
YYYYYYYYYYYYYYYYYYYY 0.0000000000000000000000000
|
||||
drop table t1;
|
||||
create table t1 (f1 decimal(60,24), f2 decimal(60,24));
|
||||
insert into t1 values (0.0,0.0);
|
||||
select f1 from t1 union all select f2 from t1;
|
||||
f1
|
||||
0.000000000000000000000000
|
||||
0.000000000000000000000000
|
||||
select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
|
||||
union all
|
||||
select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
|
||||
description f1
|
||||
XXXXXXXXXXXXXXXXXXXX 0.000000000000000000000000
|
||||
YYYYYYYYYYYYYYYYYYYY 0.000000000000000000000000
|
||||
drop table t1;
|
||||
|
@@ -263,3 +263,98 @@ test
|
||||
delete from t1 where count(*)=1;
|
||||
ERROR HY000: Invalid use of group function
|
||||
drop table t1;
|
||||
create table t1 ( a int, b int default 0, index (a) );
|
||||
insert into t1 (a) values (0),(0),(0),(0),(0),(0),(0),(0);
|
||||
flush status;
|
||||
select a from t1 order by a limit 1;
|
||||
a
|
||||
0
|
||||
show status like 'handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 1
|
||||
Handler_read_key 0
|
||||
Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 0
|
||||
flush status;
|
||||
update t1 set a=9999 order by a limit 1;
|
||||
update t1 set b=9999 order by a limit 1;
|
||||
show status like 'handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 1
|
||||
Handler_read_key 0
|
||||
Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 2
|
||||
Handler_read_rnd_next 9
|
||||
flush status;
|
||||
delete from t1 order by a limit 1;
|
||||
show status like 'handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 1
|
||||
Handler_read_key 0
|
||||
Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 0
|
||||
Handler_read_rnd_next 0
|
||||
flush status;
|
||||
delete from t1 order by a desc limit 1;
|
||||
show status like 'handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 0
|
||||
Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 1
|
||||
Handler_read_rnd_next 9
|
||||
alter table t1 disable keys;
|
||||
flush status;
|
||||
delete from t1 order by a limit 1;
|
||||
show status like 'handler_read%';
|
||||
Variable_name Value
|
||||
Handler_read_first 0
|
||||
Handler_read_key 0
|
||||
Handler_read_next 0
|
||||
Handler_read_prev 0
|
||||
Handler_read_rnd 1
|
||||
Handler_read_rnd_next 9
|
||||
select * from t1;
|
||||
a b
|
||||
0 0
|
||||
0 0
|
||||
0 0
|
||||
0 0
|
||||
0 0
|
||||
update t1 set a=a+10,b=1 order by a limit 3;
|
||||
update t1 set a=a+11,b=2 order by a limit 3;
|
||||
update t1 set a=a+12,b=3 order by a limit 3;
|
||||
select * from t1 order by a;
|
||||
a b
|
||||
11 2
|
||||
21 2
|
||||
22 3
|
||||
22 3
|
||||
23 3
|
||||
drop table t1;
|
||||
create table t1 (f1 date not null);
|
||||
insert into t1 values('2000-01-01'),('0000-00-00');
|
||||
update t1 set f1='2002-02-02' where f1 is null;
|
||||
select * from t1;
|
||||
f1
|
||||
2000-01-01
|
||||
2002-02-02
|
||||
drop table t1;
|
||||
create table t1 (f1 int);
|
||||
create table t2 (f2 int);
|
||||
insert into t1 values(1),(2);
|
||||
insert into t2 values(1),(1);
|
||||
update t1,t2 set f1=3,f2=3 where f1=f2 and f1=1;
|
||||
affected rows: 3
|
||||
info: Rows matched: 3 Changed: 3 Warnings: 0
|
||||
update t2 set f2=1;
|
||||
update t1 set f1=1 where f1=3;
|
||||
update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1;
|
||||
affected rows: 3
|
||||
info: Rows matched: 3 Changed: 3 Warnings: 0
|
||||
drop table t1,t2;
|
||||
|
@@ -499,3 +499,8 @@ set names latin1;
|
||||
select @@have_innodb;
|
||||
@@have_innodb
|
||||
#
|
||||
set @test = @@query_prealloc_size;
|
||||
set @@query_prealloc_size = @test;
|
||||
select @@query_prealloc_size = @test;
|
||||
@@query_prealloc_size = @test
|
||||
1
|
||||
|
3
mysql-test/std_data/loaddata5.dat
Normal file
3
mysql-test/std_data/loaddata5.dat
Normal file
@@ -0,0 +1,3 @@
|
||||
"field1","field2"
|
||||
"a""b","cd""ef"
|
||||
"a"b",c"d"e
|
@@ -57,4 +57,29 @@ insert into t1 values (100000);
|
||||
select * from t1 procedure analyse (1,1);
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #14138 ROLLUP and PROCEDURE ANALYSE() hang server
|
||||
#
|
||||
create table t1 (product varchar(32), country_id int not null, year int,
|
||||
profit int);
|
||||
insert into t1 values ( 'Computer', 2,2000, 1200),
|
||||
( 'TV', 1, 1999, 150),
|
||||
( 'Calculator', 1, 1999,50),
|
||||
( 'Computer', 1, 1999,1500),
|
||||
( 'Computer', 1, 2000,1500),
|
||||
( 'TV', 1, 2000, 150),
|
||||
( 'TV', 2, 2000, 100),
|
||||
( 'TV', 2, 2000, 100),
|
||||
( 'Calculator', 1, 2000,75),
|
||||
( 'Calculator', 2, 2000,75),
|
||||
( 'TV', 1, 1999, 100),
|
||||
( 'Computer', 1, 1999,1200),
|
||||
( 'Computer', 2, 2000,1500),
|
||||
( 'Calculator', 2, 2000,75),
|
||||
( 'Phone', 3, 2003,10)
|
||||
;
|
||||
create table t2 (country_id int primary key, country char(20) not null);
|
||||
insert into t2 values (1, 'USA'),(2,'India'), (3,'Finland');
|
||||
select product, sum(profit),avg(profit) from t1 group by product with rollup procedure analyse();
|
||||
drop table t1,t2;
|
||||
# End of 4.1 tests
|
||||
|
@@ -39,4 +39,13 @@ check table t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# procedure in PS BUG#13673
|
||||
#
|
||||
CREATE TABLE t1 (a int);
|
||||
prepare stmt1 from "SELECT * FROM t1 PROCEDURE ANALYSE()";
|
||||
execute stmt1;
|
||||
execute stmt1;
|
||||
deallocate prepare stmt1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -930,4 +930,22 @@ SELECT id FROM t1 WHERE (list_id = 1) AND (term = "lettera");
|
||||
SELECT id FROM t1 WHERE (list_id = 1) AND (term = "letterd");
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
#
|
||||
# Bug #15536: Crash when DELETE with subquery using BDB tables
|
||||
#
|
||||
create table t1 (a int, key(a)) engine=bdb;
|
||||
create table t2 (b int, key(b)) engine=bdb;
|
||||
insert into t1 values (1),(1),(2),(3),(4);
|
||||
insert into t2 values (1),(5),(6),(7);
|
||||
delete from t1 where (a in (select b from t2));
|
||||
select count(*) from t1;
|
||||
# INSERT also blows up
|
||||
--error 1242
|
||||
insert into t1 set a=(select b from t2);
|
||||
select count(*) from t1;
|
||||
# UPDATE also blows up
|
||||
update t1 set a = a + 1 where (a in (select b from t2));
|
||||
select count(*) from t1;
|
||||
drop table t1, t2;
|
||||
|
||||
--echo End of 4.1 tests
|
||||
|
@@ -3,7 +3,7 @@
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3;
|
||||
drop table if exists t1,t2,t3,t4,t5;
|
||||
drop database if exists mysqltest;
|
||||
--enable_warnings
|
||||
|
||||
@@ -200,13 +200,6 @@ drop table t1;
|
||||
# bug #1434
|
||||
#
|
||||
|
||||
create table t1 select 1,2,3;
|
||||
create table if not exists t1 select 1,2;
|
||||
--error 1136
|
||||
create table if not exists t1 select 1,2,3,4;
|
||||
create table if not exists t1 select 1;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1 select 1,2,3;
|
||||
create table if not exists t1 select 1,2;
|
||||
--error 1136
|
||||
@@ -501,6 +494,13 @@ AS f2 FROM t1;
|
||||
DESC t2;
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
#
|
||||
# Bug#12913 Simple SQL can crash server or connection
|
||||
#
|
||||
CREATE TABLE t12913 (f1 ENUM ('a','b')) AS SELECT 'a' AS f1;
|
||||
SELECT * FROM t12913;
|
||||
DROP TABLE t12913;
|
||||
|
||||
#
|
||||
# Bug#11028: Crash on create table like
|
||||
#
|
||||
@@ -526,4 +526,81 @@ create table t1 (a int);
|
||||
create table if not exists t1 (a int);
|
||||
drop table t1;
|
||||
|
||||
# BUG#14139
|
||||
create table t1 (
|
||||
a varchar(112) charset utf8 collate utf8_bin not null,
|
||||
primary key (a)
|
||||
) select 'test' as a ;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#14480: assert failure in CREATE ... SELECT because of wrong
|
||||
# calculation of number of NULLs.
|
||||
#
|
||||
CREATE TABLE t2 (
|
||||
a int(11) default NULL
|
||||
);
|
||||
insert into t2 values(111);
|
||||
|
||||
create table t1 (
|
||||
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||
b int not null, primary key (a)
|
||||
) select a, 1 as b from t2 ;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1 (
|
||||
a varchar(12) charset utf8 collate utf8_bin not null,
|
||||
b int not null, primary key (a)
|
||||
) select 'a' as a , 1 as b from t2 ;
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1 (
|
||||
a varchar(12) charset utf8 collate utf8_bin,
|
||||
b int not null, primary key (a)
|
||||
) select 'a' as a , 1 as b from t2 ;
|
||||
show create table t1;
|
||||
drop table t1, t2;
|
||||
|
||||
create table t1 (
|
||||
a1 int not null,
|
||||
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||
);
|
||||
insert into t1 values (1,1,1, 1,1,1, 1,1,1);
|
||||
|
||||
create table t2 (
|
||||
a1 varchar(12) charset utf8 collate utf8_bin not null,
|
||||
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,
|
||||
primary key (a1)
|
||||
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;
|
||||
drop table t2;
|
||||
|
||||
create table t2 (
|
||||
a1 varchar(12) charset utf8 collate utf8_bin,
|
||||
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1;
|
||||
|
||||
drop table t1, t2;
|
||||
create table t1 (
|
||||
a1 int, a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int
|
||||
);
|
||||
insert into t1 values (1,1,1, 1,1,1, 1,1,1);
|
||||
|
||||
create table t2 (
|
||||
a1 varchar(12) charset utf8 collate utf8_bin not null,
|
||||
a2 int, a3 int, a4 int, a5 int, a6 int, a7 int, a8 int, a9 int,
|
||||
primary key (a1)
|
||||
) select a1,a2,a3,a4,a5,a6,a7,a8,a9 from t1 ;
|
||||
|
||||
# Test the default value
|
||||
drop table t2;
|
||||
|
||||
create table t2 ( a int default 3, b int default 3)
|
||||
select a1,a2 from t1;
|
||||
show create table t2;
|
||||
|
||||
drop table t1, t2;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -1314,4 +1314,41 @@ select period from t1;
|
||||
|
||||
drop table if exists t1,t2,t3,t4;
|
||||
|
||||
#
|
||||
# Bug #13894 Server crashes on update of CSV table
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS bug13894;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE bug13894 ( val integer ) ENGINE = CSV;
|
||||
INSERT INTO bug13894 VALUES (5);
|
||||
INSERT INTO bug13894 VALUES (10);
|
||||
INSERT INTO bug13894 VALUES (11);
|
||||
INSERT INTO bug13894 VALUES (10);
|
||||
SELECT * FROM bug13894;
|
||||
UPDATE bug13894 SET val=6 WHERE val=10;
|
||||
SELECT * FROM bug13894;
|
||||
DROP TABLE bug13894;
|
||||
|
||||
#
|
||||
# Bug #14672 Bug in deletion
|
||||
#
|
||||
|
||||
--disable_warnings
|
||||
DROP TABLE IF EXISTS bug14672;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE bug14672 (c1 integer) engine = CSV;
|
||||
INSERT INTO bug14672 VALUES (1), (2), (3);
|
||||
SELECT * FROM bug14672;
|
||||
DELETE FROM bug14672 WHERE c1 = 2;
|
||||
SELECT * FROM bug14672;
|
||||
INSERT INTO bug14672 VALUES (4);
|
||||
SELECT * FROM bug14672;
|
||||
INSERT INTO bug14672 VALUES (5);
|
||||
SELECT * FROM bug14672;
|
||||
DROP TABLE bug14672;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -23,4 +23,25 @@ SELECT * FROM t1 WHERE popisek = '2005-01-1';
|
||||
SELECT * FROM t1 WHERE popisek LIKE '2005-01-1';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#13347: empty result from query with like and cp1250 charset
|
||||
#
|
||||
set names cp1250;
|
||||
CREATE TABLE t1
|
||||
(
|
||||
id INT AUTO_INCREMENT PRIMARY KEY,
|
||||
str VARCHAR(32) CHARACTER SET cp1250 COLLATE cp1250_czech_cs NOT NULL default '',
|
||||
UNIQUE KEY (str)
|
||||
);
|
||||
|
||||
INSERT INTO t1 VALUES (NULL, 'a');
|
||||
INSERT INTO t1 VALUES (NULL, 'aa');
|
||||
INSERT INTO t1 VALUES (NULL, 'aaa');
|
||||
INSERT INTO t1 VALUES (NULL, 'aaaa');
|
||||
INSERT INTO t1 VALUES (NULL, 'aaaaa');
|
||||
INSERT INTO t1 VALUES (NULL, 'aaaaaa');
|
||||
INSERT INTO t1 VALUES (NULL, 'aaaaaaa');
|
||||
select * from t1 where str like 'aa%';
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -401,29 +401,6 @@ DROP TABLE t2;
|
||||
DROP TABLE t3;
|
||||
#DROP TABLE t4;
|
||||
|
||||
# Test prepared statement with 0x8300 sequence in parameter while
|
||||
# running with cp932 client character set.
|
||||
RESET MASTER;
|
||||
CREATE TABLE t1(f1 blob);
|
||||
PREPARE stmt1 FROM 'INSERT INTO t1 VALUES(?)';
|
||||
SET @var1= x'8300';
|
||||
# TODO: Note that this doesn't actually test the code which was added for
|
||||
# bug#11338 because this syntax for prepared statements causes the PS to
|
||||
# be replicated differently than if we executed the PS from C or Java.
|
||||
# Using this syntax, variable names are inserted into the binlog instead
|
||||
# of values. The real goal of this test is to check the code that was
|
||||
# added to Item_param::query_val_str() in order to do hex encoding of
|
||||
# PS parameters when the client character set is cp932;
|
||||
# Bug#11338 has an example java program which can be used to verify this
|
||||
# code (and I have used it to test the fix) until there is some way to
|
||||
# exercise this code from mysql-test-run.
|
||||
EXECUTE stmt1 USING @var1;
|
||||
--replace_column 2 # 5 #
|
||||
SHOW BINLOG EVENTS FROM 79;
|
||||
SELECT HEX(f1) FROM t1;
|
||||
DROP table t1;
|
||||
# end test for bug#11338
|
||||
|
||||
SET collation_connection='cp932_japanese_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
|
35
mysql-test/t/ctype_cp932_binlog.test
Normal file
35
mysql-test/t/ctype_cp932_binlog.test
Normal file
@@ -0,0 +1,35 @@
|
||||
-- source include/not_embedded.inc
|
||||
-- source include/have_cp932.inc
|
||||
|
||||
--character_set cp932
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
set names cp932;
|
||||
set character_set_database = cp932;
|
||||
|
||||
# Test prepared statement with 0x8300 sequence in parameter while
|
||||
# running with cp932 client character set.
|
||||
RESET MASTER;
|
||||
CREATE TABLE t1(f1 blob);
|
||||
PREPARE stmt1 FROM 'INSERT INTO t1 VALUES(?)';
|
||||
SET @var1= x'8300';
|
||||
# TODO: Note that this doesn't actually test the code which was added for
|
||||
# bug#11338 because this syntax for prepared statements causes the PS to
|
||||
# be replicated differently than if we executed the PS from C or Java.
|
||||
# Using this syntax, variable names are inserted into the binlog instead
|
||||
# of values. The real goal of this test is to check the code that was
|
||||
# added to Item_param::query_val_str() in order to do hex encoding of
|
||||
# PS parameters when the client character set is cp932;
|
||||
# Bug#11338 has an example java program which can be used to verify this
|
||||
# code (and I have used it to test the fix) until there is some way to
|
||||
# exercise this code from mysql-test-run.
|
||||
EXECUTE stmt1 USING @var1;
|
||||
--replace_column 2 # 5 #
|
||||
SHOW BINLOG EVENTS FROM 79;
|
||||
SELECT HEX(f1) FROM t1;
|
||||
DROP table t1;
|
||||
# end test for bug#11338
|
||||
|
||||
# End of 4.1 tests
|
33
mysql-test/t/ctype_euckr.test
Normal file
33
mysql-test/t/ctype_euckr.test
Normal file
@@ -0,0 +1,33 @@
|
||||
-- source include/have_euckr.inc
|
||||
|
||||
#
|
||||
# Tests with the euckr character set
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
SET @test_character_set= 'euckr';
|
||||
SET @test_collation= 'euckr_korean_ci';
|
||||
-- source include/ctype_common.inc
|
||||
|
||||
SET NAMES euckr;
|
||||
SET collation_connection='euckr_korean_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
SET collation_connection='euckr_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
|
||||
#
|
||||
# Bug#15377 Valid multibyte sequences are truncated on INSERT
|
||||
#
|
||||
SET NAMES euckr;
|
||||
CREATE TABLE t1 (a text) character set euckr;
|
||||
INSERT INTO t1 VALUES (0xA2E6),(0xFEF7);
|
||||
SELECT hex(a) FROM t1 ORDER BY a;
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
33
mysql-test/t/ctype_gb2312.test
Normal file
33
mysql-test/t/ctype_gb2312.test
Normal file
@@ -0,0 +1,33 @@
|
||||
-- source include/have_gb2312.inc
|
||||
|
||||
#
|
||||
# Tests with the gb2312 character set
|
||||
#
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
--enable_warnings
|
||||
|
||||
SET @test_character_set= 'gb2312';
|
||||
SET @test_collation= 'gb2312_chinese_ci';
|
||||
-- source include/ctype_common.inc
|
||||
|
||||
SET NAMES gb2312;
|
||||
SET collation_connection='gb2312_chinese_ci';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
SET collation_connection='gb2312_bin';
|
||||
-- source include/ctype_filesort.inc
|
||||
-- source include/ctype_innodb_like.inc
|
||||
-- source include/ctype_like_escape.inc
|
||||
|
||||
#
|
||||
# Bug#15377 Valid multibyte sequences are truncated on INSERT
|
||||
#
|
||||
SET NAMES gb2312;
|
||||
CREATE TABLE t1 (a text) character set gb2312;
|
||||
INSERT INTO t1 VALUES (0xA2A1),(0xD7FE);
|
||||
SELECT hex(a) FROM t1 ORDER BY a;
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
@@ -144,8 +144,7 @@ create table t1 (a char(10) character set cp1251);
|
||||
insert into t1 values (_koi8r'<27><><EFBFBD><EFBFBD>');
|
||||
# this is possible:
|
||||
select * from t1 where a=_koi8r'<27><><EFBFBD><EFBFBD>';
|
||||
# this is not possible, because we have a function, not just a constant:
|
||||
--error 1267
|
||||
# this is possible, because we have a function with constant arguments:
|
||||
select * from t1 where a=concat(_koi8r'<27><><EFBFBD><EFBFBD>');
|
||||
# this is not posible, cannot convert _latin1'<27><><EFBFBD><EFBFBD>' into cp1251:
|
||||
--error 1267
|
||||
@@ -153,6 +152,14 @@ select * from t1 where a=_latin1'
|
||||
drop table t1;
|
||||
set names latin1;
|
||||
|
||||
#
|
||||
# Bug#10446 Illegal mix of collations
|
||||
#
|
||||
create table t1 (a char(10) character set utf8 collate utf8_bin);
|
||||
insert into t1 values (' xxx');
|
||||
select * from t1 where a=lpad('xxx',10,' ');
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Check more automatic conversion
|
||||
#
|
||||
|
@@ -419,4 +419,26 @@ insert into t1 values (0x005b);
|
||||
select hex(a) from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #14583 Bug on query using a LIKE on indexed field with ucs2_bin collation
|
||||
#
|
||||
create table t1(f1 varchar(5) CHARACTER SET ucs2 COLLATE ucs2_bin NOT NULL) engine=InnoDB;
|
||||
insert into t1 values('a');
|
||||
create index t1f1 on t1(f1);
|
||||
select f1 from t1 where f1 like 'a%';
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#9442 Set parameter make query fail if column character set is UCS2
|
||||
#
|
||||
create table t1 (utext varchar(20) character set ucs2);
|
||||
insert into t1 values ("lily");
|
||||
insert into t1 values ("river");
|
||||
prepare stmt from 'select utext from t1 where utext like ?';
|
||||
set @param1='%%';
|
||||
execute stmt using @param1;
|
||||
execute stmt using @param1;
|
||||
select utext from t1 where utext like '%%';
|
||||
drop table t1;
|
||||
deallocate prepare stmt;
|
||||
# End of 4.1 tests
|
||||
|
@@ -873,4 +873,23 @@ create table t1 (a varchar(255)) default charset=utf8;
|
||||
select * from t1 where find_in_set('-1', a);
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#13233: select distinct char(column) fails with utf8
|
||||
#
|
||||
create table t1 (a int);
|
||||
insert into t1 values (48),(49),(50);
|
||||
set names utf8;
|
||||
select distinct char(a) from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#15581: COALESCE function truncates mutli-byte TINYTEXT values
|
||||
#
|
||||
CREATE TABLE t1 (t TINYTEXT CHARACTER SET utf8);
|
||||
INSERT INTO t1 VALUES(REPEAT('a', 100));
|
||||
CREATE TEMPORARY TABLE t2 SELECT COALESCE(t) AS bug FROM t1;
|
||||
SELECT LENGTH(bug) FROM t2;
|
||||
DROP TABLE t2;
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -260,4 +260,12 @@ select str_to_date("2003-04-05 g", "%Y-%m-%d") as f1,
|
||||
str_to_date("2003-04-05 10:11:12.101010234567", "%Y-%m-%d %H:%i:%S.%f") as f2;
|
||||
--enable_ps_protocol
|
||||
|
||||
#
|
||||
# Bug #14016
|
||||
#
|
||||
create table t1 (f1 datetime);
|
||||
insert into t1 (f1) values ("2005-01-01");
|
||||
insert into t1 (f1) values ("2005-02-01");
|
||||
select date_format(f1, "%m") as d1, date_format(f1, "%M") as d2 from t1 order by date_format(f1, "%M");
|
||||
drop table t1;
|
||||
# End of 4.1 tests
|
||||
|
@@ -348,6 +348,13 @@ INSERT INTO t1 VALUES('bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb');
|
||||
SET myisam_repair_threads=2;
|
||||
REPAIR TABLE t1;
|
||||
SET myisam_repair_threads=@@global.myisam_repair_threads;
|
||||
|
||||
#
|
||||
# BUG#5686 - #1034 - Incorrect key file for table - only utf8
|
||||
#
|
||||
INSERT INTO t1 VALUES('testword\'\'');
|
||||
SELECT a FROM t1 WHERE MATCH a AGAINST('testword' IN BOOLEAN MODE);
|
||||
SELECT a FROM t1 WHERE MATCH a AGAINST('testword\'\'' IN BOOLEAN MODE);
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -179,7 +179,37 @@ update t1 set a='aaaxxx' where a = 'aaayyy';
|
||||
select count(*) from t1 where match a against ('aaaxxx' in boolean mode);
|
||||
select count(*) from t1 where match a against ('aaayyy' in boolean mode);
|
||||
select count(*) from t1 where match a against ('aaazzz' in boolean mode);
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#11336
|
||||
#
|
||||
# for uca collation isalnum and strnncollsp don't agree on whether
|
||||
# 0xC2A0 is a space (strnncollsp is right, isalnum is wrong).
|
||||
#
|
||||
# they still don't, the bug was fixed by avoiding strnncollsp
|
||||
#
|
||||
|
||||
set names utf8;
|
||||
create table t1(a text,fulltext(a)) collate=utf8_swedish_ci;
|
||||
insert into t1 values('test test '),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test'),
|
||||
('test'),('test'),('test'),('test'),('test'),('test'),('test'),('test');
|
||||
delete from t1 limit 1;
|
||||
drop table t1;
|
||||
set names latin1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -86,4 +86,14 @@ insert into t1 values (1);
|
||||
select rand(i) from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #14009: use of abs() on null value causes problems with filesort
|
||||
#
|
||||
# InnoDB is required to reproduce the fault, but it is okay if we default to
|
||||
# MyISAM when testing.
|
||||
create table t1 (a varchar(90), ts datetime not null, index (a)) engine=innodb default charset=utf8;
|
||||
insert into t1 values ('http://www.foo.com/', now());
|
||||
select a from t1 where a='http://www.foo.com/' order by abs(timediff(ts, 0));
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -38,4 +38,9 @@ select a from t1 where mid(a+0,6,3) = ( mid(20040106123400,6,3) );
|
||||
|
||||
drop table t1;
|
||||
|
||||
# Test for BUG#9535
|
||||
create table t1 as select uuid(), length(uuid());
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -360,4 +360,7 @@ t1 where object_id=85984;
|
||||
|
||||
drop table t1;
|
||||
|
||||
select (asWKT(geomfromwkb((0x000000000140240000000000004024000000000000))));
|
||||
select (asWKT(geomfromwkb((0x010100000000000000000024400000000000002440))));
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -409,4 +409,28 @@ flush privileges;
|
||||
set @user123="non-existent";
|
||||
select * from mysql.db where user=@user123;
|
||||
|
||||
set names koi8r;
|
||||
create database <20><>;
|
||||
grant select on <20><>.* to root@localhost;
|
||||
select hex(Db) from mysql.db where Db='<27><>';
|
||||
show grants for root@localhost;
|
||||
flush privileges;
|
||||
show grants for root@localhost;
|
||||
drop database <20><>;
|
||||
revoke all privileges on <20><>.* from root@localhost;
|
||||
show grants for root@localhost;
|
||||
set names latin1;
|
||||
|
||||
#
|
||||
# Bug #15598 Server crashes in specific case during setting new password
|
||||
# - Caused by a user with host ''
|
||||
#
|
||||
insert into mysql.user (host, user) values ('', 'mysqltest_7');
|
||||
flush privileges;
|
||||
set password for mysqltest_7@ = password('systpass');
|
||||
show grants for mysqltest_7@;
|
||||
drop user mysqltest_7@;
|
||||
--error 1141
|
||||
show grants for mysqltest_7@;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -206,4 +206,37 @@ drop user 'mysqltest_1'@'localhost';
|
||||
disconnect con2root;
|
||||
disconnect con3root;
|
||||
|
||||
#
|
||||
# Bug #15775: "drop user" command does not refresh acl_check_hosts
|
||||
#
|
||||
|
||||
# Create some test users
|
||||
insert into mysql.user (user, host) values
|
||||
('mysqltest_1', 'host1'),
|
||||
('mysqltest_2', 'host2'),
|
||||
('mysqltest_3', 'host3'),
|
||||
('mysqltest_4', 'host4'),
|
||||
('mysqltest_5', 'host5'),
|
||||
('mysqltest_6', 'host6'),
|
||||
('mysqltest_7', 'host7');
|
||||
flush privileges;
|
||||
|
||||
# Drop one user
|
||||
drop user mysqltest_3@host3;
|
||||
|
||||
# This connect failed before fix since the acl_check_hosts list was corrupted by the "drop user"
|
||||
connect (con8,127.0.0.1,root,,test,$MASTER_MYPORT,);
|
||||
disconnect con8;
|
||||
connection default;
|
||||
|
||||
# Clean up - Drop all of the remaining users at once
|
||||
drop user mysqltest_1@host1, mysqltest_2@host2, mysqltest_4@host4,
|
||||
mysqltest_5@host5, mysqltest_6@host6, mysqltest_7@host7;
|
||||
|
||||
# Check that it's still possible to connect
|
||||
connect (con9,127.0.0.1,root,,test,$MASTER_MYPORT,);
|
||||
disconnect con9;
|
||||
connection default;
|
||||
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -347,4 +347,32 @@ drop table t3;
|
||||
drop table t4;
|
||||
drop table t5;
|
||||
|
||||
#
|
||||
# Bug#14397 - OPTIMIZE TABLE with an open HANDLER causes a crash
|
||||
#
|
||||
create table t1 (c1 int);
|
||||
insert into t1 values (1);
|
||||
# client 1
|
||||
handler t1 open;
|
||||
handler t1 read first;
|
||||
# client 2
|
||||
connect (con2,localhost,root,,);
|
||||
connection con2;
|
||||
--exec echo send the below to another connection, do not wait for the result
|
||||
send optimize table t1;
|
||||
--sleep 1
|
||||
# client 1
|
||||
--exec echo proceed with the normal connection
|
||||
connection default;
|
||||
handler t1 read next;
|
||||
handler t1 close;
|
||||
# client 2
|
||||
--exec echo read the result from the other connection
|
||||
connection con2;
|
||||
reap;
|
||||
# client 1
|
||||
--exec echo proceed with the normal connection
|
||||
connection default;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -123,4 +123,16 @@ group by a.id, a.description
|
||||
having (a.description is not null) and (c=0);
|
||||
drop table t1,t2,t3;
|
||||
|
||||
#
|
||||
# Bug #14274: HAVING clause containing only set function
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a int);
|
||||
INSERT INTO t1 VALUES (3), (4), (1), (3), (1);
|
||||
|
||||
SELECT SUM(a) FROM t1 GROUP BY a HAVING SUM(a)>0;
|
||||
SELECT SUM(a) FROM t1 GROUP BY a HAVING SUM(a);
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -1280,4 +1280,89 @@ connection a;
|
||||
checksum table test_checksum;
|
||||
drop table test_checksum;
|
||||
|
||||
# tests for bugs #9802 and #13778
|
||||
|
||||
# test that FKs between invalid types are not accepted
|
||||
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a int primary key, b int, foreign key (b) references t1(a)) engine = innodb;
|
||||
-- error 1005
|
||||
create table t1(a char(10) primary key, b varchar(20)) engine = innodb;
|
||||
set foreign_key_checks=1;
|
||||
drop table t2;
|
||||
|
||||
# test that FKs between different charsets are not accepted in CREATE even
|
||||
# when f_k_c is 0
|
||||
|
||||
set foreign_key_checks=0;
|
||||
create table t1(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=latin1;
|
||||
-- error 1005
|
||||
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=utf8;
|
||||
set foreign_key_checks=1;
|
||||
drop table t1;
|
||||
|
||||
# test that invalid datatype conversions with ALTER are not allowed
|
||||
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb;
|
||||
create table t1(a varchar(10) primary key) engine = innodb;
|
||||
-- error 1025,1025
|
||||
alter table t1 modify column a int;
|
||||
set foreign_key_checks=1;
|
||||
drop table t2,t1;
|
||||
|
||||
# test that charset conversions with ALTER are allowed when f_k_c is 0
|
||||
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=latin1;
|
||||
create table t1(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=latin1;
|
||||
alter table t1 convert to character set utf8;
|
||||
set foreign_key_checks=1;
|
||||
drop table t2,t1;
|
||||
|
||||
# test that RENAME does not allow invalid charsets when f_k_c is 0
|
||||
|
||||
set foreign_key_checks=0;
|
||||
create table t2 (a varchar(10), foreign key (a) references t1(a)) engine = innodb DEFAULT CHARSET=latin1;
|
||||
create table t3(a varchar(10) primary key) engine = innodb DEFAULT CHARSET=utf8;
|
||||
-- error 1025
|
||||
rename table t3 to t1;
|
||||
set foreign_key_checks=1;
|
||||
drop table t2,t3;
|
||||
|
||||
# tests for bug #14056 Column prefix index on UTF-8 primary key column causes 'Can't find record..'
|
||||
|
||||
create table t2 (
|
||||
a int, b char(10), filler char(10), primary key(a, b(2))
|
||||
) character set utf8 engine = innodb;
|
||||
|
||||
insert into t2 values (1,'abcdefg','one');
|
||||
insert into t2 values (2,'ijkilmn','two');
|
||||
insert into t2 values (3, 'qrstuvw','three');
|
||||
update t2 set a=5, filler='booo' where a=1;
|
||||
drop table t2;
|
||||
create table t2 (
|
||||
a int, b char(10), filler char(10), primary key(a, b(2))
|
||||
) character set ucs2 engine = innodb;
|
||||
|
||||
insert into t2 values (1,'abcdefg','one');
|
||||
insert into t2 values (2,'ijkilmn','two');
|
||||
insert into t2 values (3, 'qrstuvw','three');
|
||||
update t2 set a=5, filler='booo' where a=1;
|
||||
drop table t2;
|
||||
|
||||
create table t1(a int not null, b char(110),primary key(a,b(100))) engine=innodb default charset=utf8;
|
||||
insert into t1 values(1,'abcdefg'),(2,'defghijk');
|
||||
insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
|
||||
insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
|
||||
select a,hex(b) from t1 order by b;
|
||||
update t1 set b = 'three' where a = 6;
|
||||
drop table t1;
|
||||
create table t1(a int not null, b text(110),primary key(a,b(100))) engine=innodb default charset=utf8;
|
||||
insert into t1 values(1,'abcdefg'),(2,'defghijk');
|
||||
insert into t1 values(6,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1);
|
||||
insert into t1 values(7,_utf8 0xD0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B1D0B2);
|
||||
select a,hex(b) from t1 order by b;
|
||||
update t1 set b = 'three' where a = 6;
|
||||
drop table t1;
|
||||
# End of 4.1 tests
|
||||
|
@@ -214,4 +214,16 @@ insert into t1(f1) select if(max(f1) is null, '2000',max(f1)+1) from t1;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #13392 values() fails with 'ambiguous' or returns NULL
|
||||
# with ON DUPLICATE and SELECT
|
||||
create table t1(x int, y int);
|
||||
create table t2(x int, z int);
|
||||
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(x);
|
||||
--error 1054
|
||||
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(z);
|
||||
--error 1109
|
||||
insert into t1(x,y) select x,z from t2 on duplicate key update x=values(t2.x);
|
||||
drop table t1,t2;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -31,7 +31,6 @@ load data infile '../../std_data/loaddata4.dat' into table t1 fields terminated
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
#
|
||||
# Bug #12053 LOAD DATA INFILE ignores NO_AUTO_VALUE_ON_ZERO setting
|
||||
#
|
||||
@@ -57,5 +56,15 @@ enable_query_log;
|
||||
select * from t1;
|
||||
--exec rm $MYSQL_TEST_DIR/var/tmp/t1
|
||||
SET @@SQL_MODE=@OLD_SQL_MODE;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #11203: LOAD DATA does not accept same characters for ESCAPED and
|
||||
# ENCLOSED
|
||||
#
|
||||
create table t1 (a varchar(20), b varchar(20));
|
||||
load data infile '../../std_data/loaddata5.dat' into table t1 fields terminated by ',' enclosed by '"' escaped by '"' (a,b);
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -350,4 +350,30 @@ INSERT INTO t2 (b) VALUES (1) ON DUPLICATE KEY UPDATE b=3;
|
||||
SELECT b FROM t2;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
|
||||
#
|
||||
# BUG#5390 - problems with merge tables
|
||||
# Problem #1: INSERT...SELECT
|
||||
#
|
||||
#drop table if exists t1, t2, t3;
|
||||
create table t1(a int);
|
||||
create table t2(a int);
|
||||
insert into t1 values (1);
|
||||
insert into t2 values (2);
|
||||
create table t3 (a int) engine=merge union=(t1, t2) insert_method=first;
|
||||
select * from t3;
|
||||
#
|
||||
insert t2 select * from t2;
|
||||
select * from t2;
|
||||
#
|
||||
insert t3 select * from t1;
|
||||
select * from t3;
|
||||
#
|
||||
insert t1 select * from t3;
|
||||
select * from t1;
|
||||
select * from t2;
|
||||
select * from t3;
|
||||
check table t1, t2;
|
||||
drop table t1, t2, t3;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -206,7 +206,35 @@ select (@after:=unix_timestamp())*0; # always give repeatable output
|
||||
# the bug, the reap would return immediately after the insert into t2.
|
||||
select (@after-@before) >= 2;
|
||||
|
||||
# cleanup
|
||||
drop table t1,t2;
|
||||
commit;
|
||||
|
||||
# test for BUG#7947 - DO RELEASE_LOCK() not written to binlog on rollback in the middle
|
||||
# of a transaction
|
||||
|
||||
connection con2;
|
||||
begin;
|
||||
create temporary table ti (a int) engine=innodb;
|
||||
rollback;
|
||||
insert into ti values(1);
|
||||
set autocommit=0;
|
||||
create temporary table t1 (a int) engine=myisam;
|
||||
commit;
|
||||
insert t1 values (1);
|
||||
rollback;
|
||||
create table t0 (n int);
|
||||
insert t0 select * from t1;
|
||||
set autocommit=1;
|
||||
insert into t0 select GET_LOCK("lock1",null);
|
||||
set autocommit=0;
|
||||
create table t2 (n int) engine=innodb;
|
||||
insert into t2 values (3);
|
||||
disconnect con2;
|
||||
connection con3;
|
||||
select get_lock("lock1",60);
|
||||
show binlog events from 79;
|
||||
do release_lock("lock1");
|
||||
drop table t0,t2;
|
||||
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -473,6 +473,18 @@ explain select sql_big_result distinct t1.a from t1,t2 order by t2.a;
|
||||
explain select distinct t1.a from t1,t2 order by t2.a;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# Bug#14616 - Freshly imported table returns error 124 when using LIMIT
|
||||
#
|
||||
create table t1 (
|
||||
c1 varchar(32),
|
||||
key (c1)
|
||||
) engine=myisam;
|
||||
alter table t1 disable keys;
|
||||
insert into t1 values ('a'), ('b');
|
||||
select c1 from t1 order by c1 limit 1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Test RTREE index
|
||||
#
|
||||
@@ -637,4 +649,41 @@ show index from t1;
|
||||
|
||||
drop table t1;
|
||||
|
||||
# WL#2609, CSC#XXXX: MyISAM
|
||||
set myisam_stats_method=nulls_ignored;
|
||||
show variables like 'myisam_stats_method';
|
||||
|
||||
create table t1 (
|
||||
a char(3), b char(4), c char(5), d char(6),
|
||||
key(a,b,c,d)
|
||||
);
|
||||
insert into t1 values ('bcd','def1', NULL, 'zz');
|
||||
insert into t1 values ('bcd','def2', NULL, 'zz');
|
||||
insert into t1 values ('bce','def1', 'yuu', NULL);
|
||||
insert into t1 values ('bce','def2', NULL, 'quux');
|
||||
analyze table t1;
|
||||
show index from t1;
|
||||
delete from t1;
|
||||
analyze table t1;
|
||||
show index from t1;
|
||||
|
||||
set myisam_stats_method=DEFAULT;
|
||||
drop table t1;
|
||||
|
||||
# BUG#13814 - key value packed incorrectly for TINYBLOBs
|
||||
|
||||
create table t1(
|
||||
cip INT NOT NULL,
|
||||
time TIME NOT NULL,
|
||||
score INT NOT NULL DEFAULT 0,
|
||||
bob TINYBLOB
|
||||
);
|
||||
|
||||
insert into t1 (cip, time) VALUES (1, '00:01'), (2, '00:02'), (3,'00:03');
|
||||
insert into t1 (cip, bob, time) VALUES (4, 'a', '00:04'), (5, 'b', '00:05'),
|
||||
(6, 'c', '00:06');
|
||||
select * from t1 where bob is null and cip=1;
|
||||
create index bug on t1 (bob(22), cip, time);
|
||||
select * from t1 where bob is null and cip=1;
|
||||
drop table t1;
|
||||
# End of 4.1 tests
|
||||
|
@@ -6,7 +6,7 @@
|
||||
# var/log/mysql_client_test.trace
|
||||
|
||||
--disable_result_log
|
||||
--exec echo $MYSQL_CLIENT_TEST
|
||||
--exec $MYSQL_CLIENT_TEST
|
||||
--exec echo $MYSQL_CLIENT_TEST --getopt-ll-test=25600M
|
||||
--exec $MYSQL_CLIENT_TEST --getopt-ll-test=25600M
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -635,4 +635,16 @@ insert into t2 (a, b) values (NULL, NULL),(10, NULL),(NULL, "twenty"),(30, "thir
|
||||
--exec $MYSQL_DUMP --skip-comments --xml --no-create-info test
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# BUG #12123
|
||||
#
|
||||
create table t1 (a text character set utf8, b text character set latin1);
|
||||
insert t1 values (0x4F736E616272C3BC636B, 0x4BF66C6E);
|
||||
select * from t1;
|
||||
--exec $MYSQL_DUMP --tab=$MYSQL_TEST_DIR/var/tmp/ test
|
||||
--exec $MYSQL test < $MYSQL_TEST_DIR/var/tmp/t1.sql
|
||||
--exec $MYSQL_IMPORT test $MYSQL_TEST_DIR/var/tmp/t1.txt
|
||||
select * from t1;
|
||||
|
||||
drop table t1;
|
||||
# End of 4.1 tests
|
||||
|
@@ -138,6 +138,7 @@ INSERT INTO t1 VALUES (1,2,0),(18,19,4),(20,21,0);
|
||||
select c from t1 order by c;
|
||||
drop table t1;
|
||||
|
||||
--disable_ps_protocol
|
||||
create table t1 ( a int primary key, b varchar(10), c varchar(10), index (b) )
|
||||
engine=ndb;
|
||||
insert into t1 values (1,'one','one'), (2,'two','two'), (3,'three','three');
|
||||
@@ -147,10 +148,13 @@ select * from t1 where b = 'two';
|
||||
connection server1;
|
||||
alter table t1 drop index c;
|
||||
connection server2;
|
||||
# This should fail since index information is not automatically refreshed
|
||||
--error 1015
|
||||
select * from t1 where b = 'two';
|
||||
select * from t1 where b = 'two';
|
||||
connection server1;
|
||||
drop table t1;
|
||||
--enable_ps_protocol
|
||||
|
||||
#--disable_warnings
|
||||
#DROP TABLE IF EXISTS t2;
|
||||
|
@@ -606,4 +606,12 @@ select * from t1 order by counter;
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#14514 Creating table with packed key fails silently
|
||||
#
|
||||
|
||||
CREATE TABLE t1 ( b INT ) PACK_KEYS = 0 ENGINE = ndb;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -159,14 +159,17 @@ select * from t1 where a = 'AaA' order by p;
|
||||
select * from t1 where a = 'AAA' order by p;
|
||||
drop table t1;
|
||||
|
||||
# bug
|
||||
# bug#14007
|
||||
create table t1 (
|
||||
a varchar(10) primary key
|
||||
) engine=ndb;
|
||||
insert into t1 values ('jonas % ');
|
||||
replace into t1 values ('jonas % ');
|
||||
replace into t1 values ('jonas % ');
|
||||
a char(10) primary key
|
||||
) engine=ndbcluster default charset=latin1;
|
||||
|
||||
insert into t1 values ('aaabb');
|
||||
select * from t1;
|
||||
replace into t1 set a = 'AAABB';
|
||||
select * from t1;
|
||||
replace into t1 set a = 'aAaBb';
|
||||
select * from t1;
|
||||
replace into t1 set a = 'aaabb';
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -40,6 +40,7 @@ connection server1;
|
||||
# Currently a retry is required remotely
|
||||
--error 1296
|
||||
select * from t1;
|
||||
flush table t1;
|
||||
select * from t1;
|
||||
|
||||
# Connect to server2 and use the tables from there
|
||||
|
1
mysql-test/t/not_embedded_server-master.opt
Normal file
1
mysql-test/t/not_embedded_server-master.opt
Normal file
@@ -0,0 +1 @@
|
||||
--loose-to-force-a-restart
|
@@ -665,19 +665,6 @@ set @b='CHRISTINE';
|
||||
execute stmt using @a, @b;
|
||||
deallocate prepare stmt;
|
||||
#
|
||||
# Bug#9442 Set parameter make query fail if column character set is UCS2
|
||||
#
|
||||
create table t1 (utext varchar(20) character set ucs2);
|
||||
insert into t1 values ("lily");
|
||||
insert into t1 values ("river");
|
||||
prepare stmt from 'select utext from t1 where utext like ?';
|
||||
set @param1='%%';
|
||||
execute stmt using @param1;
|
||||
execute stmt using @param1;
|
||||
select utext from t1 where utext like '%%';
|
||||
drop table t1;
|
||||
deallocate prepare stmt;
|
||||
#
|
||||
# Bug#11299 "prepared statement makes wrong SQL syntax in binlog which stops
|
||||
# replication": check that errouneous queries with placeholders are not
|
||||
# allowed
|
||||
@@ -718,4 +705,63 @@ set @@tx_isolation=default;
|
||||
execute stmt;
|
||||
deallocate prepare stmt;
|
||||
|
||||
#
|
||||
# Bug#14410 "Crash in Enum or Set type in CREATE TABLE and PS/SP"
|
||||
#
|
||||
# Part I. Make sure the typelib for ENUM is created in the statement memory
|
||||
# root.
|
||||
prepare stmt from "create temporary table t1 (letter enum('','a','b','c')
|
||||
not null)";
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
# Part II. Make sure that when the default value is converted to UTF-8,
|
||||
# the new item is # created in the statement memory root.
|
||||
set names latin1;
|
||||
prepare stmt from "create table t1 (a enum('test') default 'test')
|
||||
character set utf8";
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
execute stmt;
|
||||
drop table t1;
|
||||
# Cleanup
|
||||
set names default;
|
||||
deallocate prepare stmt;
|
||||
|
||||
#
|
||||
# A test case for Bug#12734 "prepared statement may return incorrect result
|
||||
# set for a select SQL request": test that canDoTurboBM is reset for each
|
||||
# execute of a prepared statement.
|
||||
#
|
||||
create table t1 (
|
||||
word_id mediumint(8) unsigned not null default '0',
|
||||
formatted varchar(20) not null default ''
|
||||
);
|
||||
|
||||
insert into t1 values
|
||||
(80,'pendant'), (475,'pretendants'), (989,'tendances'),
|
||||
(1019,'cependant'),(1022,'abondance'),(1205,'independants'),
|
||||
(13,'lessiver'),(25,'lambiner'),(46,'situer'),(71,'terminer'),
|
||||
(82,'decrocher');
|
||||
|
||||
select count(*) from t1 where formatted like '%NDAN%';
|
||||
select count(*) from t1 where formatted like '%ER';
|
||||
prepare stmt from "select count(*) from t1 where formatted like ?";
|
||||
set @like="%NDAN%";
|
||||
execute stmt using @like;
|
||||
set @like="%ER";
|
||||
execute stmt using @like;
|
||||
set @like="%NDAN%";
|
||||
execute stmt using @like;
|
||||
set @like="%ER";
|
||||
execute stmt using @like;
|
||||
deallocate prepare stmt;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
|
@@ -712,6 +712,21 @@ show status like "Qcache_inserts";
|
||||
show status like "Qcache_hits";
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#14652: Queries with leading '(' characters.
|
||||
#
|
||||
create table t1 (a int);
|
||||
flush status;
|
||||
(select a from t1) union (select a from t1);
|
||||
show status like "Qcache_queries_in_cache";
|
||||
show status like "Qcache_inserts";
|
||||
show status like "Qcache_hits";
|
||||
(select a from t1) union (select a from t1);
|
||||
show status like "Qcache_queries_in_cache";
|
||||
show status like "Qcache_inserts";
|
||||
show status like "Qcache_hits";
|
||||
drop table t1;
|
||||
|
||||
set GLOBAL query_cache_size=0;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -29,7 +29,7 @@ sleep 2;
|
||||
# here table should be still not deleted
|
||||
select * from t1;
|
||||
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||
--replace_column 1 # 9 # 23 # 33 #
|
||||
--replace_column 1 # 9 # 11 # 23 # 33 #
|
||||
show slave status;
|
||||
|
||||
# this should fail right after start
|
||||
@@ -38,7 +38,7 @@ start slave until master_log_file='master-no-such-bin.000001', master_log_pos=29
|
||||
select * from t1;
|
||||
sleep 2;
|
||||
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||
--replace_column 1 # 9 # 23 # 33 #
|
||||
--replace_column 1 # 9 # 11 # 23 # 33 #
|
||||
show slave status;
|
||||
|
||||
# try replicate all until second insert to t2;
|
||||
@@ -46,7 +46,7 @@ start slave until relay_log_file='slave-relay-bin.000002', relay_log_pos=537;
|
||||
sleep 4;
|
||||
select * from t2;
|
||||
--replace_result $MASTER_MYPORT MASTER_MYPORT
|
||||
--replace_column 1 # 9 # 23 # 33 #
|
||||
--replace_column 1 # 9 # 11 # 23 # 33 #
|
||||
show slave status;
|
||||
|
||||
# clean up
|
||||
|
@@ -2228,4 +2228,24 @@ SELECT t2.a, t2.b, IF(t1.b IS NULL,'',c) AS c, COUNT(*) AS d FROM t2,t1
|
||||
WHERE t2.a = t1.a AND t2.b = t1.b GROUP BY a, b, c;
|
||||
DROP TABLE IF EXISTS t1, t2;
|
||||
|
||||
#
|
||||
# Bug #13855 select distinct with group by caused server crash
|
||||
#
|
||||
create table t1 (f1 int primary key, f2 int);
|
||||
create table t2 (f3 int, f4 int, primary key(f3,f4));
|
||||
insert into t1 values (1,1);
|
||||
insert into t2 values (1,1),(1,2);
|
||||
select distinct count(f2) >0 from t1 left join t2 on f1=f3 group by f1;
|
||||
drop table t1,t2;
|
||||
|
||||
#
|
||||
# Bug #14482 Server crash when subselecting from the same table
|
||||
#
|
||||
create table t1 (f1 int,f2 int);
|
||||
insert into t1 values(1,1);
|
||||
create table t2 (f3 int, f4 int, primary key(f3,f4));
|
||||
insert into t2 values(1,1);
|
||||
select * from t1 where f1 in (select f3 from t2 where (f3,f4)= (select f3,f4 from t2));
|
||||
drop table t1,t2;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -378,4 +378,17 @@ create table t1 (
|
||||
SHOW CREATE TABLE t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
# Test for BUG#93: 4.1 protocl crash on corupted frm and SHOW TABLE STATUS
|
||||
|
||||
flush tables;
|
||||
|
||||
# Create a junk frm file on disk
|
||||
system echo "this is a junk file for test" >> var/master-data/test/t1.frm ;
|
||||
--replace_column 6 # 7 # 8 # 9 #
|
||||
SHOW TABLE STATUS like 't1';
|
||||
--error 1033
|
||||
show create table t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -3,6 +3,8 @@ disable_query_log;
|
||||
show variables like "have_symlink";
|
||||
enable_query_log;
|
||||
|
||||
--source include/not_windows.inc
|
||||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t7,t8,t9;
|
||||
drop database if exists mysqltest;
|
||||
|
@@ -21,4 +21,22 @@ select t, time_to_sec(t),sec_to_time(time_to_sec(t)) from t1;
|
||||
select sec_to_time(time_to_sec(t)) from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG #12440: Incorrect processing of time values containing
|
||||
# long fraction part and/or large exponent part.
|
||||
#
|
||||
# These must return normal result:
|
||||
# ##########################################################
|
||||
# To be uncommented after fix BUG #15805
|
||||
# ##########################################################
|
||||
# SELECT CAST(235959.123456 AS TIME);
|
||||
# SELECT CAST(0.235959123456e+6 AS TIME);
|
||||
# SELECT CAST(235959123456e-6 AS TIME);
|
||||
# These must cut fraction part and produce warning:
|
||||
# SELECT CAST(235959.1234567 AS TIME);
|
||||
# SELECT CAST(0.2359591234567e6 AS TIME);
|
||||
# This must return NULL and produce warning:
|
||||
# SELECT CAST(0.2359591234567e+30 AS TIME);
|
||||
# ##########################################################
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -756,4 +756,22 @@ select 99 union all select id from t1 order by 1;
|
||||
select id from t1 union all select 99 order by 1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #14216: UNION + DECIMAL wrong values in result
|
||||
#
|
||||
create table t1 (f1 decimal(60,25), f2 decimal(60,25));
|
||||
insert into t1 values (0.0,0.0);
|
||||
select f1 from t1 union all select f2 from t1;
|
||||
select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
|
||||
union all
|
||||
select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
|
||||
drop table t1;
|
||||
create table t1 (f1 decimal(60,24), f2 decimal(60,24));
|
||||
insert into t1 values (0.0,0.0);
|
||||
select f1 from t1 union all select f2 from t1;
|
||||
select 'XXXXXXXXXXXXXXXXXXXX' as description, f1 from t1
|
||||
union all
|
||||
select 'YYYYYYYYYYYYYYYYYYYY' as description, f2 from t1;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
@@ -227,4 +227,64 @@ select DATABASE();
|
||||
delete from t1 where count(*)=1;
|
||||
drop table t1;
|
||||
|
||||
# BUG#12915: Optimize "DELETE|UPDATE ... ORDER BY ... LIMIT n" to use an index
|
||||
create table t1 ( a int, b int default 0, index (a) );
|
||||
insert into t1 (a) values (0),(0),(0),(0),(0),(0),(0),(0);
|
||||
|
||||
flush status;
|
||||
select a from t1 order by a limit 1;
|
||||
show status like 'handler_read%';
|
||||
|
||||
flush status;
|
||||
update t1 set a=9999 order by a limit 1;
|
||||
update t1 set b=9999 order by a limit 1;
|
||||
show status like 'handler_read%';
|
||||
|
||||
flush status;
|
||||
delete from t1 order by a limit 1;
|
||||
show status like 'handler_read%';
|
||||
|
||||
flush status;
|
||||
delete from t1 order by a desc limit 1;
|
||||
show status like 'handler_read%';
|
||||
|
||||
alter table t1 disable keys;
|
||||
|
||||
flush status;
|
||||
delete from t1 order by a limit 1;
|
||||
show status like 'handler_read%';
|
||||
|
||||
select * from t1;
|
||||
update t1 set a=a+10,b=1 order by a limit 3;
|
||||
update t1 set a=a+11,b=2 order by a limit 3;
|
||||
update t1 set a=a+12,b=3 order by a limit 3;
|
||||
select * from t1 order by a;
|
||||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#14186 select datefield is null not updated
|
||||
#
|
||||
create table t1 (f1 date not null);
|
||||
insert into t1 values('2000-01-01'),('0000-00-00');
|
||||
update t1 set f1='2002-02-02' where f1 is null;
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#15028 Multitable update returns different numbers of matched rows
|
||||
# depending on table order
|
||||
create table t1 (f1 int);
|
||||
create table t2 (f2 int);
|
||||
insert into t1 values(1),(2);
|
||||
insert into t2 values(1),(1);
|
||||
--enable_info
|
||||
update t1,t2 set f1=3,f2=3 where f1=f2 and f1=1;
|
||||
--disable_info
|
||||
update t2 set f2=1;
|
||||
update t1 set f1=1 where f1=3;
|
||||
--enable_info
|
||||
update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1;
|
||||
--disable_info
|
||||
drop table t1,t2;
|
||||
# End of 4.1 tests
|
||||
|
@@ -388,7 +388,6 @@ set character_set_results=NULL;
|
||||
select ifnull(@@character_set_results,"really null");
|
||||
set names latin1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
# Bug #9613: @@have_innodb
|
||||
@@ -396,3 +395,12 @@ set names latin1;
|
||||
|
||||
--replace_column 1 #
|
||||
select @@have_innodb;
|
||||
|
||||
#
|
||||
# Bug #13334: query_prealloc_size default less than minimum
|
||||
#
|
||||
set @test = @@query_prealloc_size;
|
||||
set @@query_prealloc_size = @test;
|
||||
select @@query_prealloc_size = @test;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
Reference in New Issue
Block a user