1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-29 05:21:33 +03:00

Merge mskold@bk-internal.mysql.com:/home/bk/mysql-5.0

into mysql.com:/usr/local/home/marty/MySQL/test/mysql-5.0-ndb


sql/log.cc:
  Auto merged
sql/sql_class.h:
  Auto merged
sql/sql_select.cc:
  Auto merged
This commit is contained in:
unknown
2005-02-23 20:08:21 +01:00
29 changed files with 360 additions and 41 deletions

View File

@ -1249,6 +1249,14 @@ int main(int argc, char** argv)
fprintf(result_file, fprintf(result_file,
"/*!32316 SET @OLD_SQL_LOG_BIN=@@SQL_LOG_BIN, SQL_LOG_BIN=0*/;\n"); "/*!32316 SET @OLD_SQL_LOG_BIN=@@SQL_LOG_BIN, SQL_LOG_BIN=0*/;\n");
/*
In mysqlbinlog|mysql, don't want mysql to be disconnected after each
transaction (which would be the case with GLOBAL.COMPLETION_TYPE==2).
*/
fprintf(result_file,
"/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,"
"COMPLETION_TYPE=0*/;\n");
for (save_stop_position= stop_position, stop_position= ~(my_off_t)0 ; for (save_stop_position= stop_position, stop_position= ~(my_off_t)0 ;
(--argc >= 0) && !stop_passed ; ) (--argc >= 0) && !stop_passed ; )
{ {
@ -1263,6 +1271,13 @@ int main(int argc, char** argv)
start_position= BIN_LOG_HEADER_SIZE; start_position= BIN_LOG_HEADER_SIZE;
} }
/*
Issue a ROLLBACK in case the last printed binlog was crashed and had half
of transaction.
*/
fprintf(result_file,
"ROLLBACK;\n"
"/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;\n");
if (disable_log_bin) if (disable_log_bin)
fprintf(result_file, "/*!32316 SET SQL_LOG_BIN=@OLD_SQL_LOG_BIN*/;\n"); fprintf(result_file, "/*!32316 SET SQL_LOG_BIN=@OLD_SQL_LOG_BIN*/;\n");

View File

@ -408,4 +408,5 @@ inline double ulonglong2double(ulonglong value)
#define HAVE_CHARSET_ucs2 1 #define HAVE_CHARSET_ucs2 1
#define HAVE_CHARSET_ujis 1 #define HAVE_CHARSET_ujis 1
#define HAVE_CHARSET_utf8 1 #define HAVE_CHARSET_utf8 1
#define HAVE_UCA_COLLATIONS 1

View File

@ -56,7 +56,8 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
#define EE_CANT_SYMLINK 25 #define EE_CANT_SYMLINK 25
#define EE_REALPATH 26 #define EE_REALPATH 26
#define EE_SYNC 27 #define EE_SYNC 27
#define EE_ERROR_LAST 27 /*Copy last error nr.*/ #define EE_UNKNOWN_COLLATION 28
#define EE_ERROR_LAST 28 /*Copy last error nr.*/
/* Add error numbers before EE_ERROR_LAST and change it accordingly. */ /* Add error numbers before EE_ERROR_LAST and change it accordingly. */
/* exit codes for all MySQL programs */ /* exit codes for all MySQL programs */

View File

