mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 13:02:28 +01:00
Merge trift2.:/MySQL/M51/mysql-5.1
into trift2.:/MySQL/M51/push-5.1
This commit is contained in:
commit
77c4bfe63a
153 changed files with 3255 additions and 499 deletions
|
@ -80,5 +80,6 @@ enum options_client
|
|||
OPT_MYSQL_REPLACE_INTO, OPT_BASE64_OUTPUT, OPT_SERVER_ID,
|
||||
OPT_FIX_TABLE_NAMES, OPT_FIX_DB_NAMES, OPT_SSL_VERIFY_SERVER_CERT,
|
||||
OPT_DEBUG_INFO, OPT_DEBUG_CHECK, OPT_COLUMN_TYPES, OPT_ERROR_LOG_FILE,
|
||||
OPT_WRITE_BINLOG, OPT_MAX_CLIENT_OPTION
|
||||
OPT_WRITE_BINLOG, OPT_DUMP_DATE,
|
||||
OPT_MAX_CLIENT_OPTION
|
||||
};
|
||||
|
|
|
@ -90,7 +90,7 @@ static my_bool verbose= 0, opt_no_create_info= 0, opt_no_data= 0,
|
|||
opt_drop=1,opt_keywords=0,opt_lock=1,opt_compress=0,
|
||||
opt_delayed=0,create_options=1,opt_quoted=0,opt_databases=0,
|
||||
opt_alldbs=0,opt_create_db=0,opt_lock_all_tables=0,
|
||||
opt_set_charset=0,
|
||||
opt_set_charset=0, opt_dump_date=1,
|
||||
opt_autocommit=0,opt_disable_keys=1,opt_xml=0,
|
||||
opt_delete_master_logs=0, tty_password=0,
|
||||
opt_single_transaction=0, opt_comments= 0, opt_compact= 0,
|
||||
|
@ -424,6 +424,9 @@ static struct my_option my_long_options[] =
|
|||
"automatically turns off --lock-tables.",
|
||||
(uchar**) &opt_single_transaction, (uchar**) &opt_single_transaction, 0,
|
||||
GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
{"dump-date", OPT_DUMP_DATE, "Put a dump date to the end of the output.",
|
||||
(uchar**) &opt_dump_date, (uchar**) &opt_dump_date, 0,
|
||||
GET_BOOL, NO_ARG, 1, 0, 0, 0, 0, 0},
|
||||
{"skip-opt", OPT_SKIP_OPTIMIZATION,
|
||||
"Disable --opt. Disables --add-drop-table, --add-locks, --create-options, --quick, --extended-insert, --lock-tables, --set-charset, and --disable-keys.",
|
||||
0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0},
|
||||
|
@ -650,12 +653,17 @@ static void write_footer(FILE *sql_file)
|
|||
"/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;\n");
|
||||
fputs("\n", sql_file);
|
||||
if (opt_comments)
|
||||
{
|
||||
if (opt_dump_date)
|
||||
{
|
||||
char time_str[20];
|
||||
get_date(time_str, GETDATE_DATE_TIME, 0);
|
||||
fprintf(sql_file, "-- Dump completed on %s\n",
|
||||
time_str);
|
||||
}
|
||||
else
|
||||
fprintf(sql_file, "-- Dump completed\n");
|
||||
}
|
||||
check_io(sql_file);
|
||||
}
|
||||
} /* write_footer */
|
||||
|
|
|
@ -140,7 +140,8 @@ static my_bool opt_compress= FALSE, tty_password= FALSE,
|
|||
auto_generate_sql= FALSE;
|
||||
const char *auto_generate_sql_type= "mixed";
|
||||
|
||||
static unsigned long connect_flags= CLIENT_MULTI_RESULTS;
|
||||
static unsigned long connect_flags= CLIENT_MULTI_RESULTS |
|
||||
CLIENT_MULTI_STATEMENTS;
|
||||
|
||||
static int verbose, delimiter_length;
|
||||
static uint commit_rate;
|
||||
|
@ -1877,6 +1878,8 @@ limit_not_met:
|
|||
}
|
||||
}
|
||||
|
||||
do
|
||||
{
|
||||
if (mysql_field_count(mysql))
|
||||
{
|
||||
result= mysql_store_result(mysql);
|
||||
|
@ -1884,6 +1887,7 @@ limit_not_met:
|
|||
counter++;
|
||||
mysql_free_result(result);
|
||||
}
|
||||
} while(mysql_next_result(mysql) == 0);
|
||||
queries++;
|
||||
|
||||
if (commit_rate && commit_rate <= trans_counter)
|
||||
|
|
22
dbug/dbug.c
22
dbug/dbug.c
|
@ -1826,7 +1826,13 @@ static void DBUGOpenFile(CODE_STATE *cs,
|
|||
else
|
||||
{
|
||||
newfile= !EXISTS(name);
|
||||
if (!(fp= fopen(name, append ? "a+" : "w")))
|
||||
if (!(fp= fopen(name,
|
||||
#if defined(MSDOS) || defined(__WIN__)
|
||||
append ? "a+c" : "wc"
|
||||
#else
|
||||
append ? "a+" : "w"
|
||||
#endif
|
||||
)))
|
||||
{
|
||||
(void) fprintf(stderr, ERR_OPEN, cs->process, name);
|
||||
perror("");
|
||||
|
@ -2229,26 +2235,12 @@ static void dbug_flush(CODE_STATE *cs)
|
|||
{
|
||||
#ifndef THREAD
|
||||
if (cs->stack->flags & FLUSH_ON_WRITE)
|
||||
#endif
|
||||
{
|
||||
#if defined(MSDOS) || defined(__WIN__)
|
||||
if (cs->stack->out_file != stdout && cs->stack->out_file != stderr)
|
||||
{
|
||||
if (!(freopen(cs->stack->name,"a",cs->stack->out_file)))
|
||||
{
|
||||
(void) fprintf(stderr, ERR_OPEN, cs->process, cs->stack->name);
|
||||
fflush(stderr);
|
||||
cs->stack->out_file= stderr;
|
||||
}
|
||||
}
|
||||
else
|
||||
#endif
|
||||
{
|
||||
(void) fflush(cs->stack->out_file);
|
||||
if (cs->stack->delay)
|
||||
(void) Delay(cs->stack->delay);
|
||||
}
|
||||
}
|
||||
if (!cs->locked)
|
||||
pthread_mutex_unlock(&THR_LOCK_dbug);
|
||||
} /* dbug_flush */
|
||||
|
|
|
@ -68,6 +68,7 @@ extern my_error_reporter my_getopt_error_reporter;
|
|||
|
||||
extern int handle_options (int *argc, char ***argv,
|
||||
const struct my_option *longopts, my_get_one_option);
|
||||
extern void my_cleanup_options(const struct my_option *options);
|
||||
extern void my_print_help(const struct my_option *options);
|
||||
extern void my_print_variables(const struct my_option *options);
|
||||
extern void my_getopt_register_get_addr(uchar ** (*func_addr)(const char *, uint,
|
||||
|
|
|
@ -4401,6 +4401,7 @@ static my_bool setup_one_fetch_function(MYSQL_BIND *param, MYSQL_FIELD *field)
|
|||
case MYSQL_TYPE_STRING:
|
||||
case MYSQL_TYPE_DECIMAL:
|
||||
case MYSQL_TYPE_NEWDECIMAL:
|
||||
case MYSQL_TYPE_NEWDATE:
|
||||
DBUG_ASSERT(param->buffer_length != 0);
|
||||
param->fetch_result= fetch_result_str;
|
||||
break;
|
||||
|
@ -4473,6 +4474,7 @@ static my_bool setup_one_fetch_function(MYSQL_BIND *param, MYSQL_FIELD *field)
|
|||
case MYSQL_TYPE_VAR_STRING:
|
||||
case MYSQL_TYPE_STRING:
|
||||
case MYSQL_TYPE_BIT:
|
||||
case MYSQL_TYPE_NEWDATE:
|
||||
param->skip_result= skip_result_string;
|
||||
break;
|
||||
default:
|
||||
|
|
46
mysql-test/include/gis_keys.inc
Normal file
46
mysql-test/include/gis_keys.inc
Normal file
|
@ -0,0 +1,46 @@
|
|||
--source include/have_geometry.inc
|
||||
|
||||
#
|
||||
# Spatial objects with keys
|
||||
#
|
||||
|
||||
#
|
||||
# Bug #30825: Problems when putting a non-spatial index on a GIS column
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (p POINT);
|
||||
CREATE TABLE t2 (p POINT, INDEX(p));
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
|
||||
-- no index, returns 1 as expected
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
-- with index, returns 1 as expected
|
||||
-- EXPLAIN shows that the index is not used though
|
||||
-- due to the "most rows covered anyway, so a scan is more effective" rule
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
-- adding another row to the table so that
|
||||
-- the "most rows covered" rule doesn't kick in anymore
|
||||
-- now EXPLAIN shows the index used on the table
|
||||
-- and we're getting the wrong result again
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo End of 5.0 tests
|
|
@ -29,6 +29,7 @@ eval SET SESSION STORAGE_ENGINE = $engine_type;
|
|||
|
||||
--disable_warnings
|
||||
drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4;
|
||||
drop procedure if exists p1;
|
||||
--enable_warnings
|
||||
|
||||
|
||||
|
@ -1147,6 +1148,129 @@ select if(@a=@b,"ok","wrong");
|
|||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #31310: Locked rows silently skipped in read-committed isolation level.
|
||||
#
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
SET SESSION AUTOCOMMIT = 0;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
--echo # Switch to connection con1
|
||||
connection con1;
|
||||
|
||||
eval
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(256))
|
||||
ENGINE = $engine_type;
|
||||
INSERT INTO t1 VALUES (1,2);
|
||||
|
||||
--#echo 1. test for locking:
|
||||
|
||||
BEGIN;
|
||||
--enable_info
|
||||
UPDATE t1 SET b = 12 WHERE a = 1;
|
||||
--disable_info
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con2
|
||||
connection con2;
|
||||
|
||||
--enable_info
|
||||
--disable_abort_on_error
|
||||
--error ER_LOCK_WAIT_TIMEOUT
|
||||
UPDATE t1 SET b = 21 WHERE a = 1;
|
||||
--disable_info
|
||||
|
||||
--echo # Switch to connection con1
|
||||
connection con1;
|
||||
SELECT * FROM t1;
|
||||
ROLLBACK;
|
||||
|
||||
--echo # 2. test for serialized update:
|
||||
|
||||
CREATE TABLE t2 (a INT);
|
||||
|
||||
TRUNCATE t1;
|
||||
INSERT INTO t1 VALUES (1,'init');
|
||||
|
||||
DELIMITER |;
|
||||
CREATE PROCEDURE p1()
|
||||
BEGIN
|
||||
UPDATE t1 SET b = CONCAT(b, '+con2') WHERE a = 1;
|
||||
INSERT INTO t2 VALUES ();
|
||||
END|
|
||||
DELIMITER ;|
|
||||
|
||||
BEGIN;
|
||||
--enable_info
|
||||
UPDATE t1 SET b = CONCAT(b, '+con1') WHERE a = 1;
|
||||
--disable_info
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con2
|
||||
connection con2;
|
||||
|
||||
--send CALL p1;
|
||||
|
||||
--echo # Switch to connection con1
|
||||
connection con1;
|
||||
SELECT * FROM t1;
|
||||
COMMIT;
|
||||
|
||||
let $bug31310 = 1;
|
||||
while ($bug31310)
|
||||
{
|
||||
let $bug31310= `SELECT 1 - COUNT(*) FROM t2`;
|
||||
}
|
||||
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con2
|
||||
connection con2;
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con1
|
||||
connection con1;
|
||||
|
||||
--echo # 3. test for updated key column:
|
||||
|
||||
TRUNCATE t1;
|
||||
TRUNCATE t2;
|
||||
|
||||
INSERT INTO t1 VALUES (1,'init');
|
||||
|
||||
BEGIN;
|
||||
--enable_info
|
||||
UPDATE t1 SET a = 2, b = CONCAT(b, '+con1') WHERE a = 1;
|
||||
--disable_info
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con2
|
||||
connection con2;
|
||||
|
||||
--send CALL p1;
|
||||
|
||||
--echo # Switch to connection con1
|
||||
connection con1;
|
||||
SELECT * FROM t1;
|
||||
COMMIT;
|
||||
|
||||
let $bug31310 = 1;
|
||||
while ($bug31310)
|
||||
{
|
||||
let $bug31310= `SELECT 1 - COUNT(*) FROM t2`;
|
||||
}
|
||||
|
||||
SELECT * FROM t1;
|
||||
|
||||
--echo # Switch to connection con2
|
||||
connection con2;
|
||||
SELECT * FROM t1;
|
||||
|
||||
connection default;
|
||||
disconnect con1;
|
||||
disconnect con2;
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1, t2;
|
||||
# Bug#30747 Create table with identical constraint names behaves incorrectly
|
||||
#
|
||||
|
||||
|
|
|
@ -1019,12 +1019,14 @@ sub command_line_setup () {
|
|||
{
|
||||
$opt_testcase_timeout= $default_testcase_timeout;
|
||||
$opt_testcase_timeout*= 10 if $opt_valgrind;
|
||||
$opt_testcase_timeout*= 10 if ($opt_debug and $glob_win32);
|
||||
}
|
||||
|
||||
if ( ! $opt_suite_timeout )
|
||||
{
|
||||
$opt_suite_timeout= $default_suite_timeout;
|
||||
$opt_suite_timeout*= 6 if $opt_valgrind;
|
||||
$opt_suite_timeout*= 6 if ($opt_debug and $glob_win32);
|
||||
}
|
||||
|
||||
if ( ! $opt_user )
|
||||
|
|
|
@ -611,11 +611,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t3 index period period 4 NULL 1
|
||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t1 index period period 4 NULL 1
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
select period from t1;
|
||||
period
|
||||
|
|
|
@ -438,7 +438,7 @@ explain t2;
|
|||
Field Type Null Key Default Extra
|
||||
a int(11) YES NULL
|
||||
b bigint(11) NO 0
|
||||
c bigint(11) NO 0
|
||||
c bigint(11) unsigned NO 0
|
||||
d date YES NULL
|
||||
e varchar(1) NO
|
||||
f datetime YES NULL
|
||||
|
|
|
@ -4929,7 +4929,7 @@ Note 1051 Unknown table 't2'
|
|||
Note 1051 Unknown table 't3'
|
||||
Note 1051 Unknown table 't4'
|
||||
DROP TABLE IF EXISTS bug13894;
|
||||
CREATE TABLE bug13894 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE bug13894 ( val integer not null ) ENGINE = CSV;
|
||||
INSERT INTO bug13894 VALUES (5);
|
||||
INSERT INTO bug13894 VALUES (10);
|
||||
INSERT INTO bug13894 VALUES (11);
|
||||
|
@ -4949,7 +4949,7 @@ val
|
|||
11
|
||||
DROP TABLE bug13894;
|
||||
DROP TABLE IF EXISTS bug14672;
|
||||
CREATE TABLE bug14672 (c1 integer) engine = CSV;
|
||||
CREATE TABLE bug14672 (c1 integer not null) engine = CSV;
|
||||
INSERT INTO bug14672 VALUES (1), (2), (3);
|
||||
SELECT * FROM bug14672;
|
||||
c1
|
||||
|
@ -4975,7 +4975,7 @@ c1
|
|||
4
|
||||
5
|
||||
DROP TABLE bug14672;
|
||||
CREATE TABLE test_concurrent_insert ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_concurrent_insert ( val integer not null ) ENGINE = CSV;
|
||||
LOCK TABLES test_concurrent_insert READ LOCAL;
|
||||
INSERT INTO test_concurrent_insert VALUES (1);
|
||||
SELECT * FROM test_concurrent_insert;
|
||||
|
@ -4992,7 +4992,7 @@ val
|
|||
2
|
||||
UNLOCK TABLES;
|
||||
DROP TABLE test_concurrent_insert;
|
||||
CREATE TABLE test_repair_table ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table ( val integer not null ) ENGINE = CSV;
|
||||
CHECK TABLE test_repair_table;
|
||||
Table Op Msg_type Msg_text
|
||||
test.test_repair_table check status OK
|
||||
|
@ -5000,7 +5000,7 @@ REPAIR TABLE test_repair_table;
|
|||
Table Op Msg_type Msg_text
|
||||
test.test_repair_table repair status OK
|
||||
DROP TABLE test_repair_table;
|
||||
CREATE TABLE test_repair_table2 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table2 ( val integer not null ) ENGINE = CSV;
|
||||
SELECT * from test_repair_table2;
|
||||
val
|
||||
Warnings:
|
||||
|
@ -5011,7 +5011,7 @@ CHECK TABLE test_repair_table2;
|
|||
Table Op Msg_type Msg_text
|
||||
test.test_repair_table2 check status OK
|
||||
DROP TABLE test_repair_table2;
|
||||
CREATE TABLE test_repair_table3 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table3 ( val integer not null ) ENGINE = CSV;
|
||||
CHECK TABLE test_repair_table3;
|
||||
Table Op Msg_type Msg_text
|
||||
test.test_repair_table3 check error Corrupt
|
||||
|
@ -5114,7 +5114,7 @@ num magic_no company_name founded
|
|||
1 0102 CORRECT 1876
|
||||
1 0102 CORRECT2 1876
|
||||
DROP TABLE test_repair_table5;
|
||||
create table t1 (a int) engine=csv;
|
||||
create table t1 (a int not null) engine=csv;
|
||||
insert t1 values (1);
|
||||
delete from t1;
|
||||
affected rows: 1
|
||||
|
@ -5138,7 +5138,7 @@ insert t1 values (1),(2),(3),(4),(5);
|
|||
truncate table t1;
|
||||
affected rows: 0
|
||||
drop table t1;
|
||||
create table t1 (v varchar(32));
|
||||
create table t1 (v varchar(32) not null);
|
||||
insert into t1 values ('def'),('abc'),('hij'),('3r4f');
|
||||
select * from t1;
|
||||
v
|
||||
|
@ -5193,8 +5193,8 @@ select * from t1 where i between 2 and 4 and v in ('def','3r4f','lmn');
|
|||
i v
|
||||
4 3r4f
|
||||
drop table t1;
|
||||
create table bug15205 (val int(11) default null) engine=csv;
|
||||
create table bug15205_2 (val int(11) default null) engine=csv;
|
||||
create table bug15205 (val int(11) not null) engine=csv;
|
||||
create table bug15205_2 (val int(11) not null) engine=csv;
|
||||
select * from bug15205;
|
||||
ERROR HY000: Can't get stat of './test/bug15205.CSV' (Errcode: 2)
|
||||
select * from bug15205_2;
|
||||
|
@ -5205,8 +5205,8 @@ drop table bug15205;
|
|||
drop table bug15205_2;
|
||||
set names latin1;
|
||||
create table t1 (
|
||||
c varchar(1),
|
||||
name varchar(64)
|
||||
c varchar(1) not null,
|
||||
name varchar(64) not null
|
||||
) character set latin1 engine=csv;
|
||||
insert into t1 values (0xC0,'LATIN CAPITAL LETTER A WITH GRAVE');
|
||||
insert into t1 values (0xE0,'LATIN SMALL LETTER A WITH GRAVE');
|
||||
|
@ -5224,9 +5224,9 @@ FE
|
|||
FF ÿ LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
drop table t1;
|
||||
End of 5.0 tests
|
||||
create table bug22080_1 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_2 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_3 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_1 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
create table bug22080_2 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
create table bug22080_3 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
insert into bug22080_1 values(1,'string');
|
||||
insert into bug22080_1 values(2,'string');
|
||||
insert into bug22080_1 values(3,'string');
|
||||
|
@ -5237,7 +5237,7 @@ check table bug22080_3;
|
|||
Table Op Msg_type Msg_text
|
||||
test.bug22080_3 check error Corrupt
|
||||
drop tables bug22080_1,bug22080_2,bug22080_3;
|
||||
create table float_test (id float,string varchar(64)) Engine=CSV;
|
||||
create table float_test (id float not null,string varchar(64) not null) Engine=CSV;
|
||||
insert into float_test values(1.0,'string');
|
||||
insert into float_test values(2.23,'serg.g');
|
||||
insert into float_test values(0.03,'string');
|
||||
|
@ -5254,14 +5254,14 @@ id string
|
|||
9.67 string
|
||||
drop table float_test;
|
||||
CREATE TABLE `bug21328` (
|
||||
`col1` int(11) DEFAULT NULL,
|
||||
`col2` int(11) DEFAULT NULL,
|
||||
`col3` int(11) DEFAULT NULL
|
||||
`col1` int(11) NOT NULL,
|
||||
`col2` int(11) NOT NULL,
|
||||
`col3` int(11) NOT NULL
|
||||
) ENGINE=CSV;
|
||||
insert into bug21328 values (1,NULL,NULL);
|
||||
insert into bug21328 values (1,0,0);
|
||||
alter table bug21328 engine=myisam;
|
||||
drop table bug21328;
|
||||
create table t1(a blob, b int) engine=csv;
|
||||
create table t1(a blob not null, b int not null) engine=csv;
|
||||
insert into t1 values('a', 1);
|
||||
flush tables;
|
||||
update t1 set b=2;
|
||||
|
@ -5269,7 +5269,7 @@ select * from t1;
|
|||
a b
|
||||
a 2
|
||||
drop table t1;
|
||||
create table t1(a int) engine=csv;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values(-1), (-123.34), (2), (-23);
|
||||
select * from t1;
|
||||
a
|
||||
|
@ -5281,7 +5281,7 @@ check table t1;
|
|||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
drop table t1;
|
||||
create table t1(a int, b int) engine=csv;
|
||||
create table t1(a int not null, b int not null) engine=csv;
|
||||
repair table t1;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t1 repair Warning Data truncated for column 'a' at row 5
|
||||
|
@ -5299,7 +5299,7 @@ check table t1;
|
|||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
drop table t1;
|
||||
create table t1(a int) engine=csv;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values (0), (1), (2);
|
||||
delete from t1 limit 2;
|
||||
check table t1;
|
||||
|
@ -5315,4 +5315,62 @@ test.t1 check status OK
|
|||
select * from t1;
|
||||
a
|
||||
drop table t1;
|
||||
create table t1(a datetime not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select * from t1;
|
||||
a
|
||||
0000-00-00 00:00:00
|
||||
drop table t1;
|
||||
create table t1(a set('foo','bar') not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select * from t1;
|
||||
a
|
||||
|
||||
drop table t1;
|
||||
create table t1(a varchar(32) not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select * from t1;
|
||||
a
|
||||
|
||||
drop table t1;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select * from t1;
|
||||
a
|
||||
0
|
||||
drop table t1;
|
||||
create table t1(a blob not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select * from t1;
|
||||
a
|
||||
|
||||
drop table t1;
|
||||
create table t1(a bit(1) not null) engine=csv;
|
||||
insert into t1 values();
|
||||
Warnings:
|
||||
Warning 1364 Field 'a' doesn't have a default value
|
||||
select BIN(a) from t1;
|
||||
BIN(a)
|
||||
0
|
||||
drop table t1;
|
||||
create table t1(a enum('foo','bar') default null) engine=csv;
|
||||
ERROR HY000: Can't create table 'test.t1' (errno: -1)
|
||||
create table t1(a enum('foo','bar') default 'foo') engine=csv;
|
||||
ERROR HY000: Can't create table 'test.t1' (errno: -1)
|
||||
create table t1(a enum('foo','bar') default 'foo' not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
a
|
||||
foo
|
||||
drop table t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -922,4 +922,7 @@ ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_gen
|
|||
select * from t1 where a=if(b<10,_ucs2 0x0062,_ucs2 0x00C0);
|
||||
ERROR HY000: Illegal mix of collations (ascii_general_ci,IMPLICIT) and (ucs2_general_ci,COERCIBLE) for operation '='
|
||||
drop table t1;
|
||||
select hex(char(0x41 using ucs2));
|
||||
hex(char(0x41 using ucs2))
|
||||
0041
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -1538,12 +1538,12 @@ char(53647 using utf8)
|
|||
я
|
||||
select char(0xff,0x8f using utf8);
|
||||
char(0xff,0x8f using utf8)
|
||||
<EFBFBD><EFBFBD>
|
||||
|
||||
Warnings:
|
||||
Warning 1300 Invalid utf8 character string: 'FF8F'
|
||||
select convert(char(0xff,0x8f) using utf8);
|
||||
convert(char(0xff,0x8f) using utf8)
|
||||
<EFBFBD><EFBFBD>
|
||||
|
||||
Warnings:
|
||||
Warning 1300 Invalid utf8 character string: 'FF8F'
|
||||
set sql_mode=traditional;
|
||||
|
@ -1730,3 +1730,41 @@ i
|
|||
1
|
||||
н1234567890
|
||||
DROP TABLE t1, t2;
|
||||
set sql_mode=traditional;
|
||||
select hex(char(0xFF using utf8));
|
||||
hex(char(0xFF using utf8))
|
||||
NULL
|
||||
Warnings:
|
||||
Error 1300 Invalid utf8 character string: 'FF'
|
||||
select hex(convert(0xFF using utf8));
|
||||
hex(convert(0xFF using utf8))
|
||||
NULL
|
||||
Warnings:
|
||||
Error 1300 Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 0x616263FF);
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 X'616263FF');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 B'001111111111');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select (_utf8 X'616263FF');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
set sql_mode=default;
|
||||
select hex(char(0xFF using utf8));
|
||||
hex(char(0xFF using utf8))
|
||||
|
||||
Warnings:
|
||||
Warning 1300 Invalid utf8 character string: 'FF'
|
||||
select hex(convert(0xFF using utf8));
|
||||
hex(convert(0xFF using utf8))
|
||||
|
||||
Warnings:
|
||||
Warning 1300 Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 0x616263FF);
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 X'616263FF');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select hex(_utf8 B'001111111111');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
select (_utf8 X'616263FF');
|
||||
ERROR HY000: Invalid utf8 character string: 'FF'
|
||||
|
|
|
@ -478,7 +478,7 @@ str_to_date(a,b)
|
|||
create table t2 select str_to_date(a,b) from t1;
|
||||
describe t2;
|
||||
Field Type Null Key Default Extra
|
||||
str_to_date(a,b) binary(29) YES NULL
|
||||
str_to_date(a,b) datetime YES NULL
|
||||
select str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S.%f") as f1,
|
||||
str_to_date("2003-01-02 10:11:12.0012", "%Y-%m-%d %H:%i:%S") as f2,
|
||||
str_to_date("2003-01-02", "%Y-%m-%d") as f3,
|
||||
|
|
|
@ -29,7 +29,8 @@ v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
|
|||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
NULL mysqltest1 v1 SELECT 'ÔÅÓÔ' AS c1, ËÏÌ AS c2 NONE YES root@localhost DEFINER koi8r koi8r_general_ci
|
||||
NULL mysqltest1 v1 SELECT 'ÔÅÓÔ' AS c1, ËÏÌ AS c2
|
||||
FROM t1 NONE YES root@localhost DEFINER koi8r koi8r_general_ci
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
|
@ -68,7 +69,8 @@ v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
|
|||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
NULL mysqltest1 v1 SELECT 'ÔÅÓÔ' AS c1, ËÏÌ AS c2 NONE YES root@localhost DEFINER koi8r koi8r_general_ci
|
||||
NULL mysqltest1 v1 SELECT 'ÔÅÓÔ' AS c1, ËÏÌ AS c2
|
||||
FROM t1 NONE YES root@localhost DEFINER koi8r koi8r_general_ci
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
|
|
|
@ -29,7 +29,8 @@ v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
|
|||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
NULL mysqltest1 v1 SELECT 'тест' AS c1, кол AS c2 NONE YES root@localhost DEFINER utf8 utf8_general_ci
|
||||
NULL mysqltest1 v1 SELECT 'тест' AS c1, кол AS c2
|
||||
FROM t1 NONE YES root@localhost DEFINER utf8 utf8_general_ci
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
|
@ -68,7 +69,8 @@ v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VI
|
|||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v1'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
NULL mysqltest1 v1 SELECT 'тест' AS c1, кол AS c2 NONE YES root@localhost DEFINER utf8 utf8_general_ci
|
||||
NULL mysqltest1 v1 SELECT 'тест' AS c1, кол AS c2
|
||||
FROM t1 NONE YES root@localhost DEFINER utf8 utf8_general_ci
|
||||
|
||||
SELECT * FROM INFORMATION_SCHEMA.VIEWS WHERE table_name = 'v2'|
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
|
|
|
@ -271,3 +271,11 @@ a
|
|||
DROP TABLE t1, t2;
|
||||
DROP DATABASE db1;
|
||||
DROP DATABASE db2;
|
||||
CREATE FUNCTION f1() RETURNS INT RETURN 1;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (0);
|
||||
DELETE FROM t1 ORDER BY (f1(10)) LIMIT 1;
|
||||
ERROR 42000: Incorrect number of arguments for FUNCTION test.f1; expected 0, got 1
|
||||
DROP TABLE t1;
|
||||
DROP FUNCTION f1;
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -326,7 +326,8 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
2 DERIVED t2 index PRIMARY PRIMARY 4 NULL 2 Using where; Using index
|
||||
drop table t2;
|
||||
CREATE TABLE `t1` ( `itemid` int(11) NOT NULL default '0', `grpid` varchar(15) NOT NULL default '', `vendor` int(11) NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', `price` decimal(12,2) NOT NULL default '0.00', PRIMARY KEY (`itemid`,`grpid`,`vendor`,`date_`), KEY `itemid` (`itemid`,`vendor`), KEY `itemid_2` (`itemid`,`date_`));
|
||||
insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);
|
||||
insert into t1 values (128, 'rozn', 2, curdate(), 10),
|
||||
(128, 'rozn', 1, curdate(), 10);
|
||||
SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;
|
||||
min max avg
|
||||
10.00 10.00 10
|
||||
|
|
|
@ -1368,4 +1368,14 @@ SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1 and b > 1;
|
|||
MIN(a) MIN(b)
|
||||
1 2
|
||||
DROP TABLE t1, t2, t3, t4, t5;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 values (),(),();
|
||||
SELECT (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) ) as x FROM t1
|
||||
GROUP BY x;
|
||||
x
|
||||
0
|
||||
SELECT 1 FROM t1 GROUP BY (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) );
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -564,4 +564,9 @@ explain select f2 from t2 where f2 in (1,'b');
|
|||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 index t2f2 t2f2 5 NULL 3 Using where; Using index
|
||||
drop table t1, t2;
|
||||
create table t1 (a time, key(a));
|
||||
insert into t1 values (),(),(),(),(),(),(),(),(),();
|
||||
select a from t1 where a not in (a,a,a) group by a;
|
||||
a
|
||||
drop table t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -369,4 +369,42 @@ mod(5, cast(-2 as unsigned)) mod(5, 18446744073709551614) mod(5, -2)
|
|||
select pow(cast(-2 as unsigned), 5), pow(18446744073709551614, 5), pow(-2, 5);
|
||||
pow(cast(-2 as unsigned), 5) pow(18446744073709551614, 5) pow(-2, 5)
|
||||
2.1359870359209e+96 2.1359870359209e+96 -32
|
||||
CREATE TABLE t1 (a timestamp, b varchar(20), c bit(1));
|
||||
INSERT INTO t1 VALUES('1998-09-23', 'str1', 1), ('2003-03-25', 'str2', 0);
|
||||
SELECT a DIV 900 y FROM t1 GROUP BY y;
|
||||
y
|
||||
22201025555
|
||||
22255916666
|
||||
SELECT DISTINCT a DIV 900 y FROM t1;
|
||||
y
|
||||
22201025555
|
||||
22255916666
|
||||
SELECT b DIV 900 y FROM t1 GROUP BY y;
|
||||
y
|
||||
0
|
||||
SELECT c DIV 900 y FROM t1 GROUP BY y;
|
||||
y
|
||||
0
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a LONGBLOB);
|
||||
INSERT INTO t1 VALUES('1'),('2'),('3');
|
||||
SELECT DISTINCT (a DIV 254576881) FROM t1;
|
||||
(a DIV 254576881)
|
||||
0
|
||||
SELECT (a DIV 254576881) FROM t1 UNION ALL
|
||||
SELECT (a DIV 254576881) FROM t1;
|
||||
(a DIV 254576881)
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
0
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1(a SET('a','b','c'));
|
||||
INSERT INTO t1 VALUES ('a');
|
||||
SELECT a DIV 2 FROM t1 UNION SELECT a DIV 2 FROM t1;
|
||||
a DIV 2
|
||||
0
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -190,6 +190,28 @@ ERROR 21000: Operand should contain 1 column(s)
|
|||
drop table table_26093;
|
||||
drop function func_26093_a;
|
||||
drop function func_26093_b;
|
||||
SELECT NAME_CONST('test', NOW());
|
||||
ERROR HY000: Incorrect arguments to NAME_CONST
|
||||
SELECT NAME_CONST('test', UPPER('test'));
|
||||
ERROR HY000: Incorrect arguments to NAME_CONST
|
||||
SELECT NAME_CONST('test', NULL);
|
||||
test
|
||||
NULL
|
||||
SELECT NAME_CONST('test', 1);
|
||||
test
|
||||
1
|
||||
SELECT NAME_CONST('test', -1);
|
||||
test
|
||||
-1
|
||||
SELECT NAME_CONST('test', 1.0);
|
||||
test
|
||||
1.0
|
||||
SELECT NAME_CONST('test', -1.0);
|
||||
test
|
||||
-1.0
|
||||
SELECT NAME_CONST('test', 'test');
|
||||
test
|
||||
test
|
||||
End of 5.0 tests
|
||||
select connection_id() > 0;
|
||||
connection_id() > 0
|
||||
|
|
|
@ -98,3 +98,8 @@ R2
|
|||
R3
|
||||
deallocate prepare stmt1;
|
||||
drop table t1;
|
||||
End of 4.1 tests
|
||||
SELECT 1 REGEXP NULL;
|
||||
1 REGEXP NULL
|
||||
NULL
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -199,7 +199,7 @@ f2 datetime YES NULL
|
|||
f3 time YES NULL
|
||||
f4 time YES NULL
|
||||
f5 time YES NULL
|
||||
f6 time NO 00:00:00
|
||||
f6 time YES NULL
|
||||
f7 datetime YES NULL
|
||||
f8 date YES NULL
|
||||
f9 time YES NULL
|
||||
|
|
|
@ -726,7 +726,7 @@ t1 CREATE TABLE `t1` (
|
|||
`oct(130)` varchar(64) NOT NULL DEFAULT '',
|
||||
`conv(130,16,10)` varchar(64) NOT NULL DEFAULT '',
|
||||
`hex(130)` varchar(6) NOT NULL DEFAULT '',
|
||||
`char(130)` varbinary(1) NOT NULL DEFAULT '',
|
||||
`char(130)` varbinary(4) NOT NULL DEFAULT '',
|
||||
`format(130,10)` varchar(4) NOT NULL DEFAULT '',
|
||||
`left(_latin2'a',1)` varchar(1) CHARACTER SET latin2 NOT NULL DEFAULT '',
|
||||
`right(_latin2'a',1)` varchar(1) CHARACTER SET latin2 NOT NULL DEFAULT '',
|
||||
|
@ -2486,4 +2486,14 @@ SUBSTR(a,1,len)
|
|||
ba
|
||||
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 AS SELECT CHAR(0x414243) as c1;
|
||||
SELECT HEX(c1) from t1;
|
||||
HEX(c1)
|
||||
414243
|
||||
DROP TABLE t1;
|
||||
CREATE VIEW v1 AS SELECT CHAR(0x414243) as c1;
|
||||
SELECT HEX(c1) from v1;
|
||||
HEX(c1)
|
||||
414243
|
||||
DROP VIEW v1;
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -1027,6 +1027,15 @@ fmtddate field2
|
|||
Sep-4 12:00AM abcd
|
||||
DROP TABLE testBug8868;
|
||||
SET NAMES DEFAULT;
|
||||
CREATE TABLE t1 (
|
||||
a TIMESTAMP
|
||||
);
|
||||
INSERT INTO t1 VALUES (now()), (now());
|
||||
SELECT 1 FROM t1 ORDER BY MAKETIME(1, 1, a);
|
||||
1
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H)
|
||||
union
|
||||
(select time_format(timediff(now(), DATE_SUB(now(),INTERVAL 5 DAY)),'%H') As H);
|
||||
|
|
|
@ -167,7 +167,7 @@ count(*)
|
|||
150
|
||||
EXPLAIN SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range g g 32 NULL 8 Using where
|
||||
1 SIMPLE t1 range g g 34 NULL 8 Using where
|
||||
SELECT fid, AsText(g) FROM t1 WHERE Within(g, GeomFromText('Polygon((140 140,160 140,160 160,140 160,140 140))'));
|
||||
fid AsText(g)
|
||||
1 LINESTRING(150 150,150 150)
|
||||
|
@ -301,7 +301,7 @@ count(*)
|
|||
EXPLAIN SELECT fid, AsText(g) FROM t2 WHERE Within(g,
|
||||
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 range g g 32 NULL 4 Using where
|
||||
1 SIMPLE t2 range g g 34 NULL 4 Using where
|
||||
SELECT fid, AsText(g) FROM t2 WHERE Within(g,
|
||||
GeomFromText('Polygon((40 40,60 40,60 60,40 60,40 40))'));
|
||||
fid AsText(g)
|
||||
|
@ -1425,6 +1425,37 @@ CHECK TABLE t1 EXTENDED;
|
|||
Table Op Msg_type Msg_text
|
||||
test.t1 check status OK
|
||||
DROP TABLE t1;
|
||||
create table t1 (a geometry not null, spatial index(a));
|
||||
insert into t1 values (PointFromWKB(POINT(1.1517219314031e+164, 131072)));
|
||||
insert into t1 values (PointFromWKB(POINT(9.1248812352444e+192, 2.9740338169556e+284)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.7783097267365e-299, -0)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.49166814624e-154, 2.0880974297595e-53)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.0917382598702e+149, 1.2024538023802e+111)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0349165139404e+236, 2.9993936277913e-241)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.5243548967072e-29, 1.2024538023802e+111)));
|
||||
insert into t1 values (PointFromWKB(POINT(0, 6.9835074892995e-251)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0880974297595e-53, 3.1050361846014e+231)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.8728483499323e-188, 2.4600631144627e+260)));
|
||||
insert into t1 values (PointFromWKB(POINT(3.0517578125e-05, 2.0349165139404e+236)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.1517219314031e+164, 1.1818212630766e-125)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.481040258324e-265, 5.7766220027675e-275)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0880974297595e-53, 2.5243548967072e-29)));
|
||||
insert into t1 values (PointFromWKB(POINT(5.7766220027675e-275, 9.9464647281957e+86)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.2181357552967e+130, 3.7857669957337e-270)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.5767114681874e-246, 3.6893488147419e+19)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.5767114681874e-246, 3.7537584144024e+255)));
|
||||
insert into t1 values (PointFromWKB(POINT(3.7857669957337e-270, 1.8033161362863e-130)));
|
||||
insert into t1 values (PointFromWKB(POINT(0, 5.8774717541114e-39)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.1517219314031e+164, 2.2761049594727e-159)));
|
||||
insert into t1 values (PointFromWKB(POINT(6.243497100632e+144, 3.7857669957337e-270)));
|
||||
insert into t1 values (PointFromWKB(POINT(3.7857669957337e-270, 2.6355494858076e-82)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0349165139404e+236, 3.8518598887745e-34)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.6566128730774e-10, 2.0880974297595e-53)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0880974297595e-53, 1.8827498946116e-183)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.8033161362863e-130, 9.1248812352444e+192)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.7783097267365e-299, 2.2761049594727e-159)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.94906280228e+289, 1.2338789709327e-178)));
|
||||
drop table t1;
|
||||
CREATE TABLE t1(foo GEOMETRY NOT NULL, SPATIAL INDEX(foo) );
|
||||
INSERT INTO t1(foo) VALUES (NULL);
|
||||
ERROR 23000: Column 'foo' cannot be null
|
||||
|
|
|
@ -736,6 +736,12 @@ SELECT * FROM t1;
|
|||
a
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE `t1` ( `col9` set('a'), `col89` date);
|
||||
INSERT INTO `t1` VALUES ('','0000-00-00');
|
||||
select geomfromtext(col9,col89) as a from t1;
|
||||
a
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
End of 4.1 tests
|
||||
create table t1 (s1 geometry not null,s2 char(100));
|
||||
create trigger t1_bu before update on t1 for each row set new.s1 = null;
|
||||
|
@ -889,6 +895,45 @@ drop table t1, t2;
|
|||
SELECT 1;
|
||||
1
|
||||
1
|
||||
CREATE TABLE t1 (p POINT);
|
||||
CREATE TABLE t2 (p POINT, INDEX(p));
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
1
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 system p NULL NULL NULL 1
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
1
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref p p 28 const 1 Using where
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.0 tests
|
||||
End of 5.0 tests
|
||||
create table t1 (f1 tinyint(1), f2 char(1), f3 varchar(1), f4 geometry, f5 datetime);
|
||||
create view v1 as select * from t1;
|
||||
|
|
|
@ -422,4 +422,22 @@ revoke all privileges, grant option from mysqltest_1@localhost;
|
|||
revoke all privileges, grant option from mysqltest_2@localhost;
|
||||
drop user mysqltest_1@localhost;
|
||||
drop user mysqltest_2@localhost;
|
||||
CREATE DATABASE db1;
|
||||
USE db1;
|
||||
CREATE TABLE t1 (a INT, b INT);
|
||||
INSERT INTO t1 VALUES (1,1),(2,2);
|
||||
CREATE TABLE t2 (b INT, c INT);
|
||||
INSERT INTO t2 VALUES (1,100),(2,200);
|
||||
GRANT SELECT ON t1 TO mysqltest1@localhost;
|
||||
GRANT SELECT (b) ON t2 TO mysqltest1@localhost;
|
||||
USE db1;
|
||||
SELECT c FROM t2;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
|
||||
SELECT * FROM t2;
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
|
||||
SELECT * FROM t1 JOIN t2 USING (b);
|
||||
ERROR 42000: SELECT command denied to user 'mysqltest1'@'localhost' for column 'c' in table 't2'
|
||||
DROP TABLE db1.t1, db1.t2;
|
||||
DROP USER mysqltest1@localhost;
|
||||
DROP DATABASE db1;
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -1093,10 +1093,156 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t1 ALL NULL NULL NULL NULL 144
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index; Using filesort
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index; Using filesort
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 144 Using index
|
||||
SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
28
|
||||
29
|
||||
30
|
||||
31
|
||||
32
|
||||
33
|
||||
34
|
||||
35
|
||||
36
|
||||
37
|
||||
38
|
||||
39
|
||||
40
|
||||
41
|
||||
42
|
||||
43
|
||||
44
|
||||
45
|
||||
46
|
||||
47
|
||||
48
|
||||
49
|
||||
50
|
||||
51
|
||||
52
|
||||
53
|
||||
54
|
||||
55
|
||||
56
|
||||
57
|
||||
58
|
||||
59
|
||||
60
|
||||
61
|
||||
62
|
||||
63
|
||||
64
|
||||
65
|
||||
66
|
||||
67
|
||||
68
|
||||
69
|
||||
70
|
||||
71
|
||||
72
|
||||
73
|
||||
74
|
||||
75
|
||||
76
|
||||
77
|
||||
78
|
||||
79
|
||||
80
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
||||
85
|
||||
86
|
||||
87
|
||||
88
|
||||
89
|
||||
90
|
||||
91
|
||||
92
|
||||
93
|
||||
94
|
||||
95
|
||||
96
|
||||
97
|
||||
98
|
||||
99
|
||||
100
|
||||
101
|
||||
102
|
||||
103
|
||||
104
|
||||
105
|
||||
106
|
||||
107
|
||||
108
|
||||
109
|
||||
110
|
||||
111
|
||||
112
|
||||
113
|
||||
114
|
||||
115
|
||||
116
|
||||
117
|
||||
118
|
||||
119
|
||||
120
|
||||
121
|
||||
122
|
||||
123
|
||||
124
|
||||
125
|
||||
126
|
||||
127
|
||||
128
|
||||
129
|
||||
130
|
||||
131
|
||||
132
|
||||
133
|
||||
134
|
||||
135
|
||||
136
|
||||
137
|
||||
138
|
||||
139
|
||||
140
|
||||
141
|
||||
142
|
||||
143
|
||||
144
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY)
|
||||
IGNORE INDEX FOR GROUP BY (i2) GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
|
|
|
@ -307,6 +307,13 @@ UNIQUE USING BTREE(c1)
|
|||
) ENGINE= MEMORY DEFAULT CHARSET= utf8;
|
||||
INSERT INTO t1 VALUES('1'), ('2');
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT, KEY USING BTREE(a)) ENGINE=MEMORY;
|
||||
INSERT INTO t1 VALUES(1),(2),(2);
|
||||
DELETE FROM t1 WHERE a=2;
|
||||
SELECT * FROM t1;
|
||||
a
|
||||
1
|
||||
DROP TABLE t1;
|
||||
End of 4.1 tests
|
||||
CREATE TABLE t1(val INT, KEY USING BTREE(val)) ENGINE=memory;
|
||||
INSERT INTO t1 VALUES(0);
|
||||
|
|
|
@ -387,10 +387,14 @@ Table Non_unique Key_name Seq_in_index Column_name Collation Cardinality Sub_par
|
|||
select * from information_schema.views where TABLE_NAME like "v%";
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
NULL test v0 select schema_name from information_schema.schemata NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v1 select table_name from information_schema.tables NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v2 select column_name from information_schema.columns NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v3 select CHARACTER_SET_NAME from information_schema.character_sets NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v4 select COLLATION_NAME from information_schema.collations NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v1 select table_name from information_schema.tables
|
||||
where table_name="v1" NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v2 select column_name from information_schema.columns
|
||||
where table_name="v2" NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v3 select CHARACTER_SET_NAME from information_schema.character_sets
|
||||
where CHARACTER_SET_NAME like "latin1%" NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
NULL test v4 select COLLATION_NAME from information_schema.collations
|
||||
where COLLATION_NAME like "latin1%" NONE NO root@localhost DEFINER latin1 latin1_swedish_ci
|
||||
drop view v0, v1, v2, v3, v4;
|
||||
create table t1 (a int);
|
||||
grant select,update,insert on t1 to mysqltest_1@localhost;
|
||||
|
@ -1466,6 +1470,10 @@ f7 datetime NO NULL
|
|||
f8 datetime YES 2006-01-01 00:00:00
|
||||
drop table t1;
|
||||
End of 5.0 tests.
|
||||
show fields from information_schema.table_names;
|
||||
ERROR 42S02: Unknown table 'table_names' in information_schema
|
||||
show keys from information_schema.table_names;
|
||||
ERROR 42S02: Unknown table 'table_names' in information_schema
|
||||
select * from information_schema.engines WHERE ENGINE="MyISAM";
|
||||
ENGINE SUPPORT COMMENT TRANSACTIONS XA SAVEPOINTS
|
||||
MyISAM DEFAULT Default engine as of MySQL 3.23 with great performance NO NO NO
|
||||
|
@ -1540,4 +1548,60 @@ count(*)
|
|||
select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='' AND TABLE_NAME='nonexisting';
|
||||
count(*)
|
||||
0
|
||||
CREATE VIEW v1
|
||||
AS SELECT *
|
||||
FROM INFORMATION_SCHEMA.TABLES;
|
||||
SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS where TABLE_NAME = 'v1';
|
||||
VIEW_DEFINITION
|
||||
SELECT *
|
||||
FROM INFORMATION_SCHEMA.TABLES
|
||||
DROP VIEW v1;
|
||||
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
|
||||
WHERE SCHEMA_NAME ='information_schema';
|
||||
SCHEMA_NAME
|
||||
information_schema
|
||||
SELECT TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA='mysql' and TABLE_NAME= 'db';
|
||||
TABLE_COLLATION
|
||||
utf8_bin
|
||||
select * from information_schema.columns where table_schema = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
select * from `information_schema`.`COLUMNS` where `TABLE_NAME` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION COLUMN_DEFAULT IS_NULLABLE DATA_TYPE CHARACTER_MAXIMUM_LENGTH CHARACTER_OCTET_LENGTH NUMERIC_PRECISION NUMERIC_SCALE CHARACTER_SET_NAME COLLATION_NAME COLUMN_TYPE COLUMN_KEY EXTRA PRIVILEGES COLUMN_COMMENT
|
||||
select * from `information_schema`.`KEY_COLUMN_USAGE` where `TABLE_SCHEMA` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
select * from `information_schema`.`KEY_COLUMN_USAGE` where `TABLE_NAME` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_CATALOG TABLE_SCHEMA TABLE_NAME COLUMN_NAME ORDINAL_POSITION POSITION_IN_UNIQUE_CONSTRAINT REFERENCED_TABLE_SCHEMA REFERENCED_TABLE_NAME REFERENCED_COLUMN_NAME
|
||||
select * from `information_schema`.`PARTITIONS` where `TABLE_SCHEMA` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
select * from `information_schema`.`PARTITIONS` where `TABLE_NAME` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME PARTITION_NAME SUBPARTITION_NAME PARTITION_ORDINAL_POSITION SUBPARTITION_ORDINAL_POSITION PARTITION_METHOD SUBPARTITION_METHOD PARTITION_EXPRESSION SUBPARTITION_EXPRESSION PARTITION_DESCRIPTION TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE CREATE_TIME UPDATE_TIME CHECK_TIME CHECKSUM PARTITION_COMMENT NODEGROUP TABLESPACE_NAME
|
||||
select * from `information_schema`.`REFERENTIAL_CONSTRAINTS` where `CONSTRAINT_SCHEMA` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME UNIQUE_CONSTRAINT_CATALOG UNIQUE_CONSTRAINT_SCHEMA UNIQUE_CONSTRAINT_NAME MATCH_OPTION UPDATE_RULE DELETE_RULE TABLE_NAME REFERENCED_TABLE_NAME
|
||||
select * from `information_schema`.`REFERENTIAL_CONSTRAINTS` where `TABLE_NAME` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME UNIQUE_CONSTRAINT_CATALOG UNIQUE_CONSTRAINT_SCHEMA UNIQUE_CONSTRAINT_NAME MATCH_OPTION UPDATE_RULE DELETE_RULE TABLE_NAME REFERENCED_TABLE_NAME
|
||||
select * from information_schema.schemata where schema_name = NULL;
|
||||
CATALOG_NAME SCHEMA_NAME DEFAULT_CHARACTER_SET_NAME DEFAULT_COLLATION_NAME SQL_PATH
|
||||
select * from `information_schema`.`STATISTICS` where `TABLE_SCHEMA` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
|
||||
select * from `information_schema`.`STATISTICS` where `TABLE_NAME` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
|
||||
select * from information_schema.tables where table_schema = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
|
||||
select * from information_schema.tables where table_catalog = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
|
||||
select * from information_schema.tables where table_name = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME TABLE_TYPE ENGINE VERSION ROW_FORMAT TABLE_ROWS AVG_ROW_LENGTH DATA_LENGTH MAX_DATA_LENGTH INDEX_LENGTH DATA_FREE AUTO_INCREMENT CREATE_TIME UPDATE_TIME CHECK_TIME TABLE_COLLATION CHECKSUM CREATE_OPTIONS TABLE_COMMENT
|
||||
select * from `information_schema`.`TABLE_CONSTRAINTS` where `TABLE_SCHEMA` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
|
||||
select * from `information_schema`.`TABLE_CONSTRAINTS` where `TABLE_NAME` = NULL;
|
||||
CONSTRAINT_CATALOG CONSTRAINT_SCHEMA CONSTRAINT_NAME TABLE_SCHEMA TABLE_NAME CONSTRAINT_TYPE
|
||||
select * from `information_schema`.`TRIGGERS` where `EVENT_OBJECT_SCHEMA` = NULL;
|
||||
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
|
||||
select * from `information_schema`.`TRIGGERS` where `EVENT_OBJECT_TABLE` = NULL;
|
||||
TRIGGER_CATALOG TRIGGER_SCHEMA TRIGGER_NAME EVENT_MANIPULATION EVENT_OBJECT_CATALOG EVENT_OBJECT_SCHEMA EVENT_OBJECT_TABLE ACTION_ORDER ACTION_CONDITION ACTION_STATEMENT ACTION_ORIENTATION ACTION_TIMING ACTION_REFERENCE_OLD_TABLE ACTION_REFERENCE_NEW_TABLE ACTION_REFERENCE_OLD_ROW ACTION_REFERENCE_NEW_ROW CREATED SQL_MODE DEFINER CHARACTER_SET_CLIENT COLLATION_CONNECTION DATABASE_COLLATION
|
||||
select * from `information_schema`.`VIEWS` where `TABLE_SCHEMA` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
select * from `information_schema`.`VIEWS` where `TABLE_NAME` = NULL;
|
||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME VIEW_DEFINITION CHECK_OPTION IS_UPDATABLE DEFINER SECURITY_TYPE CHARACTER_SET_CLIENT COLLATION_CONNECTION
|
||||
End of 5.1 tests.
|
||||
|
|
|
@ -546,5 +546,44 @@ Overlaps(@horiz1, @point2)
|
|||
0
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests
|
||||
CREATE TABLE t1 (p POINT);
|
||||
CREATE TABLE t2 (p POINT, INDEX(p));
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
1
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref p p 28 const 1 Using where
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
1
|
||||
INSERT INTO t1 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
INSERT INTO t2 VALUES (POINTFROMTEXT('POINT(1 2)'));
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT COUNT(*) FROM t1 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ref p p 28 const 1 Using where
|
||||
SELECT COUNT(*) FROM t2 WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
EXPLAIN
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t2 ALL NULL NULL NULL NULL 2 Using where
|
||||
SELECT COUNT(*) FROM t2 IGNORE INDEX(p) WHERE p=POINTFROMTEXT('POINT(1 2)');
|
||||
COUNT(*)
|
||||
2
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.0 tests
|
||||
create table t1 (g geometry not null, spatial gk(g)) engine=innodb;
|
||||
ERROR HY000: The used table type doesn't support SPATIAL indexes
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
SET SESSION STORAGE_ENGINE = InnoDB;
|
||||
drop table if exists t1,t2,t3,t1m,t1i,t2m,t2i,t4;
|
||||
drop procedure if exists p1;
|
||||
create table t1 (
|
||||
c_id int(11) not null default '0',
|
||||
org_id int(11) default null,
|
||||
|
@ -1419,6 +1420,85 @@ select if(@a=@b,"ok","wrong");
|
|||
if(@a=@b,"ok","wrong")
|
||||
ok
|
||||
drop table t1;
|
||||
SET SESSION AUTOCOMMIT = 0;
|
||||
SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;
|
||||
# Switch to connection con1
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b VARCHAR(256))
|
||||
ENGINE = InnoDB;
|
||||
INSERT INTO t1 VALUES (1,2);
|
||||
BEGIN;
|
||||
UPDATE t1 SET b = 12 WHERE a = 1;
|
||||
affected rows: 1
|
||||
info: Rows matched: 1 Changed: 1 Warnings: 0
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 12
|
||||
# Switch to connection con2
|
||||
UPDATE t1 SET b = 21 WHERE a = 1;
|
||||
ERROR HY000: Lock wait timeout exceeded; try restarting transaction
|
||||
# Switch to connection con1
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 12
|
||||
ROLLBACK;
|
||||
# 2. test for serialized update:
|
||||
CREATE TABLE t2 (a INT);
|
||||
TRUNCATE t1;
|
||||
INSERT INTO t1 VALUES (1,'init');
|
||||
CREATE PROCEDURE p1()
|
||||
BEGIN
|
||||
UPDATE t1 SET b = CONCAT(b, '+con2') WHERE a = 1;
|
||||
INSERT INTO t2 VALUES ();
|
||||
END|
|
||||
BEGIN;
|
||||
UPDATE t1 SET b = CONCAT(b, '+con1') WHERE a = 1;
|
||||
affected rows: 1
|
||||
info: Rows matched: 1 Changed: 1 Warnings: 0
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 init+con1
|
||||
# Switch to connection con2
|
||||
CALL p1;;
|
||||
# Switch to connection con1
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 init+con1
|
||||
COMMIT;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 init+con1
|
||||
# Switch to connection con2
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
1 init+con1+con2
|
||||
# Switch to connection con1
|
||||
# 3. test for updated key column:
|
||||
TRUNCATE t1;
|
||||
TRUNCATE t2;
|
||||
INSERT INTO t1 VALUES (1,'init');
|
||||
BEGIN;
|
||||
UPDATE t1 SET a = 2, b = CONCAT(b, '+con1') WHERE a = 1;
|
||||
affected rows: 1
|
||||
info: Rows matched: 1 Changed: 1 Warnings: 0
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
2 init+con1
|
||||
# Switch to connection con2
|
||||
CALL p1;;
|
||||
# Switch to connection con1
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
2 init+con1
|
||||
COMMIT;
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
2 init+con1
|
||||
# Switch to connection con2
|
||||
SELECT * FROM t1;
|
||||
a b
|
||||
2 init+con1
|
||||
DROP PROCEDURE p1;
|
||||
DROP TABLE t1, t2;
|
||||
CREATE TABLE t1 (a INT NOT NULL, b INT NOT NULL, PRIMARY KEY (a,b)) engine=innodb;
|
||||
CREATE TABLE t2 (c INT NOT NULL, d INT NOT NULL, PRIMARY KEY (c,d),
|
||||
CONSTRAINT c2 FOREIGN KEY f2 (c) REFERENCES t1 (a,b) ON UPDATE NO ACTION) engine=innodb;
|
||||
|
|
|
@ -816,3 +816,15 @@ id prev_id join_id
|
|||
3 2 0
|
||||
4 3 0
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# Bug#30384: Having SQL_BUFFER_RESULT option in the
|
||||
# CREATE .. KEY(..) .. SELECT led to creating corrupted index.
|
||||
#
|
||||
create table t1(f1 int);
|
||||
insert into t1 values(1),(2),(3);
|
||||
create table t2 (key(f1)) engine=myisam select sql_buffer_result f1 from t1;
|
||||
check table t2 extended;
|
||||
Table Op Msg_type Msg_text
|
||||
test.t2 check status OK
|
||||
drop table t1,t2;
|
||||
##################################################################
|
||||
|
|
|
@ -897,4 +897,168 @@ select '^^: The above should be ~= 20 + cost(select * from t1). Value less than
|
|||
Z
|
||||
^^: The above should be ~= 20 + cost(select * from t1). Value less than 20 is an error
|
||||
drop table t1, t2;
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
|
||||
CREATE TABLE t2 (c INT PRIMARY KEY, d INT);
|
||||
INSERT INTO t1 VALUES(1,NULL),(2,NULL),(3,NULL),(4,NULL);
|
||||
INSERT INTO t1 SELECT a + 4, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 8, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 16, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 32, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 64, b FROM t1;
|
||||
INSERT INTO t2 SELECT a, b FROM t1;
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 2
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.b 1
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a LIMIT 2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index PRIMARY PRIMARY 4 NULL 2
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1
|
||||
SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a LIMIT 2;
|
||||
a b c d
|
||||
SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a LIMIT 2;
|
||||
a b c d
|
||||
1 NULL 1 NULL
|
||||
2 NULL 2 NULL
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 128 Using filesort
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.b 1
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL PRIMARY NULL NULL NULL 128 Using filesort
|
||||
1 SIMPLE t2 eq_ref PRIMARY PRIMARY 4 test.t1.a 1
|
||||
SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a;
|
||||
a b c d
|
||||
SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a;
|
||||
a b c d
|
||||
1 NULL 1 NULL
|
||||
2 NULL 2 NULL
|
||||
3 NULL 3 NULL
|
||||
4 NULL 4 NULL
|
||||
5 NULL 5 NULL
|
||||
6 NULL 6 NULL
|
||||
7 NULL 7 NULL
|
||||
8 NULL 8 NULL
|
||||
9 NULL 9 NULL
|
||||
10 NULL 10 NULL
|
||||
11 NULL 11 NULL
|
||||
12 NULL 12 NULL
|
||||
13 NULL 13 NULL
|
||||
14 NULL 14 NULL
|
||||
15 NULL 15 NULL
|
||||
16 NULL 16 NULL
|
||||
17 NULL 17 NULL
|
||||
18 NULL 18 NULL
|
||||
19 NULL 19 NULL
|
||||
20 NULL 20 NULL
|
||||
21 NULL 21 NULL
|
||||
22 NULL 22 NULL
|
||||
23 NULL 23 NULL
|
||||
24 NULL 24 NULL
|
||||
25 NULL 25 NULL
|
||||
26 NULL 26 NULL
|
||||
27 NULL 27 NULL
|
||||
28 NULL 28 NULL
|
||||
29 NULL 29 NULL
|
||||
30 NULL 30 NULL
|
||||
31 NULL 31 NULL
|
||||
32 NULL 32 NULL
|
||||
33 NULL 33 NULL
|
||||
34 NULL 34 NULL
|
||||
35 NULL 35 NULL
|
||||
36 NULL 36 NULL
|
||||
37 NULL 37 NULL
|
||||
38 NULL 38 NULL
|
||||
39 NULL 39 NULL
|
||||
40 NULL 40 NULL
|
||||
41 NULL 41 NULL
|
||||
42 NULL 42 NULL
|
||||
43 NULL 43 NULL
|
||||
44 NULL 44 NULL
|
||||
45 NULL 45 NULL
|
||||
46 NULL 46 NULL
|
||||
47 NULL 47 NULL
|
||||
48 NULL 48 NULL
|
||||
49 NULL 49 NULL
|
||||
50 NULL 50 NULL
|
||||
51 NULL 51 NULL
|
||||
52 NULL 52 NULL
|
||||
53 NULL 53 NULL
|
||||
54 NULL 54 NULL
|
||||
55 NULL 55 NULL
|
||||
56 NULL 56 NULL
|
||||
57 NULL 57 NULL
|
||||
58 NULL 58 NULL
|
||||
59 NULL 59 NULL
|
||||
60 NULL 60 NULL
|
||||
61 NULL 61 NULL
|
||||
62 NULL 62 NULL
|
||||
63 NULL 63 NULL
|
||||
64 NULL 64 NULL
|
||||
65 NULL 65 NULL
|
||||
66 NULL 66 NULL
|
||||
67 NULL 67 NULL
|
||||
68 NULL 68 NULL
|
||||
69 NULL 69 NULL
|
||||
70 NULL 70 NULL
|
||||
71 NULL 71 NULL
|
||||
72 NULL 72 NULL
|
||||
73 NULL 73 NULL
|
||||
74 NULL 74 NULL
|
||||
75 NULL 75 NULL
|
||||
76 NULL 76 NULL
|
||||
77 NULL 77 NULL
|
||||
78 NULL 78 NULL
|
||||
79 NULL 79 NULL
|
||||
80 NULL 80 NULL
|
||||
81 NULL 81 NULL
|
||||
82 NULL 82 NULL
|
||||
83 NULL 83 NULL
|
||||
84 NULL 84 NULL
|
||||
85 NULL 85 NULL
|
||||
86 NULL 86 NULL
|
||||
87 NULL 87 NULL
|
||||
88 NULL 88 NULL
|
||||
89 NULL 89 NULL
|
||||
90 NULL 90 NULL
|
||||
91 NULL 91 NULL
|
||||
92 NULL 92 NULL
|
||||
93 NULL 93 NULL
|
||||
94 NULL 94 NULL
|
||||
95 NULL 95 NULL
|
||||
96 NULL 96 NULL
|
||||
97 NULL 97 NULL
|
||||
98 NULL 98 NULL
|
||||
99 NULL 99 NULL
|
||||
100 NULL 100 NULL
|
||||
101 NULL 101 NULL
|
||||
102 NULL 102 NULL
|
||||
103 NULL 103 NULL
|
||||
104 NULL 104 NULL
|
||||
105 NULL 105 NULL
|
||||
106 NULL 106 NULL
|
||||
107 NULL 107 NULL
|
||||
108 NULL 108 NULL
|
||||
109 NULL 109 NULL
|
||||
110 NULL 110 NULL
|
||||
111 NULL 111 NULL
|
||||
112 NULL 112 NULL
|
||||
113 NULL 113 NULL
|
||||
114 NULL 114 NULL
|
||||
115 NULL 115 NULL
|
||||
116 NULL 116 NULL
|
||||
117 NULL 117 NULL
|
||||
118 NULL 118 NULL
|
||||
119 NULL 119 NULL
|
||||
120 NULL 120 NULL
|
||||
121 NULL 121 NULL
|
||||
122 NULL 122 NULL
|
||||
123 NULL 123 NULL
|
||||
124 NULL 124 NULL
|
||||
125 NULL 125 NULL
|
||||
126 NULL 126 NULL
|
||||
127 NULL 127 NULL
|
||||
128 NULL 128 NULL
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
End of 5.0 tests.
|
||||
|
|
|
@ -42,20 +42,20 @@ show create table mysql.general_log;
|
|||
Table Create Table
|
||||
general_log CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
|
||||
show fields from mysql.general_log;
|
||||
Field Type Null Key Default Extra
|
||||
event_time timestamp NO CURRENT_TIMESTAMP
|
||||
user_host mediumtext YES NULL
|
||||
thread_id int(11) YES NULL
|
||||
server_id int(11) YES NULL
|
||||
command_type varchar(64) YES NULL
|
||||
argument mediumtext YES NULL
|
||||
user_host mediumtext NO NULL
|
||||
thread_id int(11) NO NULL
|
||||
server_id int(11) NO NULL
|
||||
command_type varchar(64) NO NULL
|
||||
argument mediumtext NO NULL
|
||||
show create table mysql.slow_log;
|
||||
Table Create Table
|
||||
slow_log CREATE TABLE `slow_log` (
|
||||
|
@ -65,10 +65,10 @@ slow_log CREATE TABLE `slow_log` (
|
|||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
|
||||
show fields from mysql.slow_log;
|
||||
|
@ -79,10 +79,10 @@ query_time time NO NULL
|
|||
lock_time time NO NULL
|
||||
rows_sent int(11) NO NULL
|
||||
rows_examined int(11) NO NULL
|
||||
db varchar(512) YES NULL
|
||||
last_insert_id int(11) YES NULL
|
||||
insert_id int(11) YES NULL
|
||||
server_id int(11) YES NULL
|
||||
db varchar(512) NO NULL
|
||||
last_insert_id int(11) NO NULL
|
||||
insert_id int(11) NO NULL
|
||||
server_id int(11) NO NULL
|
||||
sql_text mediumtext NO NULL
|
||||
flush logs;
|
||||
flush tables;
|
||||
|
@ -141,11 +141,11 @@ show create table mysql.general_log;
|
|||
Table Create Table
|
||||
general_log CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
|
||||
show create table mysql.slow_log;
|
||||
Table Create Table
|
||||
|
@ -156,10 +156,10 @@ slow_log CREATE TABLE `slow_log` (
|
|||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
|
||||
alter table mysql.general_log engine=myisam;
|
||||
|
@ -168,11 +168,11 @@ show create table mysql.general_log;
|
|||
Table Create Table
|
||||
general_log CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='General log'
|
||||
show create table mysql.slow_log;
|
||||
Table Create Table
|
||||
|
@ -183,10 +183,10 @@ slow_log CREATE TABLE `slow_log` (
|
|||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='Slow log'
|
||||
set global general_log='ON';
|
||||
|
@ -241,11 +241,11 @@ use mysql;
|
|||
CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';
|
||||
CREATE TABLE `slow_log` (
|
||||
`start_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
|
@ -255,10 +255,10 @@ ON UPDATE CURRENT_TIMESTAMP,
|
|||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log';
|
||||
set global general_log='ON';
|
||||
|
@ -403,9 +403,9 @@ My own slow query sleep(2)
|
|||
My own slow query 0
|
||||
SELECT * FROM mysql.slow_log WHERE seq >= 2 LIMIT 3;
|
||||
start_time user_host query_time lock_time rows_sent rows_examined db last_insert_id insert_id server_id sql_text seq
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test NULL NULL 1 SELECT "My own slow query", sleep(2) 2
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test NULL NULL 1 SELECT "My own slow query", sleep(2) 3
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test NULL NULL 1 SELECT "My own slow query", sleep(2) 4
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) 2
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) 3
|
||||
START_TIME USER_HOST QUERY_TIME 00:00:00 1 0 test 0 0 1 SELECT "My own slow query", sleep(2) 4
|
||||
SET GLOBAL slow_query_log = 0;
|
||||
SET SESSION long_query_time =@old_long_query_time;
|
||||
FLUSH LOGS;
|
||||
|
|
|
@ -879,4 +879,9 @@ CHECK TABLE tm1;
|
|||
Table Op Msg_type Msg_text
|
||||
test.tm1 check status OK
|
||||
DROP TABLE tm1, t1, t2;
|
||||
CREATE TABLE t1(c1 INT);
|
||||
CREATE TABLE t2 (c1 INT) ENGINE=MERGE UNION=(t1) INSERT_METHOD=FIRST;
|
||||
CREATE TABLE IF NOT EXISTS t1 SELECT * FROM t2;
|
||||
ERROR HY000: You can't specify target table 't1' for update in FROM clause
|
||||
DROP TABLE t1, t2;
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -3805,6 +3805,28 @@ c1
|
|||
2
|
||||
DROP TABLE t1,t2;
|
||||
#
|
||||
# Bug#29815: new option for suppressing last line of mysqldump:
|
||||
# "Dump completed on"
|
||||
#
|
||||
# --skip-dump-date:
|
||||
--
|
||||
|
||||
|
||||
|
||||
-- Dump completed
|
||||
# --dump-date:
|
||||
--
|
||||
|
||||
|
||||
|
||||
-- Dump completed on DATE
|
||||
# --dump-date (default):
|
||||
--
|
||||
|
||||
|
||||
|
||||
-- Dump completed on DATE
|
||||
#
|
||||
# End of 5.0 tests
|
||||
#
|
||||
drop table if exists t1;
|
||||
|
|
|
@ -211,3 +211,9 @@ COMMIT;
|
|||
COMMIT;
|
||||
SHOW TABLES;
|
||||
DROP SCHEMA IF EXISTS `mysqlslap`;
|
||||
#
|
||||
# Bug #29985: mysqlslap -- improper handling of resultsets in SPROCs
|
||||
#
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
CREATE PROCEDURE p1() SELECT 1;
|
||||
DROP PROCEDURE p1;
|
||||
|
|
|
@ -605,11 +605,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t3 index period period 4 NULL 1
|
||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t1 index period period 4 NULL 1
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
select period from t1;
|
||||
period
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
drop table if exists t1;
|
||||
drop table if exists t1, t2;
|
||||
select null,\N,isnull(null),isnull(1/0),isnull(1/0 = null),ifnull(null,1),ifnull(null,"TRUE"),ifnull("TRUE","ERROR"),1/0 is null,1 is not null;
|
||||
NULL NULL isnull(null) isnull(1/0) isnull(1/0 = null) ifnull(null,1) ifnull(null,"TRUE") ifnull("TRUE","ERROR") 1/0 is null 1 is not null
|
||||
NULL NULL 1 1 1 1 TRUE TRUE 1 1
|
||||
|
@ -320,3 +320,26 @@ bug19145c CREATE TABLE `bug19145c` (
|
|||
drop table bug19145a;
|
||||
drop table bug19145b;
|
||||
drop table bug19145c;
|
||||
# End of 4.1 tests
|
||||
#
|
||||
# Bug #31471: decimal_bin_size: Assertion `scale >= 0 &&
|
||||
# precision > 0 && scale <= precision'
|
||||
#
|
||||
CREATE TABLE t1 (a DECIMAL (1, 0) ZEROFILL, b DECIMAL (1, 0) ZEROFILL);
|
||||
INSERT INTO t1 (a, b) VALUES (0, 0);
|
||||
CREATE TABLE t2 SELECT IFNULL(a, b) FROM t1;
|
||||
DESCRIBE t2;
|
||||
Field Type Null Key Default Extra
|
||||
IFNULL(a, b) decimal(1,0) unsigned YES NULL
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 SELECT IFNULL(a, NULL) FROM t1;
|
||||
DESCRIBE t2;
|
||||
Field Type Null Key Default Extra
|
||||
IFNULL(a, NULL) decimal(1,0) YES NULL
|
||||
DROP TABLE t2;
|
||||
CREATE TABLE t2 SELECT IFNULL(NULL, b) FROM t1;
|
||||
DESCRIBE t2;
|
||||
Field Type Null Key Default Extra
|
||||
IFNULL(NULL, b) decimal(1,0) YES NULL
|
||||
DROP TABLE t1, t2;
|
||||
# End of 5.0 tests
|
||||
|
|
|
@ -715,3 +715,14 @@ a SUM(a)
|
|||
4 4
|
||||
NULL 14
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug#31095: Unexpected NULL constant caused server crash.
|
||||
#
|
||||
create table t1(a int);
|
||||
insert into t1 values (1),(2),(3);
|
||||
select count(a) from t1 group by null with rollup;
|
||||
count(a)
|
||||
3
|
||||
3
|
||||
drop table t1;
|
||||
##############################################################
|
||||
|
|
|
@ -1131,3 +1131,288 @@ id c3
|
|||
186 14
|
||||
196 14
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
b INT,
|
||||
PRIMARY KEY (a),
|
||||
KEY ab(a, b)
|
||||
);
|
||||
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4);
|
||||
INSERT INTO t1 SELECT a + 4, b + 4 FROM t1;
|
||||
INSERT INTO t1 SELECT a + 8, b + 8 FROM t1;
|
||||
INSERT INTO t1 SELECT a +16, b +16 FROM t1;
|
||||
INSERT INTO t1 SELECT a +32, b +32 FROM t1;
|
||||
INSERT INTO t1 SELECT a +64, b +64 FROM t1;
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 range NULL ab 4 NULL 10 Using index for group-by
|
||||
SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
28
|
||||
29
|
||||
30
|
||||
31
|
||||
32
|
||||
33
|
||||
34
|
||||
35
|
||||
36
|
||||
37
|
||||
38
|
||||
39
|
||||
40
|
||||
41
|
||||
42
|
||||
43
|
||||
44
|
||||
45
|
||||
46
|
||||
47
|
||||
48
|
||||
49
|
||||
50
|
||||
51
|
||||
52
|
||||
53
|
||||
54
|
||||
55
|
||||
56
|
||||
57
|
||||
58
|
||||
59
|
||||
60
|
||||
61
|
||||
62
|
||||
63
|
||||
64
|
||||
65
|
||||
66
|
||||
67
|
||||
68
|
||||
69
|
||||
70
|
||||
71
|
||||
72
|
||||
73
|
||||
74
|
||||
75
|
||||
76
|
||||
77
|
||||
78
|
||||
79
|
||||
80
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
||||
85
|
||||
86
|
||||
87
|
||||
88
|
||||
89
|
||||
90
|
||||
91
|
||||
92
|
||||
93
|
||||
94
|
||||
95
|
||||
96
|
||||
97
|
||||
98
|
||||
99
|
||||
100
|
||||
101
|
||||
102
|
||||
103
|
||||
104
|
||||
105
|
||||
106
|
||||
107
|
||||
108
|
||||
109
|
||||
110
|
||||
111
|
||||
112
|
||||
113
|
||||
114
|
||||
115
|
||||
116
|
||||
117
|
||||
118
|
||||
119
|
||||
120
|
||||
121
|
||||
122
|
||||
123
|
||||
124
|
||||
125
|
||||
126
|
||||
127
|
||||
128
|
||||
SELECT @tmp_tables_after = @tmp_tables_before ;
|
||||
@tmp_tables_after = @tmp_tables_before
|
||||
1
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 128 Using index
|
||||
SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a;
|
||||
a
|
||||
1
|
||||
2
|
||||
3
|
||||
4
|
||||
5
|
||||
6
|
||||
7
|
||||
8
|
||||
9
|
||||
10
|
||||
11
|
||||
12
|
||||
13
|
||||
14
|
||||
15
|
||||
16
|
||||
17
|
||||
18
|
||||
19
|
||||
20
|
||||
21
|
||||
22
|
||||
23
|
||||
24
|
||||
25
|
||||
26
|
||||
27
|
||||
28
|
||||
29
|
||||
30
|
||||
31
|
||||
32
|
||||
33
|
||||
34
|
||||
35
|
||||
36
|
||||
37
|
||||
38
|
||||
39
|
||||
40
|
||||
41
|
||||
42
|
||||
43
|
||||
44
|
||||
45
|
||||
46
|
||||
47
|
||||
48
|
||||
49
|
||||
50
|
||||
51
|
||||
52
|
||||
53
|
||||
54
|
||||
55
|
||||
56
|
||||
57
|
||||
58
|
||||
59
|
||||
60
|
||||
61
|
||||
62
|
||||
63
|
||||
64
|
||||
65
|
||||
66
|
||||
67
|
||||
68
|
||||
69
|
||||
70
|
||||
71
|
||||
72
|
||||
73
|
||||
74
|
||||
75
|
||||
76
|
||||
77
|
||||
78
|
||||
79
|
||||
80
|
||||
81
|
||||
82
|
||||
83
|
||||
84
|
||||
85
|
||||
86
|
||||
87
|
||||
88
|
||||
89
|
||||
90
|
||||
91
|
||||
92
|
||||
93
|
||||
94
|
||||
95
|
||||
96
|
||||
97
|
||||
98
|
||||
99
|
||||
100
|
||||
101
|
||||
102
|
||||
103
|
||||
104
|
||||
105
|
||||
106
|
||||
107
|
||||
108
|
||||
109
|
||||
110
|
||||
111
|
||||
112
|
||||
113
|
||||
114
|
||||
115
|
||||
116
|
||||
117
|
||||
118
|
||||
119
|
||||
120
|
||||
121
|
||||
122
|
||||
123
|
||||
124
|
||||
125
|
||||
126
|
||||
127
|
||||
128
|
||||
SELECT @tmp_tables_after = @tmp_tables_before;
|
||||
@tmp_tables_after = @tmp_tables_before
|
||||
1
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -1225,6 +1225,19 @@ INSERT INTO t1 SELECT a + 8, b FROM t1;
|
|||
ALTER TABLE t1 ADD PARTITION (PARTITION p1 VALUES LESS THAN (64));
|
||||
ALTER TABLE t1 DROP PARTITION p1;
|
||||
DROP TABLE t1;
|
||||
create table t (s1 int) engine=myisam partition by key (s1);
|
||||
create trigger t_ad after delete on t for each row insert into t values (old.s1);
|
||||
insert into t values (1);
|
||||
drop table t;
|
||||
USE mysql;
|
||||
SET GLOBAL general_log = 0;
|
||||
ALTER TABLE general_log ENGINE = MyISAM;
|
||||
ALTER TABLE general_log PARTITION BY RANGE (TO_DAYS(event_time))
|
||||
(PARTITION p0 VALUES LESS THAN (733144), PARTITION p1 VALUES LESS THAN (3000000));
|
||||
ERROR HY000: Incorrect usage of PARTITION and log table
|
||||
ALTER TABLE general_log ENGINE = CSV;
|
||||
SET GLOBAL general_log = default;
|
||||
use test;
|
||||
create table t2 (b int);
|
||||
create table t1 (b int)
|
||||
PARTITION BY RANGE (t2.b) (
|
||||
|
|
|
@ -129,3 +129,10 @@ insert into t1 (time, first_name, last_name) values ('2007-02-07', 'Q', 'Robert'
|
|||
SELECT * FROM t1 WHERE first_name='Andy' OR last_name='Jake';
|
||||
id time first_name last_name
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a DOUBLE NOT NULL, KEY(a)) ENGINE=InnoDB
|
||||
PARTITION BY KEY(a) PARTITIONS 10;
|
||||
INSERT INTO t1 VALUES(1),(2);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
COUNT(*)
|
||||
2
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -2973,11 +2973,13 @@ Warnings:
|
|||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
|
@ -3011,7 +3013,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
|||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
|
|
@ -2956,11 +2956,13 @@ Warnings:
|
|||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
|
@ -2994,7 +2996,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
|||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
|
|
@ -2957,11 +2957,13 @@ Warnings:
|
|||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
|
@ -2995,7 +2997,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
|||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
|
|
@ -2893,11 +2893,13 @@ Warnings:
|
|||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
|
@ -2931,7 +2933,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
|||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
@ -5914,11 +5915,13 @@ Warnings:
|
|||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
|
@ -5952,7 +5955,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
|||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
|
|
@ -1650,8 +1650,23 @@ a (select count(*) from t2)
|
|||
3 0
|
||||
4 0
|
||||
drop table t1,t2;
|
||||
End of 5.0 tests
|
||||
set GLOBAL query_cache_type=default;
|
||||
set GLOBAL query_cache_limit=default;
|
||||
set GLOBAL query_cache_min_res_unit=default;
|
||||
set GLOBAL query_cache_size=default;
|
||||
End of 5.0 tests
|
||||
CREATE TABLE t1 (a ENUM('rainbow'));
|
||||
INSERT INTO t1 VALUES (),(),(),(),();
|
||||
SELECT 1 FROM t1 GROUP BY (SELECT 1 FROM t1 ORDER BY AVG(LAST_INSERT_ID()));
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a LONGBLOB);
|
||||
INSERT INTO t1 SET a = 'aaaa';
|
||||
INSERT INTO t1 SET a = 'aaaa';
|
||||
SELECT 1 FROM t1 GROUP BY
|
||||
(SELECT LAST_INSERT_ID() FROM t1 ORDER BY MIN(a) ASC LIMIT 1);
|
||||
1
|
||||
1
|
||||
DROP TABLE t1;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -607,11 +607,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t3 index period period 4 NULL 1
|
||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t1 index period period 4 NULL 1
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
select period from t1;
|
||||
period
|
||||
|
|
|
@ -605,11 +605,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t3 index period period 4 NULL 1
|
||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t1 index period period 4 NULL 1
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
select period from t1;
|
||||
period
|
||||
|
|
|
@ -608,11 +608,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t3 index period period 4 NULL 1
|
||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t1 index period period 4 NULL 1
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
select period from t1;
|
||||
period
|
||||
|
|
|
@ -611,11 +611,11 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t3.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t3 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t3 index period period 4 NULL 1
|
||||
1 SIMPLE t1 ref period period 4 test.t3.period 4181
|
||||
explain select * from t3 as t1,t3 where t1.period=t3.period order by t1.period limit 10;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL period NULL NULL NULL 41810 Using filesort
|
||||
1 SIMPLE t1 index period period 4 NULL 1
|
||||
1 SIMPLE t3 ref period period 4 test.t1.period 4181
|
||||
select period from t1;
|
||||
period
|
||||
|
|
|
@ -240,11 +240,11 @@ show create table general_log;
|
|||
Table Create Table
|
||||
general_log CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
|
||||
show create table slow_log;
|
||||
Table Create Table
|
||||
|
@ -255,10 +255,10 @@ slow_log CREATE TABLE `slow_log` (
|
|||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log'
|
||||
show tables;
|
||||
|
|
|
@ -145,3 +145,82 @@ d dt ts
|
|||
0000-00-00 0000-00-00 00:00:00 0000-00-00 00:00:00
|
||||
2001-11-11 2001-11-11 00:00:00 2001-11-11 00:00:00
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (
|
||||
a INT
|
||||
);
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
SELECT str_to_date( '', a ) FROM t1;
|
||||
str_to_date( '', a )
|
||||
0000-00-00 00:00:00
|
||||
NULL
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a DATE, b int, PRIMARY KEY (a,b));
|
||||
INSERT INTO t1 VALUES (DATE(NOW()), 1);
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
COUNT(*)
|
||||
0
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
INSERT INTO t1 VALUES (DATE(NOW()), 2);
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
COUNT(*)
|
||||
0
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
|
||||
COUNT(*)
|
||||
0
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
||||
ALTER TABLE t1 DROP PRIMARY KEY;
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
COUNT(*)
|
||||
0
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 2 Using where
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a DATE);
|
||||
CREATE TABLE t2 (a DATE);
|
||||
CREATE INDEX i ON t1 (a);
|
||||
INSERT INTO t1 VALUES ('0000-00-00'),('0000-00-00');
|
||||
INSERT INTO t2 VALUES ('0000-00-00'),('0000-00-00');
|
||||
SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
SELECT * FROM t2 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
SET SQL_MODE=TRADITIONAL;
|
||||
EXPLAIN SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ref i i 4 const 1 Using where; Using index
|
||||
Warnings:
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
Warnings:
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
SELECT * FROM t2 WHERE a = '0000-00-00';
|
||||
a
|
||||
0000-00-00
|
||||
0000-00-00
|
||||
Warnings:
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
Warning 1292 Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
INSERT INTO t1 VALUES ('0000-00-00');
|
||||
ERROR 22007: Incorrect date value: '0000-00-00' for column 'a' at row 1
|
||||
SET SQL_MODE=DEFAULT;
|
||||
DROP TABLE t1,t2;
|
||||
End of 5.0 tests
|
||||
|
|
|
@ -59,6 +59,8 @@ t
|
|||
drop table t1;
|
||||
CREATE TABLE t1 (a timestamp, b date, c time, d datetime);
|
||||
insert into t1 (b,c,d) values(now(),curtime(),now());
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'b' at row 1
|
||||
select date_format(a,"%Y-%m-%d")=b,right(a+0,6)=c+0,a=d+0 from t1;
|
||||
date_format(a,"%Y-%m-%d")=b right(a+0,6)=c+0 a=d+0
|
||||
1 1 1
|
||||
|
@ -427,6 +429,67 @@ f1
|
|||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '2007010100000' for column 'f1' at row 1
|
||||
drop table t1;
|
||||
#
|
||||
# Bug#27216: functions with parameters of different date types may
|
||||
# return wrong type of the result.
|
||||
#
|
||||
create table t1 (f1 date, f2 datetime, f3 varchar(20));
|
||||
create table t2 as select coalesce(f1,f1) as f4 from t1;
|
||||
desc t2;
|
||||
Field Type Null Key Default Extra
|
||||
f4 date YES NULL
|
||||
create table t3 as select coalesce(f1,f2) as f4 from t1;
|
||||
desc t3;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t4 as select coalesce(f2,f2) as f4 from t1;
|
||||
desc t4;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t5 as select coalesce(f1,f3) as f4 from t1;
|
||||
desc t5;
|
||||
Field Type Null Key Default Extra
|
||||
f4 varbinary(20) YES NULL
|
||||
create table t6 as select coalesce(f2,f3) as f4 from t1;
|
||||
desc t6;
|
||||
Field Type Null Key Default Extra
|
||||
f4 varbinary(20) YES NULL
|
||||
create table t7 as select coalesce(makedate(1997,1),f2) as f4 from t1;
|
||||
desc t7;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t8 as select coalesce(cast('01-01-01' as datetime),f2) as f4
|
||||
from t1;
|
||||
desc t8;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t9 as select case when 1 then cast('01-01-01' as date)
|
||||
when 0 then cast('01-01-01' as date) end as f4 from t1;
|
||||
desc t9;
|
||||
Field Type Null Key Default Extra
|
||||
f4 date YES NULL
|
||||
create table t10 as select case when 1 then cast('01-01-01' as datetime)
|
||||
when 0 then cast('01-01-01' as datetime) end as f4 from t1;
|
||||
desc t10;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t11 as select if(1, cast('01-01-01' as datetime),
|
||||
cast('01-01-01' as date)) as f4 from t1;
|
||||
desc t11;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t12 as select least(cast('01-01-01' as datetime),
|
||||
cast('01-01-01' as date)) as f4 from t1;
|
||||
desc t12;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
create table t13 as select ifnull(cast('01-01-01' as datetime),
|
||||
cast('01-01-01' as date)) as f4 from t1;
|
||||
desc t13;
|
||||
Field Type Null Key Default Extra
|
||||
f4 datetime YES NULL
|
||||
drop tables t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13;
|
||||
###################################################################
|
||||
create table t1 (f1 time);
|
||||
insert into t1 set f1 = '45:44:44';
|
||||
insert into t1 set f1 = '15:44:44';
|
||||
|
|
|
@ -800,6 +800,12 @@ SELECT ROUND(qty,3), dps, ROUND(qty,dps) FROM t1;
|
|||
ROUND(qty,3) dps ROUND(qty,dps)
|
||||
1.133 3 1.133
|
||||
DROP TABLE t1;
|
||||
SELECT 1 % .123456789123456789123456789123456789123456789123456789123456789123456789123456789 AS '%';
|
||||
%
|
||||
0.012345687012345687012345687012345687012345687012345687012345687012345687000000000
|
||||
SELECT MOD(1, .123456789123456789123456789123456789123456789123456789123456789123456789123456789) AS 'MOD()';
|
||||
MOD()
|
||||
0.012345687012345687012345687012345687012345687012345687012345687012345687000000000
|
||||
create table t1 (f1 decimal(6,6),f2 decimal(6,6) zerofill);
|
||||
insert into t1 values (-0.123456,0.123456);
|
||||
select group_concat(f1),group_concat(f2) from t1;
|
||||
|
|
|
@ -799,6 +799,9 @@ set @@query_prealloc_size = @test;
|
|||
select @@query_prealloc_size = @test;
|
||||
@@query_prealloc_size = @test
|
||||
1
|
||||
set global sql_mode=repeat('a',80);
|
||||
ERROR 42000: Variable 'sql_mode' can't be set to the value of 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'
|
||||
End of 4.1 tests
|
||||
create table t1 (a int);
|
||||
select a into @x from t1;
|
||||
Warnings:
|
||||
|
|
|
@ -625,7 +625,7 @@ drop table t1;
|
|||
create table t1 (a int, b int);
|
||||
create view v1 as select a, sum(b) from t1 group by a;
|
||||
select b from v1 use index (some_index) where b=1;
|
||||
ERROR 42000: Key 'some_index' doesn't exist in table 'v1'
|
||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
create table t1 (col1 char(5),col2 char(5));
|
||||
|
@ -2701,27 +2701,26 @@ CREATE TABLE t1(
|
|||
fName varchar(25) NOT NULL,
|
||||
lName varchar(25) NOT NULL,
|
||||
DOB date NOT NULL,
|
||||
test_date date NOT NULL,
|
||||
uID int unsigned NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
INSERT INTO t1(fName, lName, DOB) VALUES
|
||||
('Hank', 'Hill', '1964-09-29'),
|
||||
('Tom', 'Adams', '1908-02-14'),
|
||||
('Homer', 'Simpson', '1968-03-05');
|
||||
INSERT INTO t1(fName, lName, DOB, test_date) VALUES
|
||||
('Hank', 'Hill', '1964-09-29', '2007-01-01'),
|
||||
('Tom', 'Adams', '1908-02-14', '2007-01-01'),
|
||||
('Homer', 'Simpson', '1968-03-05', '2007-01-01');
|
||||
CREATE VIEW v1 AS
|
||||
SELECT (year(now())-year(DOB)) AS Age
|
||||
SELECT (year(test_date)-year(DOB)) AS Age
|
||||
FROM t1 HAVING Age < 75;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(now()) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75) latin1 latin1_swedish_ci
|
||||
set timestamp=1136066400;
|
||||
SELECT (year(now())-year(DOB)) AS Age FROM t1 HAVING Age < 75;
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select (year(`t1`.`test_date`) - year(`t1`.`DOB`)) AS `Age` from `t1` having (`Age` < 75) latin1 latin1_swedish_ci
|
||||
SELECT (year(test_date)-year(DOB)) AS Age FROM t1 HAVING Age < 75;
|
||||
Age
|
||||
42
|
||||
38
|
||||
set timestamp=1136066400;
|
||||
43
|
||||
39
|
||||
SELECT * FROM v1;
|
||||
Age
|
||||
42
|
||||
38
|
||||
43
|
||||
39
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (id int NOT NULL PRIMARY KEY, a char(6) DEFAULT 'xxx');
|
||||
|
@ -3559,6 +3558,45 @@ table_name is_updatable
|
|||
v1 NO
|
||||
drop view v1;
|
||||
drop table t1;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (1),(2);
|
||||
CREATE VIEW v1 AS SELECT * FROM t1;
|
||||
SELECT * FROM v1 USE KEY(non_existant);
|
||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
||||
SELECT * FROM v1 FORCE KEY(non_existant);
|
||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
||||
SELECT * FROM v1 IGNORE KEY(non_existant);
|
||||
ERROR HY000: Incorrect usage of index hints and VIEW
|
||||
DROP VIEW v1;
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a INT NOT NULL AUTO_INCREMENT, b INT NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY(a), KEY (b));
|
||||
INSERT INTO t1 VALUES (),(),(),(),(),(),(),(),(),(),(),(),(),(),();
|
||||
CREATE VIEW v1 AS SELECT * FROM t1 FORCE KEY (PRIMARY,b) ORDER BY a;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` FORCE INDEX (PRIMARY) FORCE INDEX (`b`) order by `t1`.`a` latin1 latin1_swedish_ci
|
||||
EXPLAIN SELECT * FROM v1;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 index NULL PRIMARY 4 NULL 15
|
||||
CREATE VIEW v2 AS SELECT * FROM t1 USE KEY () ORDER BY a;
|
||||
SHOW CREATE VIEW v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v2` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` USE INDEX () order by `t1`.`a` latin1 latin1_swedish_ci
|
||||
EXPLAIN SELECT * FROM v2;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 15 Using filesort
|
||||
CREATE VIEW v3 AS SELECT * FROM t1 IGNORE KEY (b) ORDER BY a;
|
||||
SHOW CREATE VIEW v3;
|
||||
View Create View character_set_client collation_connection
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`a` AS `a`,`t1`.`b` AS `b` from `t1` IGNORE INDEX (`b`) order by `t1`.`a` latin1 latin1_swedish_ci
|
||||
EXPLAIN SELECT * FROM v3;
|
||||
id select_type table type possible_keys key key_len ref rows Extra
|
||||
1 SIMPLE t1 ALL NULL NULL NULL NULL 15 Using filesort
|
||||
DROP VIEW v1;
|
||||
DROP VIEW v2;
|
||||
DROP VIEW v3;
|
||||
DROP TABLE t1;
|
||||
End of 5.0 tests.
|
||||
DROP DATABASE IF EXISTS `d-1`;
|
||||
CREATE DATABASE `d-1`;
|
||||
|
|
|
@ -778,15 +778,60 @@ GRANT CREATE VIEW ON db26813.v2 TO u26813@localhost;
|
|||
GRANT DROP, CREATE VIEW ON db26813.v3 TO u26813@localhost;
|
||||
GRANT SELECT ON db26813.t1 TO u26813@localhost;
|
||||
ALTER VIEW v1 AS SELECT f2 FROM t1;
|
||||
ERROR 42000: CREATE VIEW command denied to user 'u26813'@'localhost' for table 'v1'
|
||||
ERROR 42000: Access denied; you need the SUPER privilege for this operation
|
||||
ALTER VIEW v2 AS SELECT f2 FROM t1;
|
||||
ERROR 42000: DROP command denied to user 'u26813'@'localhost' for table 'v2'
|
||||
ERROR 42000: Access denied; you need the SUPER privilege for this operation
|
||||
ALTER VIEW v3 AS SELECT f2 FROM t1;
|
||||
ERROR 42000: Access denied; you need the SUPER privilege for this operation
|
||||
SHOW CREATE VIEW v3;
|
||||
View Create View character_set_client collation_connection
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`f2` AS `f2` from `t1` latin1 latin1_swedish_ci
|
||||
v3 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v3` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
||||
DROP USER u26813@localhost;
|
||||
DROP DATABASE db26813;
|
||||
#
|
||||
# Bug#29908: A user can gain additional access through the ALTER VIEW.
|
||||
#
|
||||
CREATE DATABASE mysqltest_29908;
|
||||
USE mysqltest_29908;
|
||||
CREATE TABLE t1(f1 INT, f2 INT);
|
||||
CREATE USER u29908_1@localhost;
|
||||
CREATE DEFINER = u29908_1@localhost VIEW v1 AS SELECT f1 FROM t1;
|
||||
CREATE DEFINER = u29908_1@localhost SQL SECURITY INVOKER VIEW v2 AS
|
||||
SELECT f1 FROM t1;
|
||||
GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v1 TO u29908_1@localhost;
|
||||
GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v2 TO u29908_1@localhost;
|
||||
GRANT SELECT ON mysqltest_29908.t1 TO u29908_1@localhost;
|
||||
CREATE USER u29908_2@localhost;
|
||||
GRANT DROP, CREATE VIEW ON mysqltest_29908.v1 TO u29908_2@localhost;
|
||||
GRANT DROP, CREATE VIEW, SHOW VIEW ON mysqltest_29908.v2 TO u29908_2@localhost;
|
||||
GRANT SELECT ON mysqltest_29908.t1 TO u29908_2@localhost;
|
||||
ALTER VIEW v1 AS SELECT f2 FROM t1;
|
||||
ERROR 42000: Access denied; you need the SUPER privilege for this operation
|
||||
ALTER VIEW v2 AS SELECT f2 FROM t1;
|
||||
ERROR 42000: Access denied; you need the SUPER privilege for this operation
|
||||
SHOW CREATE VIEW v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
||||
ALTER VIEW v1 AS SELECT f2 FROM t1;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f2` AS `f2` from `t1` latin1 latin1_swedish_ci
|
||||
ALTER VIEW v2 AS SELECT f2 FROM t1;
|
||||
SHOW CREATE VIEW v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select `t1`.`f2` AS `f2` from `t1` latin1 latin1_swedish_ci
|
||||
ALTER VIEW v1 AS SELECT f1 FROM t1;
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
||||
ALTER VIEW v2 AS SELECT f1 FROM t1;
|
||||
SHOW CREATE VIEW v2;
|
||||
View Create View character_set_client collation_connection
|
||||
v2 CREATE ALGORITHM=UNDEFINED DEFINER=`u29908_1`@`localhost` SQL SECURITY INVOKER VIEW `v2` AS select `t1`.`f1` AS `f1` from `t1` latin1 latin1_swedish_ci
|
||||
DROP USER u29908_1@localhost;
|
||||
DROP USER u29908_2@localhost;
|
||||
DROP DATABASE mysqltest_29908;
|
||||
#######################################################################
|
||||
DROP DATABASE IF EXISTS mysqltest1;
|
||||
DROP DATABASE IF EXISTS mysqltest2;
|
||||
CREATE DATABASE mysqltest1;
|
||||
|
@ -893,6 +938,8 @@ v1 CREATE ALGORITHM=UNDEFINED DEFINER=`no_such`@`user_1` SQL SECURITY DEFINER VI
|
|||
Warnings:
|
||||
Warning 1356 View 'test.v1' references invalid table(s) or column(s) or function(s) or definer/invoker of view lack rights to use them
|
||||
ALTER ALGORITHM=MERGE VIEW v1 AS SELECT * FROM t1;
|
||||
Warnings:
|
||||
Note 1449 There is no 'no_such'@'user_1' registered
|
||||
SHOW CREATE VIEW v1;
|
||||
View Create View character_set_client collation_connection
|
||||
v1 CREATE ALGORITHM=MERGE DEFINER=`no_such`@`user_1` SQL SECURITY DEFINER VIEW `v1` AS select `test`.`t1`.`i` AS `i` from `t1` latin1 latin1_swedish_ci
|
||||
|
|
|
@ -2956,11 +2956,13 @@ Warnings:
|
|||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
|
@ -2994,7 +2996,6 @@ Warning 1265 Data truncated for column 'c15' at row 1
|
|||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
Warnings:
|
||||
Note 1265 Data truncated for column 'c13' at row 1
|
||||
Warning 1265 Data truncated for column 'c15' at row 1
|
||||
Warning 1264 Out of range value for column 'c16' at row 1
|
||||
Warning 1264 Out of range value for column 'c17' at row 1
|
||||
|
|
|
@ -4,6 +4,13 @@ reset master;
|
|||
reset slave;
|
||||
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||
start slave;
|
||||
show variables like 'relay_log%';
|
||||
Variable_name Value
|
||||
relay_log MYSQLTEST_VARDIR/master-data/relay-log
|
||||
relay_log_index
|
||||
relay_log_info_file relay-log.info
|
||||
relay_log_purge ON
|
||||
relay_log_space_limit 0
|
||||
stop slave;
|
||||
change master to master_host='127.0.0.1',master_user='root',
|
||||
master_password='',master_port=MASTER_PORT;
|
||||
|
|
|
@ -2,12 +2,9 @@
|
|||
# in case of bi-directional replication
|
||||
-- source include/master-slave.inc
|
||||
|
||||
#
|
||||
# Start replication master -> slave
|
||||
#
|
||||
# We have to sync with master, to ensure slave had time to start properly
|
||||
# before we stop it. If not, we get errors about UNIX_TIMESTAMP() in the log.
|
||||
sync_slave_with_master;
|
||||
--replace_result $MYSQLTEST_VARDIR MYSQLTEST_VARDIR
|
||||
show variables like 'relay_log%';
|
||||
|
||||
connection slave;
|
||||
--disable_warnings
|
||||
stop slave;
|
||||
|
|
|
@ -1322,7 +1322,7 @@ drop table if exists t1,t2,t3,t4;
|
|||
DROP TABLE IF EXISTS bug13894;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE bug13894 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE bug13894 ( val integer not null ) ENGINE = CSV;
|
||||
INSERT INTO bug13894 VALUES (5);
|
||||
INSERT INTO bug13894 VALUES (10);
|
||||
INSERT INTO bug13894 VALUES (11);
|
||||
|
@ -1340,7 +1340,7 @@ DROP TABLE bug13894;
|
|||
DROP TABLE IF EXISTS bug14672;
|
||||
--enable_warnings
|
||||
|
||||
CREATE TABLE bug14672 (c1 integer) engine = CSV;
|
||||
CREATE TABLE bug14672 (c1 integer not null) engine = CSV;
|
||||
INSERT INTO bug14672 VALUES (1), (2), (3);
|
||||
SELECT * FROM bug14672;
|
||||
DELETE FROM bug14672 WHERE c1 = 2;
|
||||
|
@ -1357,7 +1357,7 @@ DROP TABLE bug14672;
|
|||
# Test CONCURRENT INSERT (5.1)
|
||||
#
|
||||
|
||||
CREATE TABLE test_concurrent_insert ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_concurrent_insert ( val integer not null ) ENGINE = CSV;
|
||||
|
||||
connect (con1,localhost,root,,);
|
||||
connect (con2,localhost,root,,);
|
||||
|
@ -1393,7 +1393,7 @@ DROP TABLE test_concurrent_insert;
|
|||
|
||||
# Check that repair on the newly created table works fine
|
||||
|
||||
CREATE TABLE test_repair_table ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table ( val integer not null ) ENGINE = CSV;
|
||||
|
||||
CHECK TABLE test_repair_table;
|
||||
REPAIR TABLE test_repair_table;
|
||||
|
@ -1405,7 +1405,7 @@ DROP TABLE test_repair_table;
|
|||
# restore the meta-file
|
||||
#
|
||||
|
||||
CREATE TABLE test_repair_table2 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table2 ( val integer not null ) ENGINE = CSV;
|
||||
--remove_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table2.CSM
|
||||
|
||||
# Should give a warning and perform autorepair. We also disable ps-protocol
|
||||
|
@ -1423,7 +1423,7 @@ DROP TABLE test_repair_table2;
|
|||
|
||||
|
||||
# Corrupt csv file and see if we can repair it
|
||||
CREATE TABLE test_repair_table3 ( val integer ) ENGINE = CSV;
|
||||
CREATE TABLE test_repair_table3 ( val integer not null ) ENGINE = CSV;
|
||||
--remove_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table3.CSV
|
||||
--write_file $MYSQLTEST_VARDIR/master-data/test/test_repair_table3.CSV
|
||||
"1"
|
||||
|
@ -1517,7 +1517,7 @@ DROP TABLE test_repair_table5;
|
|||
# BUG#13406 - incorrect amount of "records deleted"
|
||||
#
|
||||
|
||||
create table t1 (a int) engine=csv;
|
||||
create table t1 (a int not null) engine=csv;
|
||||
insert t1 values (1);
|
||||
--enable_info
|
||||
delete from t1; # delete_row
|
||||
|
@ -1549,7 +1549,7 @@ drop table t1;
|
|||
# whole alter table code is being tested all around the test suite already.
|
||||
#
|
||||
|
||||
create table t1 (v varchar(32));
|
||||
create table t1 (v varchar(32) not null);
|
||||
insert into t1 values ('def'),('abc'),('hij'),('3r4f');
|
||||
select * from t1;
|
||||
# Fast alter, no copy performed
|
||||
|
@ -1583,8 +1583,8 @@ drop table t1;
|
|||
# resulted in scanning through deleted memory and we were geting a crash.
|
||||
# that's why we need two tables in the bugtest
|
||||
|
||||
create table bug15205 (val int(11) default null) engine=csv;
|
||||
create table bug15205_2 (val int(11) default null) engine=csv;
|
||||
create table bug15205 (val int(11) not null) engine=csv;
|
||||
create table bug15205_2 (val int(11) not null) engine=csv;
|
||||
--remove_file $MYSQLTEST_VARDIR/master-data/test/bug15205.CSV
|
||||
# system error (can't open the datafile)
|
||||
--replace_result $MYSQLTEST_VARDIR . master-data/ ''
|
||||
|
@ -1604,8 +1604,8 @@ drop table bug15205_2;
|
|||
#
|
||||
set names latin1;
|
||||
create table t1 (
|
||||
c varchar(1),
|
||||
name varchar(64)
|
||||
c varchar(1) not null,
|
||||
name varchar(64) not null
|
||||
) character set latin1 engine=csv;
|
||||
insert into t1 values (0xC0,'LATIN CAPITAL LETTER A WITH GRAVE');
|
||||
insert into t1 values (0xE0,'LATIN SMALL LETTER A WITH GRAVE');
|
||||
|
@ -1623,9 +1623,9 @@ drop table t1;
|
|||
# Bug#22080 "CHECK fails to identify some corruption"
|
||||
#
|
||||
|
||||
create table bug22080_1 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_2 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_3 (id int,string varchar(64)) Engine=CSV;
|
||||
create table bug22080_1 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
create table bug22080_2 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
create table bug22080_3 (id int not null,string varchar(64) not null) Engine=CSV;
|
||||
insert into bug22080_1 values(1,'string');
|
||||
insert into bug22080_1 values(2,'string');
|
||||
insert into bug22080_1 values(3,'string');
|
||||
|
@ -1655,7 +1655,7 @@ drop tables bug22080_1,bug22080_2,bug22080_3;
|
|||
#
|
||||
# Testing float type
|
||||
#
|
||||
create table float_test (id float,string varchar(64)) Engine=CSV;
|
||||
create table float_test (id float not null,string varchar(64) not null) Engine=CSV;
|
||||
insert into float_test values(1.0,'string');
|
||||
insert into float_test values(2.23,'serg.g');
|
||||
insert into float_test values(0.03,'string');
|
||||
|
@ -1670,12 +1670,12 @@ drop table float_test;
|
|||
#
|
||||
|
||||
CREATE TABLE `bug21328` (
|
||||
`col1` int(11) DEFAULT NULL,
|
||||
`col2` int(11) DEFAULT NULL,
|
||||
`col3` int(11) DEFAULT NULL
|
||||
`col1` int(11) NOT NULL,
|
||||
`col2` int(11) NOT NULL,
|
||||
`col3` int(11) NOT NULL
|
||||
) ENGINE=CSV;
|
||||
|
||||
insert into bug21328 values (1,NULL,NULL);
|
||||
insert into bug21328 values (1,0,0);
|
||||
alter table bug21328 engine=myisam;
|
||||
drop table bug21328;
|
||||
|
||||
|
@ -1683,7 +1683,7 @@ drop table bug21328;
|
|||
# BUG#28971 - ALTER TABLE followed by UPDATE for a CSV table make server
|
||||
# crash
|
||||
#
|
||||
create table t1(a blob, b int) engine=csv;
|
||||
create table t1(a blob not null, b int not null) engine=csv;
|
||||
insert into t1 values('a', 1);
|
||||
flush tables;
|
||||
update t1 set b=2;
|
||||
|
@ -1693,13 +1693,13 @@ drop table t1;
|
|||
#
|
||||
# Bug #29353: negative values
|
||||
#
|
||||
create table t1(a int) engine=csv;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values(-1), (-123.34), (2), (-23);
|
||||
select * from t1;
|
||||
check table t1;
|
||||
drop table t1;
|
||||
|
||||
create table t1(a int, b int) engine=csv;
|
||||
create table t1(a int not null, b int not null) engine=csv;
|
||||
--remove_file $MYSQLTEST_VARDIR/master-data/test/t1.CSV
|
||||
--write_file $MYSQLTEST_VARDIR/master-data/test/t1.CSV
|
||||
1, 1E-2
|
||||
|
@ -1717,7 +1717,7 @@ drop table t1;
|
|||
#
|
||||
# Bug #29411: deleting from a csv table leads to the table corruption
|
||||
#
|
||||
create table t1(a int) engine=csv;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values (0), (1), (2);
|
||||
delete from t1 limit 2;
|
||||
check table t1;
|
||||
|
@ -1727,4 +1727,43 @@ check table t1;
|
|||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #31473: does not work with NULL value in datetime field
|
||||
#
|
||||
create table t1(a datetime not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1(a set('foo','bar') not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1(a varchar(32) not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1(a int not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1(a blob not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
create table t1(a bit(1) not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select BIN(a) from t1;
|
||||
drop table t1;
|
||||
# We prevent creation of table with nullable ENUM
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
create table t1(a enum('foo','bar') default null) engine=csv;
|
||||
--error ER_CANT_CREATE_TABLE
|
||||
create table t1(a enum('foo','bar') default 'foo') engine=csv;
|
||||
# Enum columns must be specified as NOT NULL
|
||||
create table t1(a enum('foo','bar') default 'foo' not null) engine=csv;
|
||||
insert into t1 values();
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
|
|
@ -651,4 +651,9 @@ select * from t1 where a=if(b<10,_ucs2 0x00C0,_ucs2 0x0062);
|
|||
select * from t1 where a=if(b<10,_ucs2 0x0062,_ucs2 0x00C0);
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug#30981 CHAR(0x41 USING ucs2) doesn't add leading zero
|
||||
#
|
||||
select hex(char(0x41 using ucs2));
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -1404,3 +1404,30 @@ SELECT b FROM t2 UNION SELECT c FROM t1;
|
|||
SELECT i FROM t2 UNION SELECT c FROM t1;
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
#
|
||||
# Bug#30982: CHAR(..USING..) can return a not-well-formed string
|
||||
# Bug #30986: Character set introducer followed by a HEX string can return bad result
|
||||
#
|
||||
set sql_mode=traditional;
|
||||
select hex(char(0xFF using utf8));
|
||||
select hex(convert(0xFF using utf8));
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 0x616263FF);
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 X'616263FF');
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 B'001111111111');
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select (_utf8 X'616263FF');
|
||||
set sql_mode=default;
|
||||
select hex(char(0xFF using utf8));
|
||||
select hex(convert(0xFF using utf8));
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 0x616263FF);
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 X'616263FF');
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select hex(_utf8 B'001111111111');
|
||||
--error ER_INVALID_CHARACTER_STRING
|
||||
select (_utf8 X'616263FF');
|
||||
|
|
|
@ -277,3 +277,18 @@ SELECT * FROM t1;
|
|||
DROP TABLE t1, t2;
|
||||
DROP DATABASE db1;
|
||||
DROP DATABASE db2;
|
||||
|
||||
#
|
||||
# Bug 31742: delete from ... order by function call that causes an error,
|
||||
# asserts server
|
||||
#
|
||||
|
||||
CREATE FUNCTION f1() RETURNS INT RETURN 1;
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 VALUES (0);
|
||||
--error 1318
|
||||
DELETE FROM t1 ORDER BY (f1(10)) LIMIT 1;
|
||||
DROP TABLE t1;
|
||||
DROP FUNCTION f1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -211,7 +211,8 @@ drop table t2;
|
|||
# select list counter
|
||||
#
|
||||
CREATE TABLE `t1` ( `itemid` int(11) NOT NULL default '0', `grpid` varchar(15) NOT NULL default '', `vendor` int(11) NOT NULL default '0', `date_` date NOT NULL default '0000-00-00', `price` decimal(12,2) NOT NULL default '0.00', PRIMARY KEY (`itemid`,`grpid`,`vendor`,`date_`), KEY `itemid` (`itemid`,`vendor`), KEY `itemid_2` (`itemid`,`date_`));
|
||||
insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);
|
||||
insert into t1 values (128, 'rozn', 2, curdate(), 10),
|
||||
(128, 'rozn', 1, curdate(), 10);
|
||||
SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
|
|
@ -867,5 +867,18 @@ SELECT MIN(a), MIN(b) FROM t5 WHERE a = 1 and b > 1;
|
|||
|
||||
DROP TABLE t1, t2, t3, t4, t5;
|
||||
|
||||
#
|
||||
# Bug #31156: mysqld: item_sum.cc:918:
|
||||
# virtual bool Item_sum_distinct::setup(THD*): Assertion
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a INT);
|
||||
INSERT INTO t1 values (),(),();
|
||||
SELECT (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) ) as x FROM t1
|
||||
GROUP BY x;
|
||||
SELECT 1 FROM t1 GROUP BY (SELECT SLEEP(0) FROM t1 ORDER BY AVG(DISTINCT a) );
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
###
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -408,5 +408,13 @@ select f2 from t2 where f2 in (1,'b');
|
|||
explain select f2 from t2 where f2 in (1,'b');
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Bug #31075: crash in get_func_mm_tree
|
||||
#
|
||||
|
||||
create table t1 (a time, key(a));
|
||||
insert into t1 values (),(),(),(),(),(),(),(),(),();
|
||||
select a from t1 where a not in (a,a,a) group by a;
|
||||
drop table t1;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
|
|
@ -224,4 +224,29 @@ select mod(cast(-2 as unsigned), 3), mod(18446744073709551614, 3), mod(-2, 3);
|
|||
select mod(5, cast(-2 as unsigned)), mod(5, 18446744073709551614), mod(5, -2);
|
||||
select pow(cast(-2 as unsigned), 5), pow(18446744073709551614, 5), pow(-2, 5);
|
||||
|
||||
#
|
||||
# Bug #30587: mysql crashes when trying to group by TIME div NUMBER
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a timestamp, b varchar(20), c bit(1));
|
||||
INSERT INTO t1 VALUES('1998-09-23', 'str1', 1), ('2003-03-25', 'str2', 0);
|
||||
SELECT a DIV 900 y FROM t1 GROUP BY y;
|
||||
SELECT DISTINCT a DIV 900 y FROM t1;
|
||||
SELECT b DIV 900 y FROM t1 GROUP BY y;
|
||||
SELECT c DIV 900 y FROM t1 GROUP BY y;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1(a LONGBLOB);
|
||||
INSERT INTO t1 VALUES('1'),('2'),('3');
|
||||
SELECT DISTINCT (a DIV 254576881) FROM t1;
|
||||
SELECT (a DIV 254576881) FROM t1 UNION ALL
|
||||
SELECT (a DIV 254576881) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE TABLE t1(a SET('a','b','c'));
|
||||
INSERT INTO t1 VALUES ('a');
|
||||
SELECT a DIV 2 FROM t1 UNION SELECT a DIV 2 FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -198,6 +198,21 @@ drop table table_26093;
|
|||
drop function func_26093_a;
|
||||
drop function func_26093_b;
|
||||
|
||||
#
|
||||
# Bug #30832: Assertion + crash with select name_const('test',now());
|
||||
#
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
SELECT NAME_CONST('test', NOW());
|
||||
--error ER_WRONG_ARGUMENTS
|
||||
SELECT NAME_CONST('test', UPPER('test'));
|
||||
|
||||
SELECT NAME_CONST('test', NULL);
|
||||
SELECT NAME_CONST('test', 1);
|
||||
SELECT NAME_CONST('test', -1);
|
||||
SELECT NAME_CONST('test', 1.0);
|
||||
SELECT NAME_CONST('test', -1.0);
|
||||
SELECT NAME_CONST('test', 'test');
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
|
|
|
@ -74,4 +74,13 @@ execute stmt1 using @a;
|
|||
deallocate prepare stmt1;
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
--echo End of 4.1 tests
|
||||
|
||||
|
||||
#
|
||||
# Bug #31440: 'select 1 regex null' asserts debug server
|
||||
#
|
||||
|
||||
SELECT 1 REGEXP NULL;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -1231,4 +1231,16 @@ SELECT SUBSTR(a,1,len) FROM t1;
|
|||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #28850: Potential bugs related to the return type of the CHAR function
|
||||
#
|
||||
|
||||
CREATE TABLE t1 AS SELECT CHAR(0x414243) as c1;
|
||||
SELECT HEX(c1) from t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
CREATE VIEW v1 AS SELECT CHAR(0x414243) as c1;
|
||||
SELECT HEX(c1) from v1;
|
||||
DROP VIEW v1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -547,6 +547,16 @@ DROP TABLE testBug8868;
|
|||
|
||||
SET NAMES DEFAULT;
|
||||
|
||||
#
|
||||
# Bug #31160: MAKETIME() crashes server when returning NULL in ORDER BY using
|
||||
# filesort
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
a TIMESTAMP
|
||||
);
|
||||
INSERT INTO t1 VALUES (now()), (now());
|
||||
SELECT 1 FROM t1 ORDER BY MAKETIME(1, 1, a);
|
||||
DROP TABLE t1;
|
||||
#
|
||||
# Bug #19844 time_format in Union truncates values
|
||||
#
|
||||
|
|
|
@ -797,6 +797,42 @@ UPDATE t1 set spatial_point=GeomFromText('POINT(41 46)') where c1 like 'f%';
|
|||
CHECK TABLE t1 EXTENDED;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #30286 spatial index cause corruption and server crash!
|
||||
#
|
||||
|
||||
create table t1 (a geometry not null, spatial index(a));
|
||||
insert into t1 values (PointFromWKB(POINT(1.1517219314031e+164, 131072)));
|
||||
insert into t1 values (PointFromWKB(POINT(9.1248812352444e+192, 2.9740338169556e+284)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.7783097267365e-299, -0)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.49166814624e-154, 2.0880974297595e-53)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.0917382598702e+149, 1.2024538023802e+111)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0349165139404e+236, 2.9993936277913e-241)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.5243548967072e-29, 1.2024538023802e+111)));
|
||||
insert into t1 values (PointFromWKB(POINT(0, 6.9835074892995e-251)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0880974297595e-53, 3.1050361846014e+231)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.8728483499323e-188, 2.4600631144627e+260)));
|
||||
insert into t1 values (PointFromWKB(POINT(3.0517578125e-05, 2.0349165139404e+236)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.1517219314031e+164, 1.1818212630766e-125)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.481040258324e-265, 5.7766220027675e-275)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0880974297595e-53, 2.5243548967072e-29)));
|
||||
insert into t1 values (PointFromWKB(POINT(5.7766220027675e-275, 9.9464647281957e+86)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.2181357552967e+130, 3.7857669957337e-270)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.5767114681874e-246, 3.6893488147419e+19)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.5767114681874e-246, 3.7537584144024e+255)));
|
||||
insert into t1 values (PointFromWKB(POINT(3.7857669957337e-270, 1.8033161362863e-130)));
|
||||
insert into t1 values (PointFromWKB(POINT(0, 5.8774717541114e-39)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.1517219314031e+164, 2.2761049594727e-159)));
|
||||
insert into t1 values (PointFromWKB(POINT(6.243497100632e+144, 3.7857669957337e-270)));
|
||||
insert into t1 values (PointFromWKB(POINT(3.7857669957337e-270, 2.6355494858076e-82)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0349165139404e+236, 3.8518598887745e-34)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.6566128730774e-10, 2.0880974297595e-53)));
|
||||
insert into t1 values (PointFromWKB(POINT(2.0880974297595e-53, 1.8827498946116e-183)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.8033161362863e-130, 9.1248812352444e+192)));
|
||||
insert into t1 values (PointFromWKB(POINT(4.7783097267365e-299, 2.2761049594727e-159)));
|
||||
insert into t1 values (PointFromWKB(POINT(1.94906280228e+289, 1.2338789709327e-178)));
|
||||
drop table t1;
|
||||
|
||||
# End of 4.1 tests
|
||||
|
||||
#
|
||||
|
|
|
@ -432,6 +432,14 @@ INSERT INTO t1 VALUES (NULL);
|
|||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #30955 geomfromtext() crasher
|
||||
#
|
||||
CREATE TABLE `t1` ( `col9` set('a'), `col89` date);
|
||||
INSERT INTO `t1` VALUES ('','0000-00-00');
|
||||
select geomfromtext(col9,col89) as a from t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 4.1 tests
|
||||
|
||||
#
|
||||
|
@ -591,6 +599,8 @@ SELECT AsText(GeometryFromText(CONCAT(
|
|||
--enable_query_log
|
||||
SELECT 1;
|
||||
|
||||
-- source include/gis_keys.inc
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
|
||||
|
|
|
@ -585,5 +585,37 @@ drop user mysqltest_1@localhost;
|
|||
drop user mysqltest_2@localhost;
|
||||
|
||||
|
||||
#
|
||||
# Bug #30468: column level privileges not respected when joining tables
|
||||
#
|
||||
CREATE DATABASE db1;
|
||||
|
||||
USE db1;
|
||||
CREATE TABLE t1 (a INT, b INT);
|
||||
INSERT INTO t1 VALUES (1,1),(2,2);
|
||||
|
||||
CREATE TABLE t2 (b INT, c INT);
|
||||
INSERT INTO t2 VALUES (1,100),(2,200);
|
||||
|
||||
GRANT SELECT ON t1 TO mysqltest1@localhost;
|
||||
GRANT SELECT (b) ON t2 TO mysqltest1@localhost;
|
||||
|
||||
connect (conn1,localhost,mysqltest1,,);
|
||||
connection conn1;
|
||||
USE db1;
|
||||
--error ER_COLUMNACCESS_DENIED_ERROR
|
||||
SELECT c FROM t2;
|
||||
--error ER_COLUMNACCESS_DENIED_ERROR
|
||||
SELECT * FROM t2;
|
||||
--error ER_COLUMNACCESS_DENIED_ERROR
|
||||
SELECT * FROM t1 JOIN t2 USING (b);
|
||||
|
||||
connection default;
|
||||
disconnect conn1;
|
||||
DROP TABLE db1.t1, db1.t2;
|
||||
DROP USER mysqltest1@localhost;
|
||||
DROP DATABASE db1;
|
||||
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
|
|
|
@ -811,6 +811,7 @@ EXPLAIN SELECT a FROM t1 IGNORE INDEX (PRIMARY,i2);
|
|||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR JOIN (PRIMARY,i2);
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (PRIMARY,i2) GROUP BY a;
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
|
||||
SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY,i2) ORDER BY a;
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (PRIMARY)
|
||||
IGNORE INDEX FOR GROUP BY (i2) GROUP BY a;
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX (PRIMARY) IGNORE INDEX FOR ORDER BY (i2);
|
||||
|
|
|
@ -213,6 +213,15 @@ CREATE TABLE t1 (
|
|||
INSERT INTO t1 VALUES('1'), ('2');
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# BUG#30590 - delete from memory table with composite btree primary key
|
||||
#
|
||||
CREATE TABLE t1 (a INT, KEY USING BTREE(a)) ENGINE=MEMORY;
|
||||
INSERT INTO t1 VALUES(1),(2),(2);
|
||||
DELETE FROM t1 WHERE a=2;
|
||||
SELECT * FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo End of 4.1 tests
|
||||
|
||||
#
|
||||
|
|
|
@ -1090,6 +1090,14 @@ show columns from t1;
|
|||
drop table t1;
|
||||
|
||||
--echo End of 5.0 tests.
|
||||
|
||||
#
|
||||
# Bug#30079 A check for "hidden" I_S tables is flawed
|
||||
#
|
||||
--error 1109
|
||||
show fields from information_schema.table_names;
|
||||
--error 1109
|
||||
show keys from information_schema.table_names;
|
||||
#
|
||||
# Show engines
|
||||
#
|
||||
|
@ -1178,4 +1186,50 @@ select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysql' AND TA
|
|||
select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='mysql' AND TABLE_NAME='';
|
||||
select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='' AND TABLE_NAME='';
|
||||
select count(*) from INFORMATION_SCHEMA.TABLES where TABLE_SCHEMA='' AND TABLE_NAME='nonexisting';
|
||||
|
||||
#
|
||||
# Bug#30689 Wrong content in I_S.VIEWS.VIEW_DEFINITION if VIEW is based on I_S
|
||||
#
|
||||
CREATE VIEW v1
|
||||
AS SELECT *
|
||||
FROM INFORMATION_SCHEMA.TABLES;
|
||||
SELECT VIEW_DEFINITION FROM INFORMATION_SCHEMA.VIEWS where TABLE_NAME = 'v1';
|
||||
DROP VIEW v1;
|
||||
|
||||
#
|
||||
# Bug#30795 Query on INFORMATION_SCHEMA.SCHEMATA, wrong result
|
||||
#
|
||||
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA
|
||||
WHERE SCHEMA_NAME ='information_schema';
|
||||
|
||||
#
|
||||
# Bug#31381 Error in retrieving Data from INFORMATION_SCHEMA
|
||||
#
|
||||
SELECT TABLE_COLLATION FROM INFORMATION_SCHEMA.TABLES
|
||||
WHERE TABLE_SCHEMA='mysql' and TABLE_NAME= 'db';
|
||||
|
||||
#
|
||||
# Bug#31633 Information schema = NULL queries crash the server
|
||||
#
|
||||
select * from information_schema.columns where table_schema = NULL;
|
||||
select * from `information_schema`.`COLUMNS` where `TABLE_NAME` = NULL;
|
||||
select * from `information_schema`.`KEY_COLUMN_USAGE` where `TABLE_SCHEMA` = NULL;
|
||||
select * from `information_schema`.`KEY_COLUMN_USAGE` where `TABLE_NAME` = NULL;
|
||||
select * from `information_schema`.`PARTITIONS` where `TABLE_SCHEMA` = NULL;
|
||||
select * from `information_schema`.`PARTITIONS` where `TABLE_NAME` = NULL;
|
||||
select * from `information_schema`.`REFERENTIAL_CONSTRAINTS` where `CONSTRAINT_SCHEMA` = NULL;
|
||||
select * from `information_schema`.`REFERENTIAL_CONSTRAINTS` where `TABLE_NAME` = NULL;
|
||||
select * from information_schema.schemata where schema_name = NULL;
|
||||
select * from `information_schema`.`STATISTICS` where `TABLE_SCHEMA` = NULL;
|
||||
select * from `information_schema`.`STATISTICS` where `TABLE_NAME` = NULL;
|
||||
select * from information_schema.tables where table_schema = NULL;
|
||||
select * from information_schema.tables where table_catalog = NULL;
|
||||
select * from information_schema.tables where table_name = NULL;
|
||||
select * from `information_schema`.`TABLE_CONSTRAINTS` where `TABLE_SCHEMA` = NULL;
|
||||
select * from `information_schema`.`TABLE_CONSTRAINTS` where `TABLE_NAME` = NULL;
|
||||
select * from `information_schema`.`TRIGGERS` where `EVENT_OBJECT_SCHEMA` = NULL;
|
||||
select * from `information_schema`.`TRIGGERS` where `EVENT_OBJECT_TABLE` = NULL;
|
||||
select * from `information_schema`.`VIEWS` where `TABLE_SCHEMA` = NULL;
|
||||
select * from `information_schema`.`VIEWS` where `TABLE_NAME` = NULL;
|
||||
|
||||
--echo End of 5.1 tests.
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
--source include/have_innodb.inc
|
||||
SET storage_engine=innodb;
|
||||
--source include/gis_generic.inc
|
||||
--source include/gis_keys.inc
|
||||
|
||||
#
|
||||
# Bug #15680 (SPATIAL key in innodb)
|
||||
|
|
|
@ -372,3 +372,15 @@ INSERT INTO t1 (prev_id) SELECT id
|
|||
SELECT * FROM t1;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#30384: Having SQL_BUFFER_RESULT option in the
|
||||
--echo # CREATE .. KEY(..) .. SELECT led to creating corrupted index.
|
||||
--echo #
|
||||
create table t1(f1 int);
|
||||
insert into t1 values(1),(2),(3);
|
||||
create table t2 (key(f1)) engine=myisam select sql_buffer_result f1 from t1;
|
||||
check table t2 extended;
|
||||
drop table t1,t2;
|
||||
--echo ##################################################################
|
||||
|
||||
|
|
|
@ -698,4 +698,33 @@ select '^^: The above should be ~= 20 + cost(select * from t1). Value less than
|
|||
|
||||
drop table t1, t2;
|
||||
|
||||
#
|
||||
# Bug #31094: Forcing index-based sort doesn't work anymore if joins are
|
||||
# done
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a INT PRIMARY KEY, b INT);
|
||||
CREATE TABLE t2 (c INT PRIMARY KEY, d INT);
|
||||
|
||||
INSERT INTO t1 VALUES(1,NULL),(2,NULL),(3,NULL),(4,NULL);
|
||||
INSERT INTO t1 SELECT a + 4, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 8, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 16, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 32, b FROM t1;
|
||||
INSERT INTO t1 SELECT a + 64, b FROM t1;
|
||||
INSERT INTO t2 SELECT a, b FROM t1;
|
||||
|
||||
#expect indexed ORDER BY
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a LIMIT 2;
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a LIMIT 2;
|
||||
SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a LIMIT 2;
|
||||
SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a LIMIT 2;
|
||||
|
||||
#expect filesort
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a;
|
||||
EXPLAIN SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a;
|
||||
SELECT * FROM t1 JOIN t2 ON b=c ORDER BY a;
|
||||
SELECT * FROM t1 JOIN t2 ON a=c ORDER BY a;
|
||||
|
||||
DROP TABLE IF EXISTS t1,t2;
|
||||
--echo End of 5.0 tests.
|
||||
|
|
|
@ -253,11 +253,11 @@ use mysql;
|
|||
CREATE TABLE `general_log` (
|
||||
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
|
||||
ON UPDATE CURRENT_TIMESTAMP,
|
||||
`user_host` mediumtext,
|
||||
`thread_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`command_type` varchar(64) DEFAULT NULL,
|
||||
`argument` mediumtext
|
||||
`user_host` mediumtext NOT NULL,
|
||||
`thread_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`command_type` varchar(64) NOT NULL,
|
||||
`argument` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';
|
||||
|
||||
CREATE TABLE `slow_log` (
|
||||
|
@ -268,10 +268,10 @@ CREATE TABLE `slow_log` (
|
|||
`lock_time` time NOT NULL,
|
||||
`rows_sent` int(11) NOT NULL,
|
||||
`rows_examined` int(11) NOT NULL,
|
||||
`db` varchar(512) DEFAULT NULL,
|
||||
`last_insert_id` int(11) DEFAULT NULL,
|
||||
`insert_id` int(11) DEFAULT NULL,
|
||||
`server_id` int(11) DEFAULT NULL,
|
||||
`db` varchar(512) NOT NULL,
|
||||
`last_insert_id` int(11) NOT NULL,
|
||||
`insert_id` int(11) NOT NULL,
|
||||
`server_id` int(11) NOT NULL,
|
||||
`sql_text` mediumtext NOT NULL
|
||||
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='Slow log';
|
||||
|
||||
|
|
|
@ -511,4 +511,18 @@ SELECT * FROM tm1;
|
|||
CHECK TABLE tm1;
|
||||
DROP TABLE tm1, t1, t2;
|
||||
|
||||
#
|
||||
# Bug#15522 - create ... select and with merge tables
|
||||
#
|
||||
# This was fixed together with Bug#20662 (Infinite loop in CREATE TABLE
|
||||
# IF NOT EXISTS ... SELECT with locked tables).
|
||||
# The new behavior for MERGE tables is consistent with the
|
||||
# CREATE TABLE SELECT behavior for ordinary tables.
|
||||
#
|
||||
CREATE TABLE t1(c1 INT);
|
||||
CREATE TABLE t2 (c1 INT) ENGINE=MERGE UNION=(t1) INSERT_METHOD=FIRST;
|
||||
--error ER_UPDATE_TABLE_USED
|
||||
CREATE TABLE IF NOT EXISTS t1 SELECT * FROM t2;
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -1576,6 +1576,23 @@ SELECT * FROM t2;
|
|||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#29815: new option for suppressing last line of mysqldump:
|
||||
--echo # "Dump completed on"
|
||||
--echo #
|
||||
|
||||
--echo # --skip-dump-date:
|
||||
--replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*//
|
||||
--exec $MYSQL_DUMP --skip-dump-date test
|
||||
|
||||
--echo # --dump-date:
|
||||
--replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*// / on [0-9 :-]+/ on DATE/
|
||||
--exec $MYSQL_DUMP --dump-date test
|
||||
|
||||
--echo # --dump-date (default):
|
||||
--replace_regex /-- [^D][^u][^m][^p].*// /\/\*!.*// / on [0-9 :-]+/ on DATE/
|
||||
--exec $MYSQL_DUMP test
|
||||
|
||||
--echo #
|
||||
--echo # End of 5.0 tests
|
||||
--echo #
|
||||
|
|
|
@ -40,3 +40,16 @@
|
|||
--exec $MYSQL_SLAP --only-print --delimiter=";" --query="select * from t1;select * from t2" --create="CREATE TABLE t1 (id int, name varchar(64)); create table t2(foo1 varchar(32), foo2 varchar(32)); INSERT INTO t1 VALUES (1, 'This is a test'); insert into t2 values ('test', 'test2')" --engine="heap,myisam" --post-query="SHOW TABLES" --pre-query="SHOW TABLES" --number-of-queries=6 --commit=1;
|
||||
|
||||
--exec $MYSQL_SLAP --silent --concurrency=5 --iterations=1 --number-int-cols=2 --number-char-cols=3 --auto-generate-sql --auto-generate-sql-add-autoincrement --auto-generate-sql-load-type=write --detach=2
|
||||
|
||||
--echo #
|
||||
--echo # Bug #29985: mysqlslap -- improper handling of resultsets in SPROCs
|
||||
--echo #
|
||||
|
||||
--disable_warnings
|
||||
DROP PROCEDURE IF EXISTS p1;
|
||||
--enable_warnings
|
||||
CREATE PROCEDURE p1() SELECT 1;
|
||||
|
||||
--exec $MYSQL_SLAP --create-schema=test --delimiter=";" --query="CALL p1; SELECT 1;" --silent 2>&1
|
||||
|
||||
DROP PROCEDURE p1;
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
# Initialise
|
||||
--disable_warnings
|
||||
drop table if exists t1;
|
||||
drop table if exists t1, t2;
|
||||
--enable_warnings
|
||||
|
||||
#
|
||||
|
@ -231,4 +231,27 @@ drop table bug19145a;
|
|||
drop table bug19145b;
|
||||
drop table bug19145c;
|
||||
|
||||
# End of 4.1 tests
|
||||
--echo # End of 4.1 tests
|
||||
|
||||
--echo #
|
||||
--echo # Bug #31471: decimal_bin_size: Assertion `scale >= 0 &&
|
||||
--echo # precision > 0 && scale <= precision'
|
||||
--echo #
|
||||
|
||||
CREATE TABLE t1 (a DECIMAL (1, 0) ZEROFILL, b DECIMAL (1, 0) ZEROFILL);
|
||||
INSERT INTO t1 (a, b) VALUES (0, 0);
|
||||
|
||||
CREATE TABLE t2 SELECT IFNULL(a, b) FROM t1;
|
||||
DESCRIBE t2;
|
||||
DROP TABLE t2;
|
||||
|
||||
CREATE TABLE t2 SELECT IFNULL(a, NULL) FROM t1;
|
||||
DESCRIBE t2;
|
||||
DROP TABLE t2;
|
||||
|
||||
CREATE TABLE t2 SELECT IFNULL(NULL, b) FROM t1;
|
||||
DESCRIBE t2;
|
||||
|
||||
DROP TABLE t1, t2;
|
||||
|
||||
--echo # End of 5.0 tests
|
||||
|
|
|
@ -358,3 +358,12 @@ SELECT * FROM (SELECT a, SUM(a) FROM t1 GROUP BY a WITH ROLLUP) as t;
|
|||
|
||||
DROP TABLE t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#31095: Unexpected NULL constant caused server crash.
|
||||
--echo #
|
||||
create table t1(a int);
|
||||
insert into t1 values (1),(2),(3);
|
||||
select count(a) from t1 group by null with rollup;
|
||||
drop table t1;
|
||||
--echo ##############################################################
|
||||
|
||||
|
|
|
@ -779,3 +779,60 @@ EXPLAIN SELECT id,c3 FROM t2 WHERE c2 BETWEEN 20 AND 30 ORDER BY c3 LIMIT 4000;
|
|||
SELECT id,c3 FROM t2 WHERE c2=11 ORDER BY c3 LIMIT 20;
|
||||
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
#
|
||||
# Bug #30665: Inconsistent optimization of IGNORE INDEX FOR {ORDER BY|GROUP BY}
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
a INT,
|
||||
b INT,
|
||||
PRIMARY KEY (a),
|
||||
KEY ab(a, b)
|
||||
);
|
||||
INSERT INTO t1 VALUES (1,1),(2,2),(3,3),(4,4);
|
||||
INSERT INTO t1 SELECT a + 4, b + 4 FROM t1;
|
||||
INSERT INTO t1 SELECT a + 8, b + 8 FROM t1;
|
||||
INSERT INTO t1 SELECT a +16, b +16 FROM t1;
|
||||
INSERT INTO t1 SELECT a +32, b +32 FROM t1;
|
||||
INSERT INTO t1 SELECT a +64, b +64 FROM t1;
|
||||
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a;
|
||||
|
||||
--disable_query_log
|
||||
--let $q = `show status like 'Created_tmp_tables';`
|
||||
eval set @tmp_tables_before =
|
||||
CAST(REPLACE('$q', 'Created_tmp_tables', '') AS UNSIGNED);
|
||||
--enable_query_log
|
||||
|
||||
SELECT a FROM t1 IGNORE INDEX FOR GROUP BY (a, ab) GROUP BY a;
|
||||
|
||||
# this query creates one temporary table in itself, which we are not
|
||||
# interested in.
|
||||
|
||||
--disable_query_log
|
||||
--let $q = `show status like 'Created_tmp_tables';`
|
||||
eval set @tmp_tables_after =
|
||||
CAST(REPLACE('$q', 'Created_tmp_tables', '') AS UNSIGNED);
|
||||
--enable_query_log
|
||||
|
||||
SELECT @tmp_tables_after = @tmp_tables_before ;
|
||||
|
||||
EXPLAIN SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a;
|
||||
|
||||
--disable_query_log
|
||||
--let $q = `show status like 'Created_tmp_tables';`
|
||||
eval set @tmp_tables_before =
|
||||
CAST(REPLACE('$q', 'Created_tmp_tables', '') AS UNSIGNED);
|
||||
--enable_query_log
|
||||
|
||||
SELECT a FROM t1 IGNORE INDEX FOR ORDER BY (a, ab) ORDER BY a;
|
||||
|
||||
--disable_query_log
|
||||
--let $q = `show status like 'Created_tmp_tables';`
|
||||
eval set @tmp_tables_after =
|
||||
CAST(REPLACE('$q', 'Created_tmp_tables', '') AS UNSIGNED);
|
||||
--enable_query_log
|
||||
|
||||
SELECT @tmp_tables_after = @tmp_tables_before;
|
||||
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -1422,6 +1422,30 @@ ALTER TABLE t1 DROP PARTITION p1;
|
|||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #30484: Partitions: crash with self-referencing trigger
|
||||
#
|
||||
|
||||
create table t (s1 int) engine=myisam partition by key (s1);
|
||||
create trigger t_ad after delete on t for each row insert into t values (old.s1);
|
||||
insert into t values (1);
|
||||
drop table t;
|
||||
|
||||
#
|
||||
# Bug #27816: Log tables ran with partitions crashes the server when logging
|
||||
# is enabled.
|
||||
#
|
||||
|
||||
USE mysql;
|
||||
SET GLOBAL general_log = 0;
|
||||
ALTER TABLE general_log ENGINE = MyISAM;
|
||||
--error ER_WRONG_USAGE
|
||||
ALTER TABLE general_log PARTITION BY RANGE (TO_DAYS(event_time))
|
||||
(PARTITION p0 VALUES LESS THAN (733144), PARTITION p1 VALUES LESS THAN (3000000));
|
||||
ALTER TABLE general_log ENGINE = CSV;
|
||||
SET GLOBAL general_log = default;
|
||||
use test;
|
||||
|
||||
#
|
||||
# Bug #27084 partitioning by list seems failing when using case
|
||||
# BUG #18198: Case no longer supported, test case removed
|
||||
|
|
|
@ -134,3 +134,11 @@ SELECT * FROM t1 WHERE first_name='Andy' OR last_name='Jake';
|
|||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# BUG#30583 - Partition on DOUBLE key + INNODB + count(*) == crash
|
||||
#
|
||||
CREATE TABLE t1 (a DOUBLE NOT NULL, KEY(a)) ENGINE=InnoDB
|
||||
PARTITION BY KEY(a) PARTITIONS 10;
|
||||
INSERT INTO t1 VALUES(1),(2);
|
||||
SELECT COUNT(*) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
|
|
@ -1250,10 +1250,9 @@ disconnect user1;
|
|||
disconnect user2;
|
||||
disconnect user3;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
# Bug #28211 RENAME DATABASE and query cache don't play nicely together
|
||||
#
|
||||
# TODO: enable these tests when RENAME DATABASE is implemented.
|
||||
# --disable_warnings
|
||||
# drop database if exists db1;
|
||||
|
@ -1299,3 +1298,24 @@ set GLOBAL query_cache_limit=default;
|
|||
set GLOBAL query_cache_min_res_unit=default;
|
||||
set GLOBAL query_cache_size=default;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
# Bug #31157: Crash when select+order by the avg of some field within the
|
||||
# group by
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a ENUM('rainbow'));
|
||||
INSERT INTO t1 VALUES (),(),(),(),();
|
||||
SELECT 1 FROM t1 GROUP BY (SELECT 1 FROM t1 ORDER BY AVG(LAST_INSERT_ID()));
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE t1 (a LONGBLOB);
|
||||
INSERT INTO t1 SET a = 'aaaa';
|
||||
INSERT INTO t1 SET a = 'aaaa';
|
||||
SELECT 1 FROM t1 GROUP BY
|
||||
(SELECT LAST_INSERT_ID() FROM t1 ORDER BY MIN(a) ASC LIMIT 1);
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
||||
|
|
|
@ -139,3 +139,58 @@ insert into t1 values (9912101,9912101,9912101);
|
|||
insert into t1 values (11111,11111,11111);
|
||||
select * from t1;
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #30942: select str_to_date from derived table returns varying results
|
||||
#
|
||||
CREATE TABLE t1 (
|
||||
a INT
|
||||
);
|
||||
|
||||
INSERT INTO t1 VALUES (1);
|
||||
INSERT INTO t1 VALUES (NULL);
|
||||
|
||||
SELECT str_to_date( '', a ) FROM t1;
|
||||
DROP TABLE t1;
|
||||
|
||||
|
||||
#
|
||||
# Bug #31221: Optimizer incorrectly identifies impossible WHERE clause
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a DATE, b int, PRIMARY KEY (a,b));
|
||||
INSERT INTO t1 VALUES (DATE(NOW()), 1);
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
INSERT INTO t1 VALUES (DATE(NOW()), 2);
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW() AND b = 1;
|
||||
ALTER TABLE t1 DROP PRIMARY KEY;
|
||||
SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
EXPLAIN SELECT COUNT(*) FROM t1 WHERE a = NOW();
|
||||
|
||||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug #28687: Search fails on '0000-00-00' date after sql_mode change
|
||||
#
|
||||
|
||||
CREATE TABLE t1 (a DATE);
|
||||
CREATE TABLE t2 (a DATE);
|
||||
CREATE INDEX i ON t1 (a);
|
||||
INSERT INTO t1 VALUES ('0000-00-00'),('0000-00-00');
|
||||
INSERT INTO t2 VALUES ('0000-00-00'),('0000-00-00');
|
||||
SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
SELECT * FROM t2 WHERE a = '0000-00-00';
|
||||
SET SQL_MODE=TRADITIONAL;
|
||||
EXPLAIN SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
SELECT * FROM t1 WHERE a = '0000-00-00';
|
||||
SELECT * FROM t2 WHERE a = '0000-00-00';
|
||||
--error ER_TRUNCATED_WRONG_VALUE
|
||||
INSERT INTO t1 VALUES ('0000-00-00');
|
||||
SET SQL_MODE=DEFAULT;
|
||||
DROP TABLE t1,t2;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
|
|
@ -283,6 +283,43 @@ select * from t1 where f1 between 2002010 and 20070101000000;
|
|||
select * from t1 where f1 between 20020101 and 2007010100000;
|
||||
drop table t1;
|
||||
|
||||
--echo #
|
||||
--echo # Bug#27216: functions with parameters of different date types may
|
||||
--echo # return wrong type of the result.
|
||||
--echo #
|
||||
create table t1 (f1 date, f2 datetime, f3 varchar(20));
|
||||
create table t2 as select coalesce(f1,f1) as f4 from t1;
|
||||
desc t2;
|
||||
create table t3 as select coalesce(f1,f2) as f4 from t1;
|
||||
desc t3;
|
||||
create table t4 as select coalesce(f2,f2) as f4 from t1;
|
||||
desc t4;
|
||||
create table t5 as select coalesce(f1,f3) as f4 from t1;
|
||||
desc t5;
|
||||
create table t6 as select coalesce(f2,f3) as f4 from t1;
|
||||
desc t6;
|
||||
create table t7 as select coalesce(makedate(1997,1),f2) as f4 from t1;
|
||||
desc t7;
|
||||
create table t8 as select coalesce(cast('01-01-01' as datetime),f2) as f4
|
||||
from t1;
|
||||
desc t8;
|
||||
create table t9 as select case when 1 then cast('01-01-01' as date)
|
||||
when 0 then cast('01-01-01' as date) end as f4 from t1;
|
||||
desc t9;
|
||||
create table t10 as select case when 1 then cast('01-01-01' as datetime)
|
||||
when 0 then cast('01-01-01' as datetime) end as f4 from t1;
|
||||
desc t10;
|
||||
create table t11 as select if(1, cast('01-01-01' as datetime),
|
||||
cast('01-01-01' as date)) as f4 from t1;
|
||||
desc t11;
|
||||
create table t12 as select least(cast('01-01-01' as datetime),
|
||||
cast('01-01-01' as date)) as f4 from t1;
|
||||
desc t12;
|
||||
create table t13 as select ifnull(cast('01-01-01' as datetime),
|
||||
cast('01-01-01' as date)) as f4 from t1;
|
||||
desc t13;
|
||||
drop tables t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13;
|
||||
--echo ###################################################################
|
||||
#
|
||||
# Bug #31253: crash comparing datetime to double
|
||||
# Should return 1st row only. Crashes if NULL propagation fails.
|
||||
|
@ -302,7 +339,6 @@ select sum(a) from t1 group by convert(a, datetime);
|
|||
drop table t1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
#
|
||||
# Test of storing datetime into date fields
|
||||
#
|
||||
|
|
|
@ -410,6 +410,13 @@ SELECT ROUND(qty,3), dps, ROUND(qty,dps) FROM t1;
|
|||
DROP TABLE t1;
|
||||
|
||||
#
|
||||
# Bug#31019: MOD() function and operator crashes MySQL when
|
||||
# divisor is very long and < 1
|
||||
#
|
||||
|
||||
SELECT 1 % .123456789123456789123456789123456789123456789123456789123456789123456789123456789 AS '%';
|
||||
SELECT MOD(1, .123456789123456789123456789123456789123456789123456789123456789123456789123456789) AS 'MOD()';
|
||||
|
||||
# Bug #31227: memory overrun with decimal (6,6) and zerofill and group_concat
|
||||
# valgrind will complain about this (the group_concat(f2)) on unpatched mysqld.
|
||||
#
|
||||
|
@ -419,3 +426,4 @@ select group_concat(f1),group_concat(f2) from t1;
|
|||
drop table t1;
|
||||
|
||||
--echo End of 5.0 tests
|
||||
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue