mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +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
This commit is contained in:
@ -1249,6 +1249,14 @@ int main(int argc, char** argv)
|
||||
fprintf(result_file,
|
||||
"/*!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 ;
|
||||
(--argc >= 0) && !stop_passed ; )
|
||||
{
|
||||
@ -1263,6 +1271,13 @@ int main(int argc, char** argv)
|
||||
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)
|
||||
fprintf(result_file, "/*!32316 SET SQL_LOG_BIN=@OLD_SQL_LOG_BIN*/;\n");
|
||||
|
||||
|
@ -408,4 +408,5 @@ inline double ulonglong2double(ulonglong value)
|
||||
#define HAVE_CHARSET_ucs2 1
|
||||
#define HAVE_CHARSET_ujis 1
|
||||
#define HAVE_CHARSET_utf8 1
|
||||
#define HAVE_UCA_COLLATIONS 1
|
||||
|
||||
|
@ -56,7 +56,8 @@ extern const char * NEAR globerrs[]; /* my_error_messages is here */
|
||||
#define EE_CANT_SYMLINK 25
|
||||
#define EE_REALPATH 26
|
||||
#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. */
|
||||
|
||||
/* exit codes for all MySQL programs */
|
||||
|
@ -41,8 +41,8 @@ SET_STACK_SIZE(9000) /* Minimum stack size for program */
|
||||
static uint decode_bits;
|
||||
static char **default_argv;
|
||||
static const char *load_default_groups[]= { "myisamchk", 0 };
|
||||
static const char *set_charset_name, *opt_tmpdir;
|
||||
static CHARSET_INFO *set_charset;
|
||||
static const char *set_collation_name, *opt_tmpdir;
|
||||
static CHARSET_INFO *set_collation;
|
||||
static long opt_myisam_block_size;
|
||||
static long opt_key_cache_block_size;
|
||||
static const char *my_progname_short;
|
||||
@ -149,7 +149,7 @@ int main(int argc, char **argv)
|
||||
} /* main */
|
||||
|
||||
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_KEY_CACHE_BLOCK_SIZE, OPT_MYISAM_BLOCK_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,
|
||||
0, GET_ULL, OPT_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"set-character-set", OPT_SET_CHARSET,
|
||||
"Change the character set used by the index",
|
||||
(gptr*) &set_charset_name, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"set-collation", OPT_SET_COLLATION,
|
||||
"Change the collation used by the index",
|
||||
(gptr*) &set_collation_name, 0, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"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.",
|
||||
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.key_cache_block_size= opt_key_cache_block_size;
|
||||
|
||||
if (set_charset_name)
|
||||
if (!(set_charset=get_charset_by_name(set_charset_name, MYF(MY_WME))))
|
||||
if (set_collation_name)
|
||||
if (!(set_collation= get_charset_by_name(set_collation_name,
|
||||
MYF(MY_WME))))
|
||||
exit(1);
|
||||
|
||||
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)) ||
|
||||
test_if_almost_full(info) ||
|
||||
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))
|
||||
{
|
||||
if (set_charset)
|
||||
param->language=set_charset->number;
|
||||
if (set_collation)
|
||||
param->language= set_collation->number;
|
||||
if (recreate_table(param, &info,filename))
|
||||
{
|
||||
VOID(fprintf(stderr,
|
||||
|
@ -116,7 +116,7 @@ count(distinct n)
|
||||
5000
|
||||
show status like 'Created_tmp_disk_tables';
|
||||
Variable_name Value
|
||||
Created_tmp_disk_tables 2
|
||||
Created_tmp_disk_tables 1
|
||||
drop table t1;
|
||||
create table t1 (s text);
|
||||
flush status;
|
||||
@ -125,5 +125,5 @@ count(distinct s)
|
||||
5000
|
||||
show status like 'Created_tmp_disk_tables';
|
||||
Variable_name Value
|
||||
Created_tmp_disk_tables 2
|
||||
Created_tmp_disk_tables 1
|
||||
drop table t1;
|
||||
|
@ -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 136 Query 1 226 use `test`; insert into t2 values (@v)
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET @`v`:=_ucs2 0x006100620063 COLLATE `ucs2_general_ci`;
|
||||
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.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t2 values (@v);
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
drop table t2;
|
||||
set names latin1;
|
||||
create table t1 (a enum('x','y','z') character set ucs2);
|
||||
|
@ -742,3 +742,9 @@ WHERE a = CONV('e251273eb74a8ee3', 16, 10);
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 system NULL NULL NULL NULL 1
|
||||
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
|
||||
|
@ -494,8 +494,8 @@ select TABLE_NAME,TABLE_TYPE,ENGINE
|
||||
from information_schema.tables
|
||||
where table_schema='information_schema' limit 2;
|
||||
TABLE_NAME TABLE_TYPE ENGINE
|
||||
SCHEMATA TEMPORARY MyISAM
|
||||
TABLES TEMPORARY MyISAM
|
||||
SCHEMATA TEMPORARY MEMORY
|
||||
TABLES TEMPORARY MEMORY
|
||||
show tables from information_schema like "T%";
|
||||
Tables_in_information_schema (T%)
|
||||
TABLES
|
||||
@ -610,3 +610,24 @@ create view v1 as select * from t1, t2;
|
||||
set @got_val= (select count(*) from information_schema.columns);
|
||||
drop view v1;
|
||||
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
|
||||
|
@ -15,6 +15,7 @@ flush logs;
|
||||
|
||||
--- Local --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
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-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);
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- Broken LOAD DATA --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --database --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=1;
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- Remote --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
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-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);
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- Broken LOAD DATA --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --database --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=1;
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- --position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1000000000;
|
||||
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=1, @@session.unique_checks=1;
|
||||
SET @@session.sql_mode=0;
|
||||
SET @@session.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values ("Alas");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- reading stdin --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1108844556;
|
||||
BEGIN;
|
||||
SET TIMESTAMP=1108844555;
|
||||
insert t1 values (1);
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
use test;
|
||||
SET TIMESTAMP=1108844556;
|
||||
BEGIN;
|
||||
SET TIMESTAMP=1108844555;
|
||||
insert t1 values (1);
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
drop table t1, t2;
|
||||
|
@ -16,6 +16,7 @@ insert into t1 values(null, "f");
|
||||
|
||||
--- Local --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -38,9 +39,12 @@ insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- offset --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=1;
|
||||
use test;
|
||||
@ -61,9 +65,12 @@ insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
SET INSERT_ID=4;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609946;
|
||||
@ -74,9 +81,12 @@ insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- stop-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -93,9 +103,12 @@ insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=3;
|
||||
use test;
|
||||
@ -110,9 +123,12 @@ insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- stop-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -126,9 +142,12 @@ insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- Local with 2 binlogs on command line --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
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.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- offset --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=1;
|
||||
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.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
SET INSERT_ID=4;
|
||||
use test;
|
||||
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.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- stop-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -234,9 +262,12 @@ SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=3;
|
||||
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.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- stop-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -274,9 +308,12 @@ insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- Remote --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -299,9 +336,12 @@ insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- offset --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=1;
|
||||
use test;
|
||||
@ -322,9 +362,12 @@ insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
SET INSERT_ID=4;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609946;
|
||||
@ -335,9 +378,12 @@ insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- stop-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -354,9 +400,12 @@ insert into t1 values(null, "b");
|
||||
SET INSERT_ID=3;
|
||||
SET TIMESTAMP=1579609944;
|
||||
insert into t1 values(null, "c");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=3;
|
||||
use test;
|
||||
@ -371,9 +420,12 @@ insert into t1 values(null, "d");
|
||||
SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- stop-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -387,9 +439,12 @@ insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- Remote with 2 binlogs on command line --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
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.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- offset --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=1;
|
||||
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.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
SET INSERT_ID=4;
|
||||
use test;
|
||||
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.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- stop-position --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -495,9 +559,12 @@ SET INSERT_ID=5;
|
||||
SET TIMESTAMP=1579609946;
|
||||
insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- start-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET INSERT_ID=3;
|
||||
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.character_set_client=8,@@session.collation_connection=8,@@session.collation_server=8;
|
||||
insert into t1 values(null, "f");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- stop-datetime --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -535,9 +605,12 @@ insert into t1 values(null, "a");
|
||||
SET INSERT_ID=2;
|
||||
SET TIMESTAMP=1579609942;
|
||||
insert into t1 values(null, "b");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- to-last-log --
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
use test;
|
||||
SET TIMESTAMP=1579609942;
|
||||
@ -563,6 +636,8 @@ insert into t1 values(null, "e");
|
||||
SET INSERT_ID=6;
|
||||
SET TIMESTAMP=1579609943;
|
||||
insert into t1 values(null, "f");
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
|
||||
--- end of test --
|
||||
drop table t1;
|
||||
|
@ -175,6 +175,7 @@ select hex(c1), hex(c2) from t1;
|
||||
hex(c1) hex(c2)
|
||||
CDF32C20E7E020F0FBE1E0EBEAF3 CDF32C20E7E020F0FBE1E0EBEAF3
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET TIMESTAMP=1000000000;
|
||||
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 @@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>');
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
drop table t1;
|
||||
create table `t1` (
|
||||
`pk` varchar(10) not null default '',
|
||||
|
@ -94,6 +94,6 @@ d
|
||||
2002-10-24 14:50:40
|
||||
show status like "created_tmp%tables";
|
||||
Variable_name Value
|
||||
Created_tmp_disk_tables 1
|
||||
Created_tmp_disk_tables 0
|
||||
Created_tmp_tables 2
|
||||
drop table t1;
|
||||
|
@ -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 310 Query 1 411 use `test`; insert into t1 values (@var1),(@var2)
|
||||
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
|
||||
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
|
||||
ROLLBACK;
|
||||
SET @`a b`:=_latin1 0x68656C6C6F COLLATE `latin1_swedish_ci`;
|
||||
use test;
|
||||
@ -196,6 +197,8 @@ SET @`var1`:=_latin1 0x273B616161 COLLATE `latin1_swedish_ci`;
|
||||
SET @`var2`:=_latin1 0x61 COLLATE `latin1_swedish_ci`;
|
||||
SET TIMESTAMP=10000;
|
||||
insert into t1 values (@var1),(@var2);
|
||||
ROLLBACK;
|
||||
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
|
||||
drop table t1;
|
||||
set @var= NULL ;
|
||||
select FIELD( @var,'1it','Hit') as my_column;
|
||||
|
@ -1,6 +1,33 @@
|
||||
drop table if exists t1, t2;
|
||||
SET SQL_WARNINGS=1;
|
||||
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 ("hej");
|
||||
Warnings:
|
||||
|
@ -479,3 +479,9 @@ EXPLAIN
|
||||
WHERE a = CONV('e251273eb74a8ee3', 16, 10);
|
||||
|
||||
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;
|
||||
|
@ -363,3 +363,40 @@ create view v1 as select * from t1, t2;
|
||||
set @got_val= (select count(*) from information_schema.columns);
|
||||
drop view v1;
|
||||
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';
|
||||
|
@ -7,6 +7,19 @@ drop table if exists t1, t2;
|
||||
SET SQL_WARNINGS=1;
|
||||
|
||||
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 ("hej");
|
||||
insert into t1 values ("hej"),("d<>");
|
||||
|
@ -530,7 +530,7 @@ CHARSET_INFO *get_charset_by_name(const char *cs_name, myf flags)
|
||||
{
|
||||
char index_file[FN_REFLEN];
|
||||
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;
|
||||
|
@ -49,6 +49,7 @@ const char * NEAR globerrs[GLOBERRS]=
|
||||
"Can't create symlink '%s' pointing at '%s' (Error %d)",
|
||||
"Error on realpath() on '%s' (Error %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)
|
||||
@ -87,5 +88,6 @@ void init_glob_errs()
|
||||
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_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
|
||||
|
@ -128,15 +128,28 @@ then
|
||||
else
|
||||
MY_BASEDIR_VERSION=@prefix@
|
||||
DATADIR=@localstatedir@
|
||||
if test -z "$MYSQL_HOME"
|
||||
then
|
||||
MYSQL_HOME=$DATADIR # Installation in a not common path
|
||||
fi
|
||||
ledir=@libexecdir@
|
||||
fi
|
||||
|
||||
if test -z "$MYSQL_HOME"
|
||||
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
|
||||
export MYSQL_HOME
|
||||
|
||||
|
@ -1874,6 +1874,7 @@ String *Item_func_char::val_str(String *str)
|
||||
{
|
||||
int32 num=(int32) args[i]->val_int();
|
||||
if (!args[i]->null_value)
|
||||
{
|
||||
#ifdef USE_MB
|
||||
if (use_mb(collation.collation))
|
||||
{
|
||||
@ -1889,6 +1890,7 @@ b1: str->append((char)(num>>8));
|
||||
}
|
||||
#endif
|
||||
str->append((char)num);
|
||||
}
|
||||
}
|
||||
str->set_charset(collation.collation);
|
||||
str->realloc(str->length()); // Add end 0 (for Purify)
|
||||
|
@ -730,7 +730,7 @@ static void print_lock_error(int error, const char *table)
|
||||
least the first step above)
|
||||
global_read_lock_blocks_commit
|
||||
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
|
||||
count of threads which want to take a global read lock but cannot
|
||||
protect_against_global_read_lock
|
||||
@ -902,7 +902,8 @@ void start_waiting_global_read_lock(THD *thd)
|
||||
if (unlikely(thd->global_read_lock))
|
||||
DBUG_VOID_RETURN;
|
||||
(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);
|
||||
if (tmp)
|
||||
pthread_cond_broadcast(&COND_refresh);
|
||||
|
@ -2457,8 +2457,8 @@ void sql_print_information(const char *format, ...)
|
||||
static const char tc_log_magic[]={254, 0x23, 0x05, 0x74};
|
||||
|
||||
uint opt_tc_log_size=TC_LOG_MIN_SIZE;
|
||||
uint tc_log_max_pages_used=0, tc_log_page_size=0,
|
||||
tc_log_page_waits=0, tc_log_cur_pages_used=0;
|
||||
ulong tc_log_max_pages_used=0, tc_log_page_size=0,
|
||||
tc_log_page_waits=0, tc_log_cur_pages_used=0;
|
||||
|
||||
int TC_LOG_MMAP::open(const char *opt_name)
|
||||
{
|
||||
|
@ -1029,7 +1029,7 @@ bool Query_log_event::write(IO_CACHE* file)
|
||||
if (sql_mode_inited)
|
||||
{
|
||||
*(start++)= Q_SQL_MODE_CODE;
|
||||
int8store(start, sql_mode);
|
||||
int8store(start, (ulonglong)sql_mode);
|
||||
start+= 8;
|
||||
}
|
||||
if (catalog_len >= 0) // i.e. "catalog inited" (false for 4.0 events)
|
||||
|
@ -7030,8 +7030,12 @@ get_best_group_min_max(PARAM *param, SEL_TREE *tree)
|
||||
cur_group_key_parts, tree, cur_index_tree,
|
||||
cur_quick_prefix_records, have_min, have_max,
|
||||
&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= 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 io_cost;
|
||||
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;
|
||||
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 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;
|
||||
#endif
|
||||
int is_last_prefix;
|
||||
|
||||
DBUG_ENTER("QUICK_GROUP_MIN_MAX_SELECT::get_next");
|
||||
|
@ -59,6 +59,7 @@ void net_send_error(THD *thd, uint sql_errno, const char *err)
|
||||
uint length;
|
||||
char buff[MYSQL_ERRMSG_SIZE+2], *pos;
|
||||
#endif
|
||||
const char *orig_err= err;
|
||||
NET *net= &thd->net;
|
||||
DBUG_ENTER("net_send_error");
|
||||
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 */
|
||||
}
|
||||
}
|
||||
orig_err= err;
|
||||
}
|
||||
|
||||
#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));
|
||||
#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->net.report_error= 0;
|
||||
|
||||
@ -229,6 +233,8 @@ net_printf_error(THD *thd, uint errcode, ...)
|
||||
strmake(net->last_error, text_pos, length);
|
||||
strmake(net->sqlstate, mysql_errno_to_sqlstate(errcode), SQLSTATE_LENGTH);
|
||||
#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
|
||||
DBUG_VOID_RETURN;
|
||||
}
|
||||
|
@ -46,9 +46,9 @@ extern const char **errmesg;
|
||||
#define TC_LOG_PAGE_SIZE 8192
|
||||
#define TC_LOG_MIN_SIZE (3*TC_LOG_PAGE_SIZE)
|
||||
extern uint opt_tc_log_size;
|
||||
extern uint tc_log_max_pages_used;
|
||||
extern uint tc_log_page_size;
|
||||
extern uint tc_log_page_waits;
|
||||
extern ulong tc_log_max_pages_used;
|
||||
extern ulong tc_log_page_size;
|
||||
extern ulong tc_log_page_waits;
|
||||
|
||||
#define TC_HEURISTIC_RECOVER_COMMIT 1
|
||||
#define TC_HEURISTIC_RECOVER_ROLLBACK 2
|
||||
@ -1614,10 +1614,12 @@ public:
|
||||
/* If >0 convert all blob fields to varchar(convert_blob_length) */
|
||||
uint convert_blob_length;
|
||||
CHARSET_INFO *table_charset;
|
||||
bool schema_table;
|
||||
|
||||
TMP_TABLE_PARAM()
|
||||
: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()
|
||||
{
|
||||
|
@ -7690,6 +7690,36 @@ static Field *create_tmp_field_from_item(THD *thd, Item *item, TABLE *table,
|
||||
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
|
||||
|
||||
@ -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
|
||||
that in the later case group is set to the row pointer.
|
||||
*/
|
||||
Field *new_field= create_tmp_field(thd, table, item, type, ©_func,
|
||||
tmp_from_field, group != 0,
|
||||
not_all_columns || group !=0,
|
||||
param->convert_blob_length);
|
||||
Field *new_field= (param->schema_table) ?
|
||||
create_tmp_field_for_schema(thd, item, table) :
|
||||
create_tmp_field(thd, table, item, type, ©_func,
|
||||
tmp_from_field, group != 0,
|
||||
not_all_columns || group !=0,
|
||||
param->convert_blob_length);
|
||||
|
||||
if (!new_field)
|
||||
{
|
||||
if (thd->is_fatal_error)
|
||||
|
@ -1778,6 +1778,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
LEX *lex= thd->lex;
|
||||
TABLE *table= tables->table;
|
||||
SELECT_LEX *select_lex= &lex->select_lex;
|
||||
SELECT_LEX *old_all_select_lex= lex->all_selects_list;
|
||||
SELECT_LEX *lsel= tables->schema_select_lex;
|
||||
ST_SCHEMA_TABLE *schema_table= tables->schema_table;
|
||||
SELECT_LEX sel;
|
||||
@ -1790,6 +1791,7 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
List<char> bases;
|
||||
List_iterator_fast<char> it(bases);
|
||||
COND *partial_cond;
|
||||
uint derived_tables= lex->derived_tables;
|
||||
int error= 1;
|
||||
DBUG_ENTER("get_all_tables");
|
||||
|
||||
@ -1814,7 +1816,6 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
goto err;
|
||||
}
|
||||
|
||||
lex->all_selects_list= &sel;
|
||||
schema_table_idx= get_schema_table_idx(schema_table);
|
||||
lock_type= TL_UNLOCK;
|
||||
|
||||
@ -1911,6 +1912,8 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
goto err;
|
||||
TABLE_LIST *show_table_list= (TABLE_LIST*) sel.table_list.first;
|
||||
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);
|
||||
if (schema_table->process_table(thd, show_table_list, table,
|
||||
res, base_name,
|
||||
@ -1930,7 +1933,8 @@ int get_all_tables(THD *thd, TABLE_LIST *tables, COND *cond)
|
||||
|
||||
error= 0;
|
||||
err:
|
||||
lex->all_selects_list= select_lex;
|
||||
lex->derived_tables= derived_tables;
|
||||
lex->all_selects_list= old_all_select_lex;
|
||||
DBUG_RETURN(error);
|
||||
}
|
||||
|
||||
@ -3013,6 +3017,7 @@ TABLE *create_schema_table(THD *thd, TABLE_LIST *table_list)
|
||||
tmp_table_param->init();
|
||||
tmp_table_param->table_charset= cs;
|
||||
tmp_table_param->field_count= field_count;
|
||||
tmp_table_param->schema_table= 1;
|
||||
SELECT_LEX *select_lex= thd->lex->current_select;
|
||||
if (!(table= create_tmp_table(thd, tmp_table_param,
|
||||
field_list, (ORDER*) 0, 0, 0,
|
||||
|
Reference in New Issue
Block a user