@ -41,8 +41,8 @@ SET_STACK_SIZE(9000) /* Minimum stack size for program */
static uint decode_bits; static uint decode_bits;
static char **default_argv; static char **default_argv;
static const char *load_default_groups[]= { "myisamchk", 0 }; static const char *load_default_groups[]= { "myisamchk", 0 };
static const char *set_charset_name, *opt_tmpdir; static const char *set_collation_name, *opt_tmpdir;
static CHARSET_INFO *set_charset; static CHARSET_INFO *set_collation;
static long opt_myisam_block_size; static long opt_myisam_block_size;
static long opt_key_cache_block_size; static long opt_key_cache_block_size;
static const char *my_progname_short; static const char *my_progname_short;
@ -149,7 +149,7 @@ int main(int argc, char **argv)
} /* main */ } /* main */
enum options_mc { enum options_mc {
OPT_CHARSETS_DIR=256, OPT_SET_CHARSET,OPT_START_CHECK_POS, OPT_CHARSETS_DIR=256, OPT_SET_COLLATION,OPT_START_CHECK_POS,
OPT_CORRECT_CHECKSUM, OPT_KEY_BUFFER_SIZE, OPT_CORRECT_CHECKSUM, OPT_KEY_BUFFER_SIZE,
OPT_KEY_CACHE_BLOCK_SIZE, OPT_MYISAM_BLOCK_SIZE, OPT_KEY_CACHE_BLOCK_SIZE, OPT_MYISAM_BLOCK_SIZE,
OPT_READ_BUFFER_SIZE, OPT_WRITE_BUFFER_SIZE, OPT_SORT_BUFFER_SIZE, OPT_READ_BUFFER_SIZE, OPT_WRITE_BUFFER_SIZE, OPT_SORT_BUFFER_SIZE,
@ -252,9 +252,9 @@ static struct my_option my_long_options[] =
(gptr*) &check_param.auto_increment_value, (gptr*) &check_param.auto_increment_value,
(gptr*) &check_param.auto_increment_value, (gptr*) &check_param.auto_increment_value,
0, GET_ULL, OPT_ARG, 0, 0, 0, 0, 0, 0}, 0, GET_ULL, OPT_ARG, 0, 0, 0, 0, 0, 0},
{"set-character-set", OPT_SET_CHARSET, {"set-collation", OPT_SET_COLLATION,
"Change the character set used by the index", "Change the collation used by the index",
(gptr*) &set_charset_name, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, (gptr*) &set_collation_name, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
{"set-variable", 'O', {"set-variable", 'O',
"Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.", "Change the value of a variable. Please note that this option is deprecated; you can set variables directly with --variable-name=value.",
0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, 0, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
@ -739,8 +739,9 @@ static void get_options(register int *argc,register char ***argv)
check_param.tmpdir=&myisamchk_tmpdir; check_param.tmpdir=&myisamchk_tmpdir;
check_param.key_cache_block_size= opt_key_cache_block_size; check_param.key_cache_block_size= opt_key_cache_block_size;
if (set_charset_name) if (set_collation_name)
if (!(set_charset=get_charset_by_name(set_charset_name, MYF(MY_WME)))) if (!(set_collation= get_charset_by_name(set_collation_name,
MYF(MY_WME))))
exit(1); exit(1);
myisam_block_size=(uint) 1 << my_bit_log2(opt_myisam_block_size); myisam_block_size=(uint) 1 << my_bit_log2(opt_myisam_block_size);
@ -874,11 +875,12 @@ static int myisamchk(MI_CHECK *param, my_string filename)
(((ulonglong) 1L << share->base.keys)-1)) || (((ulonglong) 1L << share->base.keys)-1)) ||
test_if_almost_full(info) || test_if_almost_full(info) ||
info->s->state.header.file_version[3] != myisam_file_magic[3] || info->s->state.header.file_version[3] != myisam_file_magic[3] ||
(set_charset && set_charset->number != share->state.header.language) || (set_collation &&
set_collation->number != share->state.header.language) ||
myisam_block_size != MI_KEY_BLOCK_LENGTH)) myisam_block_size != MI_KEY_BLOCK_LENGTH))
{ {
if (set_charset) if (set_collation)
param->language=set_charset->number; param->language= set_collation->number;
if (recreate_table(param, &info,filename)) if (recreate_table(param, &info,filename))
{ {
VOID(fprintf(stderr, VOID(fprintf(stderr,

View File

@ -116,7 +116,7 @@ count(distinct n)
5000 5000
show status like 'Created_tmp_disk_tables'; show status like 'Created_tmp_disk_tables';
Variable_name Value Variable_name Value
Created_tmp_disk_tables 2 Created_tmp_disk_tables 1
drop table t1; drop table t1;
create table t1 (s text); create table t1 (s text);
flush status; flush status;
@ -125,5 +125,5 @@ count(distinct s)
5000 5000
show status like 'Created_tmp_disk_tables'; show status like 'Created_tmp_disk_tables';
Variable_name Value Variable_name Value
Created_tmp_disk_tables 2 Created_tmp_disk_tables 1
drop table t1; drop table t1;

View File

@ -528,6 +528,7 @@ Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 96 User var 1 136 @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_ci master-bin.000001 96 User var 1 136 @`v`=_ucs2 0x006100620063 COLLATE ucs2_general_ci
master-bin.000001 136 Query 1 226 use `test`; insert into t2 values (@v) master-bin.000001 136 Query 1 226 use `test`; insert into t2 values (@v)
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`; SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`;
use test; use test;
@ -536,6 +537,8 @@ SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.uniq
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t2 values (@v); insert into t2 values (@v);
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
drop table t2; drop table t2;
set names latin1; set names latin1;
create table t1 (a enum('x','y','z') character set ucs2); create table t1 (a enum('x','y','z') character set ucs2);

View File

@ -742,3 +742,9 @@ WHERE a = CONV('e251273eb74a8ee3', 16, 10);
id select_type table type possible_keys key key_len ref rows Extra id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1 system NULL NULL NULL NULL 1 1 SIMPLE t1 system NULL NULL NULL NULL 1
DROP TABLE t1; DROP TABLE t1;
SELECT CHAR(NULL,121,83,81,'76') as my_column;
my_column
ySQL
SELECT CHAR_LENGTH(CHAR(NULL,121,83,81,'76')) as my_column;
my_column
4

View File

@ -494,8 +494,8 @@ select TABLE_NAME,TABLE_TYPE,ENGINE
from information_schema.tables from information_schema.tables
where table_schema='information_schema' limit 2; where table_schema='information_schema' limit 2;
TABLE_NAME TABLE_TYPE ENGINE TABLE_NAME TABLE_TYPE ENGINE
SCHEMATA TEMPORARY MyISAM SCHEMATA TEMPORARY MEMORY
TABLES TEMPORARY MyISAM TABLES TEMPORARY MEMORY
show tables from information_schema like "T%"; show tables from information_schema like "T%";
Tables_in_information_schema (T%) Tables_in_information_schema (T%)
TABLES TABLES
@ -610,3 +610,24 @@ create view v1 as select * from t1, t2;
set @got_val= (select count(*) from information_schema.columns); set @got_val= (select count(*) from information_schema.columns);
drop view v1; drop view v1;
drop table t1, t2; drop table t1, t2;
CREATE TABLE t_crashme ( f1 BIGINT);
CREATE VIEW a1 (t_CRASHME) AS SELECT f1 FROM t_crashme GROUP BY f1;
CREATE VIEW a2 AS SELECT t_CRASHME FROM a1;
drop view a2, a1;
drop table t_crashme;
select table_schema,table_name, column_name from
information_schema.columns
where data_type = 'longtext';
table_schema table_name column_name
information_schema COLUMNS COLUMN_TYPE
information_schema ROUTINES ROUTINE_DEFINITION
information_schema ROUTINES SQL_MODE
information_schema VIEWS VIEW_DEFINITION
select table_name, column_name, data_type from information_schema.columns
where data_type = 'datetime';
table_name column_name data_type
TABLES CREATE_TIME datetime
TABLES UPDATE_TIME datetime
TABLES CHECK_TIME datetime
ROUTINES CREATED datetime
ROUTINES LAST_ALTERED datetime

View File

@ -15,6 +15,7 @@ flush logs;
--- Local -- --- Local --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1000000000; SET TIMESTAMP=1000000000;
@ -36,32 +37,44 @@ LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-2-0' INTO TABLE `t1` FI
LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-3-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word); LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-3-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-4-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word); LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-4-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-5-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word); LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-5-0' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Broken LOAD DATA -- --- Broken LOAD DATA --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
use test; use test;
SET TIMESTAMP=1000000000; SET TIMESTAMP=1000000000;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values ("Alas"); insert into t1 values ("Alas");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- --database -- --- --database --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET INSERT_ID=1; SET INSERT_ID=1;
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- --position -- --- --position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
use test; use test;
SET TIMESTAMP=1000000000; SET TIMESTAMP=1000000000;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values ("Alas"); insert into t1 values ("Alas");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Remote -- --- Remote --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1000000000; SET TIMESTAMP=1000000000;
@ -83,42 +96,59 @@ LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-2-1' INTO TABLE `t1` FI
LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-3-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word); LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-3-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-4-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word); LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-4-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-5-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word); LOAD DATA LOCAL INFILE 'MYSQL_TEST_DIR/var/tmp/words.dat-5-1' INTO TABLE `t1` FIELDS TERMINATED BY '\t' ENCLOSED BY '' ESCAPED BY '\\' LINES TERMINATED BY '\n' STARTING BY '' (word);
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Broken LOAD DATA -- --- Broken LOAD DATA --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
use test; use test;
SET TIMESTAMP=1000000000; SET TIMESTAMP=1000000000;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values ("Alas"); insert into t1 values ("Alas");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- --database -- --- --database --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET INSERT_ID=1; SET INSERT_ID=1;
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- --position -- --- --position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
use test; use test;
SET TIMESTAMP=1000000000; SET TIMESTAMP=1000000000;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values ("Alas"); insert into t1 values ("Alas");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- reading stdin -- --- reading stdin --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1108844556; SET TIMESTAMP=1108844556;
BEGIN; BEGIN;
SET TIMESTAMP=1108844555; SET TIMESTAMP=1108844555;
insert t1 values (1); insert t1 values (1);
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
use test; use test;
SET TIMESTAMP=1108844556; SET TIMESTAMP=1108844556;
BEGIN; BEGIN;
SET TIMESTAMP=1108844555; SET TIMESTAMP=1108844555;
insert t1 values (1); insert t1 values (1);
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
drop table t1, t2; drop table t1, t2;

View File

@ -16,6 +16,7 @@ insert into t1 values(null, "f");
--- Local -- --- Local --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -38,9 +39,12 @@ insert into t1 values(null, "d");
SET INSERT_ID=5; SET INSERT_ID=5;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
insert into t1 values(null, "e"); insert into t1 values(null, "e");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- offset -- --- offset --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET INSERT_ID=1; SET INSERT_ID=1;
use test; use test;
@ -61,9 +65,12 @@ insert into t1 values(null, "d");
SET INSERT_ID=5; SET INSERT_ID=5;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
insert into t1 values(null, "e"); insert into t1 values(null, "e");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-position -- --- start-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
SET INSERT_ID=4; SET INSERT_ID=4;
use test; use test;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
@ -74,9 +81,12 @@ insert into t1 values(null, "d");
SET INSERT_ID=5; SET INSERT_ID=5;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
insert into t1 values(null, "e"); insert into t1 values(null, "e");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-position -- --- stop-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -93,9 +103,12 @@ insert into t1 values(null, "b");
SET INSERT_ID=3; SET INSERT_ID=3;
SET TIMESTAMP=1579609944; SET TIMESTAMP=1579609944;
insert into t1 values(null, "c"); insert into t1 values(null, "c");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-datetime -- --- start-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET INSERT_ID=3; SET INSERT_ID=3;
use test; use test;
@ -110,9 +123,12 @@ insert into t1 values(null, "d");
SET INSERT_ID=5; SET INSERT_ID=5;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
insert into t1 values(null, "e"); insert into t1 values(null, "e");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-datetime -- --- stop-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -126,9 +142,12 @@ insert into t1 values(null, "a");
SET INSERT_ID=2; SET INSERT_ID=2;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
insert into t1 values(null, "b"); insert into t1 values(null, "b");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Local with 2 binlogs on command line -- --- Local with 2 binlogs on command line --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -158,9 +177,12 @@ SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.uniq
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values(null, "f"); insert into t1 values(null, "f");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- offset -- --- offset --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET INSERT_ID=1; SET INSERT_ID=1;
use test; use test;
@ -188,9 +210,12 @@ SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.uniq
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values(null, "f"); insert into t1 values(null, "f");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-position -- --- start-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
SET INSERT_ID=4; SET INSERT_ID=4;
use test; use test;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
@ -208,9 +233,12 @@ SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.uniq
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values(null, "f"); insert into t1 values(null, "f");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-position -- --- stop-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -234,9 +262,12 @@ SET INSERT_ID=5;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
insert into t1 values(null, "e"); insert into t1 values(null, "e");
SET INSERT_ID=6; SET INSERT_ID=6;
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-datetime -- --- start-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET INSERT_ID=3; SET INSERT_ID=3;
use test; use test;
@ -258,9 +289,12 @@ SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.uniq
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values(null, "f"); insert into t1 values(null, "f");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-datetime -- --- stop-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -274,9 +308,12 @@ insert into t1 values(null, "a");
SET INSERT_ID=2; SET INSERT_ID=2;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
insert into t1 values(null, "b"); insert into t1 values(null, "b");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Remote -- --- Remote --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -299,9 +336,12 @@ insert into t1 values(null, "d");
SET INSERT_ID=5; SET INSERT_ID=5;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
insert into t1 values(null, "e"); insert into t1 values(null, "e");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- offset -- --- offset --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET INSERT_ID=1; SET INSERT_ID=1;
use test; use test;
@ -322,9 +362,12 @@ insert into t1 values(null, "d");
SET INSERT_ID=5; SET INSERT_ID=5;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
insert into t1 values(null, "e"); insert into t1 values(null, "e");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-position -- --- start-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
SET INSERT_ID=4; SET INSERT_ID=4;
use test; use test;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
@ -335,9 +378,12 @@ insert into t1 values(null, "d");
SET INSERT_ID=5; SET INSERT_ID=5;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
insert into t1 values(null, "e"); insert into t1 values(null, "e");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-position -- --- stop-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -354,9 +400,12 @@ insert into t1 values(null, "b");
SET INSERT_ID=3; SET INSERT_ID=3;
SET TIMESTAMP=1579609944; SET TIMESTAMP=1579609944;
insert into t1 values(null, "c"); insert into t1 values(null, "c");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-datetime -- --- start-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET INSERT_ID=3; SET INSERT_ID=3;
use test; use test;
@ -371,9 +420,12 @@ insert into t1 values(null, "d");
SET INSERT_ID=5; SET INSERT_ID=5;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
insert into t1 values(null, "e"); insert into t1 values(null, "e");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-datetime -- --- stop-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -387,9 +439,12 @@ insert into t1 values(null, "a");
SET INSERT_ID=2; SET INSERT_ID=2;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
insert into t1 values(null, "b"); insert into t1 values(null, "b");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- Remote with 2 binlogs on command line -- --- Remote with 2 binlogs on command line --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -419,9 +474,12 @@ SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.uniq
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values(null, "f"); insert into t1 values(null, "f");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- offset -- --- offset --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET INSERT_ID=1; SET INSERT_ID=1;
use test; use test;
@ -449,9 +507,12 @@ SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.uniq
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values(null, "f"); insert into t1 values(null, "f");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-position -- --- start-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
SET INSERT_ID=4; SET INSERT_ID=4;
use test; use test;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
@ -469,9 +530,12 @@ SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.uniq
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values(null, "f"); insert into t1 values(null, "f");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-position -- --- stop-position --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -495,9 +559,12 @@ SET INSERT_ID=5;
SET TIMESTAMP=1579609946; SET TIMESTAMP=1579609946;
insert into t1 values(null, "e"); insert into t1 values(null, "e");
SET INSERT_ID=6; SET INSERT_ID=6;
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- start-datetime -- --- start-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET INSERT_ID=3; SET INSERT_ID=3;
use test; use test;
@ -519,9 +586,12 @@ SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.uniq
SET @@session.sql_mode=0; SET @@session.sql_mode=0;
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8; SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
insert into t1 values(null, "f"); insert into t1 values(null, "f");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- stop-datetime -- --- stop-datetime --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -535,9 +605,12 @@ insert into t1 values(null, "a");
SET INSERT_ID=2; SET INSERT_ID=2;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
insert into t1 values(null, "b"); insert into t1 values(null, "b");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- to-last-log -- --- to-last-log --
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
use test; use test;
SET TIMESTAMP=1579609942; SET TIMESTAMP=1579609942;
@ -563,6 +636,8 @@ insert into t1 values(null, "e");
SET INSERT_ID=6; SET INSERT_ID=6;
SET TIMESTAMP=1579609943; SET TIMESTAMP=1579609943;
insert into t1 values(null, "f"); insert into t1 values(null, "f");
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
--- end of test -- --- end of test --
drop table t1; drop table t1;

View File

@ -175,6 +175,7 @@ select hex(c1), hex(c2) from t1;
hex(c1) hex(c2) hex(c1) hex(c2)
CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET TIMESTAMP=1000000000; SET TIMESTAMP=1000000000;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1; SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
@ -245,6 +246,8 @@ CREATE TABLE t1 (c1 VARBINARY(255), c2 VARBINARY(255));
SET TIMESTAMP=1000000000; SET TIMESTAMP=1000000000;
SET @@session.character_set_client=7,@@session.collation_connection=51,@@session.collation_server=30; SET @@session.character_set_client=7,@@session.collation_connection=51,@@session.collation_server=30;
INSERT INTO t1 (c1, c2) VALUES ('<27><>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>'); INSERT INTO t1 (c1, c2) VALUES ('<27><>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>','<27><>, <20><> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>');
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
drop table t1; drop table t1;
create table `t1` ( create table `t1` (
`pk` varchar(10) not null default '', `pk` varchar(10) not null default '',

View File

@ -94,6 +94,6 @@ d
2002-10-24 14:50:40 2002-10-24 14:50:40
show status like "created_tmp%tables"; show status like "created_tmp%tables";
Variable_name Value Variable_name Value
Created_tmp_disk_tables 1 Created_tmp_disk_tables 0
Created_tmp_tables 2 Created_tmp_tables 2
drop table t1; drop table t1;

View File

@ -184,6 +184,7 @@ master-bin.000001 230 User var 1 272 @`var1`=_latin1 0x273B616161 COLLATE latin1
master-bin.000001 272 User var 1 310 @`var2`=_latin1 0x61 COLLATE latin1_swedish_ci master-bin.000001 272 User var 1 310 @`var2`=_latin1 0x61 COLLATE latin1_swedish_ci
master-bin.000001 310 Query 1 411 use `test`; insert into t1 values (@var1),(@var2) master-bin.000001 310 Query 1 411 use `test`; insert into t1 values (@var1),(@var2)
/*!40019 SET @@session.max_insert_delayed_threads=0*/; /*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
ROLLBACK; ROLLBACK;
SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`; SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`;
use test; use test;
@ -196,6 +197,8 @@ SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`;
SET @`var2`:=_latin1 0x61 COLLATE `latin1_swedish_ci`; SET @`var2`:=_latin1 0x61 COLLATE `latin1_swedish_ci`;
SET TIMESTAMP=10000; SET TIMESTAMP=10000;
insert into t1 values (@var1),(@var2); insert into t1 values (@var1),(@var2);
ROLLBACK;
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
drop table t1; drop table t1;
set @var= NULL ; set @var= NULL ;
select FIELD( @var,'1it','Hit') as my_column; select FIELD( @var,'1it','Hit') as my_column;

View File

@ -1,6 +1,33 @@
drop table if exists t1, t2; drop table if exists t1, t2;
SET SQL_WARNINGS=1; SET SQL_WARNINGS=1;
create table t1 (a int); create table t1 (a int);
create table t1 (a int);
ERROR 42S01: Table 't1' already exists
show count(*) errors;
@@session.error_count
1
show errors;
Level Code Message
Error 1050 Table 't1' already exists
show warnings;
Level Code Message
Error 1050 Table 't1' already exists
create table t2(a int) default charset qwerty;
ERROR 42000: Unknown character set: 'qwerty'
show count(*) errors;
@@session.error_count
1
show errors;
Level Code Message
Error 1115 Unknown character set: 'qwerty'
create table t (i);
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
show count(*) errors;
@@session.error_count
1
show errors;
Level Code Message
Error 1064 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
insert into t1 values (1); insert into t1 values (1);
insert into t1 values ("hej"); insert into t1 values ("hej");
Warnings: Warnings:

View File

@ -479,3 +479,9 @@ EXPLAIN
WHERE a = CONV('e251273eb74a8ee3', 16, 10); WHERE a = CONV('e251273eb74a8ee3', 16, 10);
DROP TABLE t1; DROP TABLE t1;
#
# Bug #6317: string function CHAR, parameter is NULL, wrong result
#
SELECT CHAR(NULL,121,83,81,'76') as my_column;
SELECT CHAR_LENGTH(CHAR(NULL,121,83,81,'76')) as my_column;

View File

@ -363,3 +363,40 @@ create view v1 as select * from t1, t2;
set @got_val= (select count(*) from information_schema.columns); set @got_val= (select count(*) from information_schema.columns);
drop view v1; drop view v1;
drop table t1, t2; drop table t1, t2;
#
# Bug #7476: crash on SELECT * FROM INFORMATION_SCHEMA.TABLES
#
CREATE TABLE t_crashme ( f1 BIGINT);
CREATE VIEW a1 (t_CRASHME) AS SELECT f1 FROM t_crashme GROUP BY f1;
CREATE VIEW a2 AS SELECT t_CRASHME FROM a1;
let $tab_count= 65;
--disable_query_log
while ($tab_count)
{
EVAL CREATE TABLE t_$tab_count (f1 BIGINT);
dec $tab_count ;
}
--disable_result_log
SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES;
--enable_result_log
let $tab_count= 65;
while ($tab_count)
{
EVAL DROP TABLE t_$tab_count;
dec $tab_count ;
}
--enable_query_log
drop view a2, a1;
drop table t_crashme;
#
# Bug #7215 information_schema: columns are longtext instead of varchar
# Bug #7217 information_schema: columns are varbinary() instead of timestamp
#
select table_schema,table_name, column_name from
information_schema.columns
where data_type = 'longtext';
select table_name, column_name, data_type from information_schema.columns
where data_type = 'datetime';

View File

@ -7,6 +7,19 @@ drop table if exists t1, t2;
SET SQL_WARNINGS=1; SET SQL_WARNINGS=1;
create table t1 (a int); create table t1 (a int);
--error 1050
create table t1 (a int);
show count(*) errors;
show errors;
show warnings;
--error 1115
create table t2(a int) default charset qwerty;
show count(*) errors;
show errors;
--error 1064
create table t (i);
show count(*) errors;
show errors;
insert into t1 values (1); insert into t1 values (1);
insert into t1 values ("hej"); insert into t1 values ("hej");
insert into t1 values ("hej"),("d<>"); insert into t1 values ("hej"),("d<>");

View File

@ -530,7 +530,7 @@ CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags)
{ {
char index_file[FN_REFLEN]; char index_file[FN_REFLEN];
strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX); strmov(get_charsets_dir(index_file),MY_CHARSET_INDEX);
my_error(EE_UNKNOWN_CHARSET, MYF(ME_BELL), cs_name, index_file); my_error(EE_UNKNOWN_COLLATION, MYF(ME_BELL), cs_name, index_file);
} }
return cs; return cs;

View File

@ -49,6 +49,7 @@ const char * NEAR globerrs[GLOBERRS]=
"Can't create symlink '%s' pointing at '%s' (Error %d)", "Can't create symlink '%s' pointing at '%s' (Error %d)",
"Error on realpath() on '%s' (Error %d)", "Error on realpath() on '%s' (Error %d)",
"Can't sync file '%s' to disk (Errcode: %d)", "Can't sync file '%s' to disk (Errcode: %d)",
"Collation '%s' is not a compiled collation and is not specified in the '%s' file",
}; };
void init_glob_errs(void) void init_glob_errs(void)
@ -87,5 +88,6 @@ void init_glob_errs()
EE(EE_CANT_SYMLINK)= "Can't create symlink '%s' pointing at '%s' (Error %d)"; EE(EE_CANT_SYMLINK)= "Can't create symlink '%s' pointing at '%s' (Error %d)";
EE(EE_REALPATH)= "Error on realpath() on '%s' (Error %d)"; EE(EE_REALPATH)= "Error on realpath() on '%s' (Error %d)";
EE(EE_SYNC)= "Can't sync file '%s' to disk (Errcode: %d)"; EE(EE_SYNC)= "Can't sync file '%s' to disk (Errcode: %d)";
EE(EE_UNKNOWN_COLLATION)= "Collation '%s' is not a compiled collation and is not specified in the %s file";
} }
#endif #endif

View File

@ -128,15 +128,28 @@ then
else else
MY_BASEDIR_VERSION=@prefix@ MY_BASEDIR_VERSION=@prefix@
DATADIR=@localstatedir@ DATADIR=@localstatedir@
if test -z "$MYSQL_HOME"
then
MYSQL_HOME=$DATADIR # Installation in a not common path
fi
ledir=@libexecdir@ ledir=@libexecdir@
fi fi
if test -z "$MYSQL_HOME" if test -z "$MYSQL_HOME"
then then
MYSQL_HOME=$MY_BASEDIR_VERSION if test -r "$MY_BASEDIR_VERSION/my.cnf" && test -r "$DATADIR/my.cnf"
then
echo "WARNING: Found two instances of my.cnf -"
echo "$MY_BASEDIR_VERSION/my.cnf and"
echo "$DATADIR/my.cnf"
echo "IGNORING $DATADIR/my.cnf"
echo
MYSQL_HOME=$MY_BASEDIR_VERSION
elif test -r "$DATADIR/my.cnf"
then
echo "WARNING: Found $DATADIR/my.cnf"
echo "Datadir is deprecated place for my.cnf, please move it to $MY_BASEDIR_VERSION"
echo
MYSQL_HOME=$DATADIR
else
MYSQL_HOME=$MY_BASEDIR_VERSION
fi
fi fi
export MYSQL_HOME export MYSQL_HOME

View File

@ -1874,6 +1874,7 @@ String *Item_func_char::val_str(String *str)
{ {
int32 num=(int32) args[i]->val_int(); int32 num=(int32) args[i]->val_int();
if (!args[i]->null_value) if (!args[i]->null_value)
{
#ifdef USE_MB #ifdef USE_MB
if (use_mb(collation.collation)) if (use_mb(collation.collation))
{ {
@ -1889,6 +1890,7 @@ b1: str->append((char)(num>>8));
} }
#endif #endif
str->append((char)num); str->append((char)num);
}
} }
str->set_charset(collation.collation); str->set_charset(collation.collation);
str->realloc(str->length()); // Add end 0 (for Purify) str->realloc(str->length()); // Add end 0 (for Purify)

View File

@ -730,7 +730,7 @@ static void print_lock_error(int error, const char *table)
least the first step above) least the first step above)
global_read_lock_blocks_commit global_read_lock_blocks_commit
count of threads which have the global read lock and block count of threads which have the global read lock and block
commits (i.e. have completed the second step above) commits (i.e. are in or have completed the second step above)
waiting_for_read_lock waiting_for_read_lock
count of threads which want to take a global read lock but cannot count of threads which want to take a global read lock but cannot
protect_against_global_read_lock protect_against_global_read_lock
@ -902,7 +902,8 @@ void start_waiting_global_read_lock(THD *thd)
if (unlikely(thd->global_read_lock)) if (unlikely(thd->global_read_lock))
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
(void) pthread_mutex_lock(&LOCK_open); (void) pthread_mutex_lock(&LOCK_open);
tmp= (!--protect_against_global_read_lock && waiting_for_read_lock); tmp= (!--protect_against_global_read_lock &&
(waiting_for_read_lock || global_read_lock_blocks_commit));
(void) pthread_mutex_unlock(&LOCK_open); (void) pthread_mutex_unlock(&LOCK_open);
if (tmp) if (tmp)
pthread_cond_broadcast(&COND_refresh); pthread_cond_broadcast(&COND_refresh);

View File

@ -2457,8 +2457,8 @@ void sql_print_information(const char *format, ...)
static const char tc_log_magic[]={254, 0x23, 0x05, 0x74}; static const char tc_log_magic[]={254, 0x23, 0x05, 0x74};
uint opt_tc_log_size=TC_LOG_MIN_SIZE; uint opt_tc_log_size=TC_LOG_MIN_SIZE;
uint tc_log_max_pages_used=0, tc_log_page_size=0, ulong tc_log_max_pages_used=0, tc_log_page_size=0,
tc_log_page_waits=0, tc_log_cur_pages_used=0; tc_log_page_waits=0, tc_log_cur_pages_used=0;
int TC_LOG_MMAP::open(const char *opt_name) int TC_LOG_MMAP::open(const char *opt_name)
{ {

View File

@ -1029,7 +1029,7 @@ bool Query_log_event::write(IO_CACHE* file)
if (sql_mode_inited) if (sql_mode_inited)
{ {
*(start++)= Q_SQL_MODE_CODE; *(start++)= Q_SQL_MODE_CODE;
int8store(start, sql_mode); int8store(start, (ulonglong)sql_mode);
start+= 8; start+= 8;
} }
if (catalog_len >= 0) // i.e. "catalog inited" (false for 4.0 events) if (catalog_len >= 0) // i.e. "catalog inited" (false for 4.0 events)

View File

@ -7030,8 +7030,12 @@ get_best_group_min_max(PARAM *param, SEL_TREE *tree)
cur_group_key_parts, tree, cur_index_tree, cur_group_key_parts, tree, cur_index_tree,
cur_quick_prefix_records, have_min, have_max, cur_quick_prefix_records, have_min, have_max,
&cur_read_cost, &cur_records); &cur_read_cost, &cur_records);
/*
if (cur_read_cost < best_read_cost) If cur_read_cost is lower than best_read_cost use cur_index.
Do not compare doubles directly because they may have different
representations (64 vs. 80 bits).
*/
if (cur_read_cost < best_read_cost - (DBL_EPSILON * cur_read_cost))
{ {
index_info= cur_index_info; index_info= cur_index_info;
index= cur_index; index= cur_index;
@ -7463,7 +7467,7 @@ void cost_group_min_max(TABLE* table, KEY *index_info, uint used_key_parts,
double quick_prefix_selectivity; double quick_prefix_selectivity;
double io_cost; double io_cost;
double cpu_cost= 0; /* TODO: CPU cost of index_read calls? */ double cpu_cost= 0; /* TODO: CPU cost of index_read calls? */
DBUG_ENTER("TRP_GROUP_MIN_MAX::cost"); DBUG_ENTER("cost_group_min_max");
table_records= table->file->records; table_records= table->file->records;
keys_per_block= (table->file->block_size / 2 / keys_per_block= (table->file->block_size / 2 /
@ -7967,7 +7971,15 @@ int QUICK_GROUP_MIN_MAX_SELECT::get_next()
{ {
int min_res= 0; int min_res= 0;
int max_res= 0; int max_res= 0;
#ifdef HPUX11
/*
volatile is required by a bug in the HP compiler due to which the
last test of result fails.
*/
volatile int result;
#else
int result; int result;
#endif
int is_last_prefix; int is_last_prefix;
DBUG_ENTER("QUICK_GROUP_MIN_MAX_SELECT::get_next"); DBUG_ENTER("QUICK_GROUP_MIN_MAX_SELECT::get_next");

View File

@ -59,6 +59,7 @@ void net_send_error(THD *thd, uint sql_errno, const char *err)
uint length; uint length;
char buff[MYSQL_ERRMSG_SIZE+2], *pos; char buff[MYSQL_ERRMSG_SIZE+2], *pos;
#endif #endif
const char *orig_err= err;
NET *net= &thd->net; NET *net= &thd->net;
DBUG_ENTER("net_send_error"); DBUG_ENTER("net_send_error");
DBUG_PRINT("enter",("sql_errno: %d err: %s", sql_errno, DBUG_PRINT("enter",("sql_errno: %d err: %s", sql_errno,
@ -85,6 +86,7 @@ void net_send_error(THD *thd, uint sql_errno, const char *err)
err=ER(sql_errno); /* purecov: inspected */ err=ER(sql_errno); /* purecov: inspected */
} }
} }
orig_err= err;
} }
#ifdef EMBEDDED_LIBRARY #ifdef EMBEDDED_LIBRARY
@ -123,6 +125,8 @@ void net_send_error(THD *thd, uint sql_errno, const char *err)
} }
VOID(net_write_command(net,(uchar) 255, "", 0, (char*) err,length)); VOID(net_write_command(net,(uchar) 255, "", 0, (char*) err,length));
#endif /* EMBEDDED_LIBRARY*/ #endif /* EMBEDDED_LIBRARY*/
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, sql_errno,
orig_err ? orig_err : ER(sql_errno));
thd->is_fatal_error=0; // Error message is given thd->is_fatal_error=0; // Error message is given
thd->net.report_error= 0; thd->net.report_error= 0;
@ -229,6 +233,8 @@ net_printf_error(THD *thd, uint errcode, ...)
strmake(net->last_error, text_pos, length); strmake(net->last_error, text_pos, length);
strmake(net->sqlstate, mysql_errno_to_sqlstate(errcode), SQLSTATE_LENGTH); strmake(net->sqlstate, mysql_errno_to_sqlstate(errcode), SQLSTATE_LENGTH);
#endif #endif
push_warning(thd, MYSQL_ERROR::WARN_LEVEL_ERROR, errcode,
text_pos ? text_pos : ER(errcode));
thd->is_fatal_error=0; // Error message is given thd->is_fatal_error=0; // Error message is given
DBUG_VOID_RETURN; DBUG_VOID_RETURN;
} }

View File

@ -46,9 +46,9 @@ extern const char **errmesg;
#define TC_LOG_PAGE_SIZE 8192 #define TC_LOG_PAGE_SIZE 8192
#define TC_LOG_MIN_SIZE (3*TC_LOG_PAGE_SIZE) #define TC_LOG_MIN_SIZE (3*TC_LOG_PAGE_SIZE)
extern uint opt_tc_log_size; extern uint opt_tc_log_size;
extern uint tc_log_max_pages_used; extern ulong tc_log_max_pages_used;
extern uint tc_log_page_size; extern ulong tc_log_page_size;
extern uint tc_log_page_waits; extern ulong tc_log_page_waits;
#define TC_HEURISTIC_RECOVER_COMMIT 1 #define TC_HEURISTIC_RECOVER_COMMIT 1
#define TC_HEURISTIC_RECOVER_ROLLBACK 2 #define TC_HEURISTIC_RECOVER_ROLLBACK 2
@ -1614,10 +1614,12 @@ public:
/* If >0 convert all blob fields to varchar(convert_blob_length) */ /* If >0 convert all blob fields to varchar(convert_blob_length) */
uint convert_blob_length; uint convert_blob_length;
CHARSET_INFO *table_charset; CHARSET_INFO *table_charset;
bool schema_table;
TMP_TABLE_PARAM() TMP_TABLE_PARAM()
:copy_field(0), group_parts(0), :copy_field(0), group_parts(0),
group_length(0), group_null_parts(0), convert_blob_length(0) group_length(0), group_null_parts(0), convert_blob_length(0),
schema_table(0)
{} {}
~TMP_TABLE_PARAM() ~TMP_TABLE_PARAM()
{ {

View File

@ -7690,6 +7690,36 @@ static Field *create_tmp_field_from_item(THD *thd, Item *item, TABLE *table,
return new_field; return new_field;
} }
/*
Create field for information schema table
SYNOPSIS
create_tmp_field_for_schema()
thd Thread handler
table Temporary table
item Item to create a field for
RETURN
0 on error
new_created field
*/
Field *create_tmp_field_for_schema(THD *thd, Item *item, TABLE *table)
{
if (item->field_type() == MYSQL_TYPE_VARCHAR)
{
if (item->max_length > MAX_FIELD_VARCHARLENGTH /
item->collation.collation->mbmaxlen)
return new Field_blob(item->max_length, item->maybe_null,
item->name, table, item->collation.collation);
return new Field_varstring(item->max_length, item->maybe_null, item->name,
table, item->collation.collation);
}
return item->tmp_table_field_from_field_type(table);
}
/* /*
Create field for temporary table Create field for temporary table
@ -7992,10 +8022,13 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
We here distinguish between UNION and multi-table-updates by the fact We here distinguish between UNION and multi-table-updates by the fact
that in the later case group is set to the row pointer. that in the later case group is set to the row pointer.
*/ */
Field *new_field= create_tmp_field(thd, table, item, type, &copy_func, Field *new_field= (param->schema_table) ?
tmp_from_field, group != 0, create_tmp_field_for_schema(thd, item, table) :
not_all_columns || group !=0, create_tmp_field(thd, table, item, type, &copy_func,
param->convert_blob_length); tmp_from_field, group != 0,
not_all_columns || group !=0,
param->convert_blob_length);
if (!new_field) if (!new_field)
{ {
if (thd->is_fatal_error) if (thd->is_fatal_error)

View File

@ -1778,6 +1778,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
LEX *lex= thd->lex; LEX *lex= thd->lex;
TABLE *table= tables->table; TABLE *table= tables->table;
SELECT_LEX *select_lex= &lex->select_lex; SELECT_LEX *select_lex= &lex->select_lex;
SELECT_LEX *old_all_select_lex= lex->all_selects_list;
SELECT_LEX *lsel= tables->schema_select_lex; SELECT_LEX *lsel= tables->schema_select_lex;
ST_SCHEMA_TABLE *schema_table= tables->schema_table; ST_SCHEMA_TABLE *schema_table= tables->schema_table;
SELECT_LEX sel; SELECT_LEX sel;
@ -1790,6 +1791,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
List<char> bases; List<char> bases;
List_iterator_fast<char> it(bases); List_iterator_fast<char> it(bases);
COND *partial_cond; COND *partial_cond;
uint derived_tables= lex->derived_tables;
int error= 1; int error= 1;
DBUG_ENTER("get_all_tables"); DBUG_ENTER("get_all_tables");
@ -1814,7 +1816,6 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
goto err; goto err;
} }
lex->all_selects_list= &sel;
schema_table_idx= get_schema_table_idx(schema_table); schema_table_idx= get_schema_table_idx(schema_table);
lock_type= TL_UNLOCK; lock_type= TL_UNLOCK;
@ -1911,6 +1912,8 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
goto err; goto err;
TABLE_LIST *show_table_list= (TABLE_LIST*) sel.table_list.first; TABLE_LIST *show_table_list= (TABLE_LIST*) sel.table_list.first;
show_table_list->lock_type= lock_type; show_table_list->lock_type= lock_type;
lex->all_selects_list= &sel;
lex->derived_tables= 0;
res= open_and_lock_tables(thd, show_table_list); res= open_and_lock_tables(thd, show_table_list);
if (schema_table->process_table(thd, show_table_list, table, if (schema_table->process_table(thd, show_table_list, table,
res, base_name, res, base_name,
@ -1930,7 +1933,8 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
error= 0; error= 0;
err: err:
lex->all_selects_list= select_lex; lex->derived_tables= derived_tables;
lex->all_selects_list= old_all_select_lex;
DBUG_RETURN(error); DBUG_RETURN(error);
} }
@ -3013,6 +3017,7 @@ TABLE *create_schema_table(THD *thd, TABLE_LIST *table_list)
tmp_table_param->init(); tmp_table_param->init();
tmp_table_param->table_charset= cs; tmp_table_param->table_charset= cs;
tmp_table_param->field_count= field_count; tmp_table_param->field_count= field_count;
tmp_table_param->schema_table= 1;
SELECT_LEX *select_lex= thd->lex->current_select; SELECT_LEX *select_lex= thd->lex->current_select;
if (!(table= create_tmp_table(thd, tmp_table_param, if (!(table= create_tmp_table(thd, tmp_table_param,
field_list, (ORDER*) 0, 0, 0, field_list, (ORDER*) 0, 0, 0,