Merge 5.5-mwl248 -> 10.0-base
This commit is contained in:
commit
f853333e09
@ -1932,7 +1932,9 @@ static void print_xml_row(FILE *xml_file, const char *row_name,
|
|||||||
{
|
{
|
||||||
create_stmt_ptr= (*row)[i];
|
create_stmt_ptr= (*row)[i];
|
||||||
create_stmt_len= lengths[i];
|
create_stmt_len= lengths[i];
|
||||||
|
#ifndef DBUG_OFF
|
||||||
body_found= 1;
|
body_found= 1;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
4
debian/autobake-deb.sh
vendored
4
debian/autobake-deb.sh
vendored
@ -18,8 +18,8 @@ export DEB_BUILD_OPTIONS="nocheck"
|
|||||||
# Find major.minor version.
|
# Find major.minor version.
|
||||||
#
|
#
|
||||||
source ./VERSION
|
source ./VERSION
|
||||||
UPSTREAM="${MYSQL_VERSION_MAJOR}.${MYSQL_VERSION_MINOR}.${MYSQL_VERSION_PATCH}"
|
UPSTREAM="${MYSQL_VERSION_MAJOR}.${MYSQL_VERSION_MINOR}.${MYSQL_VERSION_PATCH}${MYSQL_VERSION_EXTRA}"
|
||||||
RELEASE_EXTRA=${MYSQL_VERSION_EXTRA}
|
RELEASE_EXTRA=""
|
||||||
|
|
||||||
RELEASE_NAME=mariadb
|
RELEASE_NAME=mariadb
|
||||||
PATCHLEVEL=""
|
PATCHLEVEL=""
|
||||||
|
@ -51,9 +51,6 @@ word32 PBKDF2_HMAC<T>::DeriveKey(byte* derived, word32 dLen, const byte* pwd,
|
|||||||
if (dLen > MaxDerivedKeyLength())
|
if (dLen > MaxDerivedKeyLength())
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (iterations < 0)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
ByteBlock buffer(T::DIGEST_SIZE);
|
ByteBlock buffer(T::DIGEST_SIZE);
|
||||||
HMAC<T> hmac;
|
HMAC<T> hmac;
|
||||||
|
|
||||||
|
@ -2403,3 +2403,30 @@ a b
|
|||||||
1 1
|
1 1
|
||||||
drop table t1;
|
drop table t1;
|
||||||
#
|
#
|
||||||
|
# Checking that CREATE IF NOT EXISTS is not blocked by running SELECT
|
||||||
|
#
|
||||||
|
create table t1 (a int, b int) engine=myisam;
|
||||||
|
create table t2 (a int, b int) engine=myisam;
|
||||||
|
insert into t1 values (1,1);
|
||||||
|
lock tables t1 read;
|
||||||
|
set @@lock_wait_timeout=5;
|
||||||
|
create table if not exists t1 (a int, b int);
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
create table if not exists t1 (a int, b int) select 2,2;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
create table if not exists t1 like t2;
|
||||||
|
Warnings:
|
||||||
|
Note 1050 Table 't1' already exists
|
||||||
|
create table t1 (a int, b int);
|
||||||
|
ERROR 42S01: Table 't1' already exists
|
||||||
|
create table t1 (a int, b int) select 2,2;
|
||||||
|
ERROR 42S01: Table 't1' already exists
|
||||||
|
create table t1 like t2;
|
||||||
|
ERROR 42S01: Table 't1' already exists
|
||||||
|
select * from t1;
|
||||||
|
a b
|
||||||
|
1 1
|
||||||
|
unlock tables;
|
||||||
|
drop table t1,t2;
|
||||||
|
@ -1940,6 +1940,26 @@ event_object_table trigger_name
|
|||||||
# Switching to connection 'default'.
|
# Switching to connection 'default'.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
# MDEV-3818: Query against view over IS tables worse than equivalent query without view
|
||||||
|
#
|
||||||
|
create view v1 as select table_schema, table_name, column_name from information_schema.columns;
|
||||||
|
explain extended
|
||||||
|
select column_name from v1
|
||||||
|
where (table_schema = "osm") and (table_name = "test");
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 SIMPLE columns ALL NULL TABLE_SCHEMA,TABLE_NAME NULL NULL NULL NULL Using where; Open_frm_only; Scanned 0 databases
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `information_schema`.`columns`.`COLUMN_NAME` AS `column_name` from `information_schema`.`columns` where ((`information_schema`.`columns`.`TABLE_SCHEMA` = 'osm') and (`information_schema`.`columns`.`TABLE_NAME` = 'test'))
|
||||||
|
explain extended
|
||||||
|
select information_schema.columns.column_name as column_name
|
||||||
|
from information_schema.columns
|
||||||
|
where (information_schema.columns.table_schema = 'osm') and (information_schema.columns.table_name = 'test');
|
||||||
|
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||||
|
1 SIMPLE columns ALL NULL TABLE_SCHEMA,TABLE_NAME NULL NULL NULL NULL Using where; Open_frm_only; Scanned 0 databases
|
||||||
|
Warnings:
|
||||||
|
Note 1003 select `information_schema`.`columns`.`COLUMN_NAME` AS `column_name` from `information_schema`.`columns` where ((`information_schema`.`columns`.`TABLE_SCHEMA` = 'osm') and (`information_schema`.`columns`.`TABLE_NAME` = 'test'))
|
||||||
|
drop view v1;
|
||||||
|
#
|
||||||
# Clean-up.
|
# Clean-up.
|
||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
#
|
#
|
||||||
|
@ -2247,5 +2247,36 @@ MAX(a) bb
|
|||||||
NULL NULL
|
NULL NULL
|
||||||
drop table t1, t2;
|
drop table t1, t2;
|
||||||
set optimizer_switch=@subselect4_tmp;
|
set optimizer_switch=@subselect4_tmp;
|
||||||
|
#
|
||||||
|
# MDEV-3899 Valgrind warnings (blocks are definitely lost) in filesort on IN subquery with SUM and DISTINCT
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (1),(9);
|
||||||
|
CREATE TABLE t2 (b INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (8);
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE (1, 1) IN (SELECT a, SUM(DISTINCT a) FROM t1, t2 GROUP BY a);
|
||||||
|
a
|
||||||
|
1
|
||||||
|
9
|
||||||
|
drop table t1, t2;
|
||||||
|
#
|
||||||
|
# MDEV-3902 Assertion `record_length == m_record_length' failed at Filesort_buffer::alloc_sort_buffer
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
CREATE TABLE t2 (pk INT PRIMARY KEY, b INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (1,1),(2,7);
|
||||||
|
CREATE TABLE t3 (c INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t3 VALUES (8);
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE (1, 5) IN (SELECT b, SUM(DISTINCT b) FROM t2, t3 GROUP BY b);
|
||||||
|
a
|
||||||
|
SELECT * FROM t2 AS alias1, t2 AS alias2
|
||||||
|
WHERE EXISTS ( SELECT 1 ) AND (alias2.pk = alias1.b )
|
||||||
|
ORDER BY alias1.b;
|
||||||
|
pk b pk b
|
||||||
|
1 1 1 1
|
||||||
|
drop table t1, t2, t3;
|
||||||
SET optimizer_switch= @@global.optimizer_switch;
|
SET optimizer_switch= @@global.optimizer_switch;
|
||||||
set @@tmp_table_size= @@global.tmp_table_size;
|
set @@tmp_table_size= @@global.tmp_table_size;
|
||||||
|
@ -11,6 +11,7 @@ Note 1265 Data truncated for column 'c1' at row 1
|
|||||||
INSERT IGNORE INTO t1 (c1) VALUES(NOW());
|
INSERT IGNORE INTO t1 (c1) VALUES(NOW());
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1265 Data truncated for column 'c1' at row 1
|
Note 1265 Data truncated for column 'c1' at row 1
|
||||||
|
Warning 1062 Duplicate entry '2007-02-13' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
2007-02-13
|
2007-02-13
|
||||||
@ -20,6 +21,8 @@ CREATE TABLE t1(c1 YEAR NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(1999);
|
INSERT INTO t1 (c1) VALUES(1999);
|
||||||
INSERT INTO t1 (c1) VALUES(2000);
|
INSERT INTO t1 (c1) VALUES(2000);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(1999);
|
INSERT IGNORE INTO t1 (c1) VALUES(1999);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
1999
|
1999
|
||||||
@ -36,6 +39,7 @@ Note 1265 Data truncated for column 'c1' at row 1
|
|||||||
INSERT IGNORE INTO t1 (c1) VALUES(NOW());
|
INSERT IGNORE INTO t1 (c1) VALUES(NOW());
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1265 Data truncated for column 'c1' at row 1
|
Note 1265 Data truncated for column 'c1' at row 1
|
||||||
|
Warning 1062 Duplicate entry '09:09:33' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
09:09:33
|
09:09:33
|
||||||
@ -45,6 +49,8 @@ CREATE TABLE t1(c1 YEAR NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(1999);
|
INSERT INTO t1 (c1) VALUES(1999);
|
||||||
INSERT INTO t1 (c1) VALUES(2000);
|
INSERT INTO t1 (c1) VALUES(2000);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(1999);
|
INSERT IGNORE INTO t1 (c1) VALUES(1999);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
1999
|
1999
|
||||||
@ -55,6 +61,8 @@ SET TIMESTAMP=1171346973;
|
|||||||
INSERT INTO t1 (c1) VALUES(NOW());
|
INSERT INTO t1 (c1) VALUES(NOW());
|
||||||
INSERT INTO t1 (c1) VALUES(ADDTIME(NOW(),'1 01:01:01'));
|
INSERT INTO t1 (c1) VALUES(ADDTIME(NOW(),'1 01:01:01'));
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(NOW());
|
INSERT IGNORE INTO t1 (c1) VALUES(NOW());
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '2007-02-13 09:09:33' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
2007-02-13 09:09:33
|
2007-02-13 09:09:33
|
||||||
@ -64,6 +72,8 @@ CREATE TABLE t1(c1 YEAR NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(1999);
|
INSERT INTO t1 (c1) VALUES(1999);
|
||||||
INSERT INTO t1 (c1) VALUES(2000);
|
INSERT INTO t1 (c1) VALUES(2000);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(1999);
|
INSERT IGNORE INTO t1 (c1) VALUES(1999);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
1999
|
1999
|
||||||
@ -74,6 +84,8 @@ SET TIMESTAMP=1171346973;
|
|||||||
INSERT INTO t1 (c1) VALUES(NOW());
|
INSERT INTO t1 (c1) VALUES(NOW());
|
||||||
INSERT INTO t1 (c1) VALUES(ADDTIME(NOW(),'1 01:01:01'));
|
INSERT INTO t1 (c1) VALUES(ADDTIME(NOW(),'1 01:01:01'));
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(NOW());
|
INSERT IGNORE INTO t1 (c1) VALUES(NOW());
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '2007-02-13 09:09:33' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
2007-02-13 09:09:33
|
2007-02-13 09:09:33
|
||||||
@ -83,6 +95,8 @@ CREATE TABLE t1(c1 YEAR NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(1999);
|
INSERT INTO t1 (c1) VALUES(1999);
|
||||||
INSERT INTO t1 (c1) VALUES(2000);
|
INSERT INTO t1 (c1) VALUES(2000);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(1999);
|
INSERT IGNORE INTO t1 (c1) VALUES(1999);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
1999
|
1999
|
||||||
|
@ -27,11 +27,13 @@ Warnings:
|
|||||||
Note 1265 Data truncated for column 'c1' at row 1
|
Note 1265 Data truncated for column 'c1' at row 1
|
||||||
Note 1265 Data truncated for column 'c2' at row 1
|
Note 1265 Data truncated for column 'c2' at row 1
|
||||||
Note 1265 Data truncated for column 'c3' at row 1
|
Note 1265 Data truncated for column 'c3' at row 1
|
||||||
|
Warning 1062 Duplicate entry '2007-02-13-2007-02-13-2007-02-13' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01'));
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01'));
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1265 Data truncated for column 'c1' at row 1
|
Note 1265 Data truncated for column 'c1' at row 1
|
||||||
Note 1265 Data truncated for column 'c2' at row 1
|
Note 1265 Data truncated for column 'c2' at row 1
|
||||||
Note 1265 Data truncated for column 'c3' at row 1
|
Note 1265 Data truncated for column 'c3' at row 1
|
||||||
|
Warning 1062 Duplicate entry '2007-02-13-2007-02-13-2007-02-14' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
2007-02-13 2007-02-13 2007-02-13
|
2007-02-13 2007-02-13 2007-02-13
|
||||||
@ -45,7 +47,11 @@ INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999);
|
INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999);
|
INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,1999);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,1999);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999-1999-1999' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999-1999-2000' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
1999 1999 1999
|
1999 1999 1999
|
||||||
@ -80,11 +86,13 @@ Warnings:
|
|||||||
Note 1265 Data truncated for column 'c1' at row 1
|
Note 1265 Data truncated for column 'c1' at row 1
|
||||||
Note 1265 Data truncated for column 'c2' at row 1
|
Note 1265 Data truncated for column 'c2' at row 1
|
||||||
Note 1265 Data truncated for column 'c3' at row 1
|
Note 1265 Data truncated for column 'c3' at row 1
|
||||||
|
Warning 1062 Duplicate entry '09:09:33-09:09:33-09:09:33' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01'));
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01'));
|
||||||
Warnings:
|
Warnings:
|
||||||
Note 1265 Data truncated for column 'c1' at row 1
|
Note 1265 Data truncated for column 'c1' at row 1
|
||||||
Note 1265 Data truncated for column 'c2' at row 1
|
Note 1265 Data truncated for column 'c2' at row 1
|
||||||
Note 1265 Data truncated for column 'c3' at row 1
|
Note 1265 Data truncated for column 'c3' at row 1
|
||||||
|
Warning 1062 Duplicate entry '09:09:33-09:09:33-10:10:34' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
09:09:33 09:09:33 09:09:33
|
09:09:33 09:09:33 09:09:33
|
||||||
@ -98,7 +106,11 @@ INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999);
|
INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999);
|
INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,1999);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,1999);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999-1999-1999' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999-1999-2000' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
1999 1999 1999
|
1999 1999 1999
|
||||||
@ -113,7 +125,11 @@ INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01'));
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'1 01:01:01'),NOW());
|
INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'1 01:01:01'),NOW());
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),NOW(),NOW());
|
INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),NOW(),NOW());
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW());
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW());
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '2007-02-13 09:09:33-2007-02-13 09:09:33-2007-02-13 09:09:33' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01'));
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01'));
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '2007-02-13 09:09:33-2007-02-13 09:09:33-2007-02-14 10:10:34' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
2007-02-13 09:09:33 2007-02-13 09:09:33 2007-02-13 09:09:33
|
2007-02-13 09:09:33 2007-02-13 09:09:33 2007-02-13 09:09:33
|
||||||
@ -127,7 +143,11 @@ INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999);
|
INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999);
|
INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,1999);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,1999);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999-1999-1999' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999-1999-2000' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
1999 1999 1999
|
1999 1999 1999
|
||||||
@ -142,7 +162,11 @@ INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01'));
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'1 01:01:01'),NOW());
|
INSERT INTO t1 (c1,c2,c3) VALUES(NOW(),ADDTIME(NOW(),'1 01:01:01'),NOW());
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),NOW(),NOW());
|
INSERT INTO t1 (c1,c2,c3) VALUES(ADDTIME(NOW(),'1 01:01:01'),NOW(),NOW());
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW());
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),NOW());
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '2007-02-13 09:09:33-2007-02-13 09:09:33-2007-02-13 09:09:33' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01'));
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(NOW(),NOW(),ADDTIME(NOW(),'1 01:01:01'));
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '2007-02-13 09:09:33-2007-02-13 09:09:33-2007-02-14 10:10:34' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
2007-02-13 09:09:33 2007-02-13 09:09:33 2007-02-13 09:09:33
|
2007-02-13 09:09:33 2007-02-13 09:09:33 2007-02-13 09:09:33
|
||||||
@ -156,7 +180,11 @@ INSERT INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999);
|
INSERT INTO t1 (c1,c2,c3) VALUES(1999,2000,1999);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999);
|
INSERT INTO t1 (c1,c2,c3) VALUES(2000,1999,1999);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,1999);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,1999);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999-1999-1999' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(1999,1999,2000);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999-1999-2000' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
1999 1999 1999
|
1999 1999 1999
|
||||||
|
@ -8,8 +8,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -29,8 +35,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -50,8 +62,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -71,8 +89,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -92,8 +116,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -113,8 +143,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -134,8 +170,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -155,8 +197,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -176,8 +224,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -197,8 +251,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -218,8 +278,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -239,8 +305,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -260,8 +332,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
@ -281,8 +359,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES(11,11,10);
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(11,10,11);
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-10' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,10,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-10-11' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES(10,11,11);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10-11-11' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
10 10 10
|
10 10 10
|
||||||
|
@ -8,8 +8,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-abc-abc' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-abc-def' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-def-def' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
abc abc abc
|
abc abc abc
|
||||||
@ -29,8 +35,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-abc-abc' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-abc-def' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-def-def' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
abc abc abc
|
abc abc abc
|
||||||
@ -50,8 +62,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-abc-abc' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-abc-def' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-def-def' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
abc
|
abc
|
||||||
@ -65,8 +83,14 @@ INSERT INTO t1 (c1,c2,c3) VALUES('def','def','abc');
|
|||||||
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('def','abc','def');
|
||||||
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','abc');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-abc-abc' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','abc','def');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-abc-def' for key 'c1'
|
||||||
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
INSERT IGNORE INTO t1 (c1,c2,c3) VALUES('abc','def','def');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry 'abc-def-def' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
abc abc abc
|
abc abc abc
|
||||||
|
@ -3,6 +3,8 @@ CREATE TABLE t1(c1 TINYINT NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -12,6 +14,8 @@ CREATE TABLE t1(c1 SMALLINT NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -21,6 +25,8 @@ CREATE TABLE t1(c1 MEDIUMINT NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -30,6 +36,8 @@ CREATE TABLE t1(c1 INT NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -39,6 +47,8 @@ CREATE TABLE t1(c1 INTEGER NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -48,6 +58,8 @@ CREATE TABLE t1(c1 BIGINT NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -57,6 +69,8 @@ CREATE TABLE t1(c1 DECIMAL NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -66,6 +80,8 @@ CREATE TABLE t1(c1 DEC NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -75,6 +91,8 @@ CREATE TABLE t1(c1 FIXED NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -84,6 +102,8 @@ CREATE TABLE t1(c1 NUMERIC NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -93,6 +113,8 @@ CREATE TABLE t1(c1 DOUBLE NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -102,6 +124,8 @@ CREATE TABLE t1(c1 REAL NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -111,6 +135,8 @@ CREATE TABLE t1(c1 DOUBLE PRECISION NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -120,6 +146,8 @@ CREATE TABLE t1(c1 FLOAT NOT NULL PRIMARY KEY);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'PRIMARY'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
|
@ -3,6 +3,8 @@ CREATE TABLE t1(c1 TINYINT NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -12,6 +14,8 @@ CREATE TABLE t1(c1 SMALLINT NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -21,6 +25,8 @@ CREATE TABLE t1(c1 MEDIUMINT NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -30,6 +36,8 @@ CREATE TABLE t1(c1 INT NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -39,6 +47,8 @@ CREATE TABLE t1(c1 INTEGER NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -48,6 +58,8 @@ CREATE TABLE t1(c1 BIGINT NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -57,6 +69,8 @@ CREATE TABLE t1(c1 DECIMAL NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -66,6 +80,8 @@ CREATE TABLE t1(c1 DEC NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -75,6 +91,8 @@ CREATE TABLE t1(c1 FIXED NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -84,6 +102,8 @@ CREATE TABLE t1(c1 NUMERIC NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -93,6 +113,8 @@ CREATE TABLE t1(c1 DOUBLE NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -102,6 +124,8 @@ CREATE TABLE t1(c1 REAL NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -111,6 +135,8 @@ CREATE TABLE t1(c1 DOUBLE PRECISION NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
@ -120,6 +146,8 @@ CREATE TABLE t1(c1 FLOAT NULL UNIQUE);
|
|||||||
INSERT INTO t1 (c1) VALUES(10);
|
INSERT INTO t1 (c1) VALUES(10);
|
||||||
INSERT INTO t1 (c1) VALUES(11);
|
INSERT INTO t1 (c1) VALUES(11);
|
||||||
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
INSERT IGNORE INTO t1 (c1) VALUES(10);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '10' for key 'c1'
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
c1
|
c1
|
||||||
10
|
10
|
||||||
|
Binary file not shown.
Binary file not shown.
@ -2,6 +2,8 @@ DROP TABLE IF EXISTS t1;
|
|||||||
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
||||||
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
|
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
|
||||||
TRUNCATE TABLE t1;
|
TRUNCATE TABLE t1;
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '3' for key 'PRIMARY'
|
||||||
SELECT * FROM t1 ORDER BY c1;
|
SELECT * FROM t1 ORDER BY c1;
|
||||||
c1 c2
|
c1 c2
|
||||||
1 abc
|
1 abc
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
||||||
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error1.inc' INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
|
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error1.inc' INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '3' for key 'PRIMARY'
|
||||||
SELECT * FROM t1 ORDER BY c1;
|
SELECT * FROM t1 ORDER BY c1;
|
||||||
c1 c2
|
c1 c2
|
||||||
1 abc
|
1 abc
|
||||||
@ -10,6 +12,8 @@ c1 c2
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
||||||
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error1.inc' IGNORE INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
|
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error1.inc' IGNORE INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '3' for key 'PRIMARY'
|
||||||
SELECT * FROM t1 ORDER BY c1;
|
SELECT * FROM t1 ORDER BY c1;
|
||||||
c1 c2
|
c1 c2
|
||||||
1 abc
|
1 abc
|
||||||
|
@ -4,6 +4,9 @@ INSERT INTO t1 VALUES(3,'a');
|
|||||||
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
|
ERROR 23000: Duplicate entry '3' for key 'PRIMARY'
|
||||||
TRUNCATE TABLE t1;
|
TRUNCATE TABLE t1;
|
||||||
INSERT INTO t1 VALUES(3,'a');
|
INSERT INTO t1 VALUES(3,'a');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '3' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '3' for key 'PRIMARY'
|
||||||
SELECT * FROM t1 ORDER BY c1;
|
SELECT * FROM t1 ORDER BY c1;
|
||||||
c1 c2
|
c1 c2
|
||||||
1 abc
|
1 abc
|
||||||
|
@ -2,6 +2,8 @@ DROP TABLE IF EXISTS t1;
|
|||||||
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
||||||
INSERT INTO t1 VALUES(3,'a');
|
INSERT INTO t1 VALUES(3,'a');
|
||||||
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error2.inc' INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
|
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error2.inc' INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '3' for key 'PRIMARY'
|
||||||
SELECT * FROM t1 ORDER BY c1;
|
SELECT * FROM t1 ORDER BY c1;
|
||||||
c1 c2
|
c1 c2
|
||||||
1 abc
|
1 abc
|
||||||
@ -12,6 +14,8 @@ DROP TABLE t1;
|
|||||||
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
||||||
INSERT INTO t1 VALUES(3,'a');
|
INSERT INTO t1 VALUES(3,'a');
|
||||||
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error2.inc' IGNORE INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
|
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error2.inc' IGNORE INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n';
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '3' for key 'PRIMARY'
|
||||||
SELECT * FROM t1 ORDER BY c1;
|
SELECT * FROM t1 ORDER BY c1;
|
||||||
c1 c2
|
c1 c2
|
||||||
1 abc
|
1 abc
|
||||||
|
@ -12,6 +12,10 @@ Tables_in_test
|
|||||||
t1
|
t1
|
||||||
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
ERROR 23000: Duplicate entry '1' for key 'PRIMARY'
|
||||||
TRUNCATE TABLE t1;
|
TRUNCATE TABLE t1;
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '1' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '0' for key 'PRIMARY'
|
||||||
SELECT * FROM t1 ORDER BY c1;
|
SELECT * FROM t1 ORDER BY c1;
|
||||||
c1 c2
|
c1 c2
|
||||||
0 def
|
0 def
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
||||||
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error1.inc' INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (@c1,c2) SET c1 = @c1 % 2;
|
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error1.inc' INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (@c1,c2) SET c1 = @c1 % 2;
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '1' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '0' for key 'PRIMARY'
|
||||||
SELECT * FROM t1 ORDER BY c1;
|
SELECT * FROM t1 ORDER BY c1;
|
||||||
c1 c2
|
c1 c2
|
||||||
0 def
|
0 def
|
||||||
@ -8,6 +12,10 @@ c1 c2
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
CREATE TABLE t1 (c1 INTEGER NOT NULL PRIMARY KEY, c2 TEXT);
|
||||||
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error1.inc' IGNORE INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (@c1,c2) SET c1 = @c1 % 2;
|
LOAD DATA LOCAL INFILE 'suite/engines/funcs/t/load_unique_error1.inc' IGNORE INTO TABLE t1 FIELDS TERMINATED BY ',' LINES TERMINATED BY '\n' (@c1,c2) SET c1 = @c1 % 2;
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '1' for key 'PRIMARY'
|
||||||
|
Warning 1062 Duplicate entry '0' for key 'PRIMARY'
|
||||||
SELECT * FROM t1 ORDER BY c1;
|
SELECT * FROM t1 ORDER BY c1;
|
||||||
c1 c2
|
c1 c2
|
||||||
0 def
|
0 def
|
||||||
|
@ -2399,8 +2399,9 @@ INSERT INTO t3 VALUES(0,-128,1,2,3,4,5),(255,127,6,7,8,9,10);
|
|||||||
INSERT INTO t4 VALUES(-128,0,1,2,3,4,5,5),(127,255,6,7,8,9,10,10);
|
INSERT INTO t4 VALUES(-128,0,1,2,3,4,5,5),(127,255,6,7,8,9,10,10);
|
||||||
INSERT INTO t5 VALUES(0,-128,1,2,3,4,5,5),(255,127,6,7,8,9,10,10);
|
INSERT INTO t5 VALUES(0,-128,1,2,3,4,5,5),(255,127,6,7,8,9,10,10);
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
ERROR 23000: Duplicate entry '127' for key 'PRIMARY'
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
c1 c2 c3 c4 c5 c6 c7 c8
|
c1 c2 c3 c4 c5 c6 c7 c8
|
||||||
-101 102 103 104 105 106 107 108
|
-101 102 103 104 105 106 107 108
|
||||||
@ -3760,20 +3761,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 124 27 28 29 30 31
|
0 124 27 28 29 30 31
|
||||||
SELECT * FROM t2 WHERE c1 = 256 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 = 256 ORDER BY c1,c6;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 256 ORDER BY c1,c6 LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 256 ORDER BY c1,c6 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 256 ORDER BY c1,c6 DESC;
|
SELECT * FROM t2 WHERE c1 = 256 ORDER BY c1,c6 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 256 ORDER BY c1,c6 DESC LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 256 ORDER BY c1,c6 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 <> 256 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 <> 256 ORDER BY c1,c6;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 NULL 5 6 NULL 0 NULL
|
0 NULL 5 6 NULL 0 NULL
|
||||||
@ -5316,20 +5309,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 -128 26 27 28 29 30
|
0 -128 26 27 28 29 30
|
||||||
SELECT * FROM t3 WHERE c2 = 128 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 = 128 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 128 ORDER BY c2,c7 LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 128 ORDER BY c2,c7 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 128 ORDER BY c2,c7 DESC;
|
SELECT * FROM t3 WHERE c2 = 128 ORDER BY c2,c7 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 128 ORDER BY c2,c7 DESC LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 128 ORDER BY c2,c7 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 <> 128 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 <> 128 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 -128 1 2 3 4 5
|
0 -128 1 2 3 4 5
|
||||||
@ -8006,8 +7991,9 @@ INSERT INTO t3 VALUES(0,-32768,1,2,3,4,5),(255,-128,6,7,8,9,10),(65535,32767,11,
|
|||||||
INSERT INTO t4 VALUES(-32768,0,1,2,3,4,5,5),(-128,255,6,7,8,9,10,10),(32767,65535,11,12,13,14,15,15);
|
INSERT INTO t4 VALUES(-32768,0,1,2,3,4,5,5),(-128,255,6,7,8,9,10,10),(32767,65535,11,12,13,14,15,15);
|
||||||
INSERT INTO t5 VALUES(0,-32768,1,2,3,4,5,5),(255,-128,6,7,8,9,10,10),(65535,32767,11,12,13,14,15,15);
|
INSERT INTO t5 VALUES(0,-32768,1,2,3,4,5,5),(255,-128,6,7,8,9,10,10),(65535,32767,11,12,13,14,15,15);
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
ERROR 23000: Duplicate entry '32767' for key 'PRIMARY'
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
c1 c2 c3 c4 c5 c6 c7 c8
|
c1 c2 c3 c4 c5 c6 c7 c8
|
||||||
-101 102 103 104 105 106 107 108
|
-101 102 103 104 105 106 107 108
|
||||||
@ -9410,20 +9396,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 124 27 28 29 30 31
|
0 124 27 28 29 30 31
|
||||||
SELECT * FROM t2 WHERE c1 = 65536 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 = 65536 ORDER BY c1,c6;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 65536 ORDER BY c1,c6 LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 65536 ORDER BY c1,c6 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 65536 ORDER BY c1,c6 DESC;
|
SELECT * FROM t2 WHERE c1 = 65536 ORDER BY c1,c6 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 65536 ORDER BY c1,c6 DESC LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 65536 ORDER BY c1,c6 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 <> 65536 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 <> 65536 ORDER BY c1,c6;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 NULL 5 6 NULL 0 NULL
|
0 NULL 5 6 NULL 0 NULL
|
||||||
@ -11018,20 +10996,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 -32768 26 27 28 29 30
|
0 -32768 26 27 28 29 30
|
||||||
SELECT * FROM t3 WHERE c2 = 32768 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 = 32768 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 32768 ORDER BY c2,c7 LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 32768 ORDER BY c2,c7 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 32768 ORDER BY c2,c7 DESC;
|
SELECT * FROM t3 WHERE c2 = 32768 ORDER BY c2,c7 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 32768 ORDER BY c2,c7 DESC LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 32768 ORDER BY c2,c7 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 <> 32768 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 <> 32768 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 -32768 1 2 3 4 5
|
0 -32768 1 2 3 4 5
|
||||||
@ -13718,8 +13688,9 @@ INSERT INTO t3 VALUES(0,-8388608,1,2,3,4,5),(255,-32768,6,7,8,9,10),(65535,-128,
|
|||||||
INSERT INTO t4 VALUES(-8388608,0,1,2,3,4,5,5),(-32768,255,6,7,8,9,10,10),(-128,65535,11,12,13,14,15,15),(8388607,16777215,16,17,18,19,20,20);
|
INSERT INTO t4 VALUES(-8388608,0,1,2,3,4,5,5),(-32768,255,6,7,8,9,10,10),(-128,65535,11,12,13,14,15,15),(8388607,16777215,16,17,18,19,20,20);
|
||||||
INSERT INTO t5 VALUES(0,-8388608,1,2,3,4,5,5),(255,-32768,6,7,8,9,10,10),(65535,-128,11,12,13,14,15,15),(16777215,8388607,16,17,18,19,20,20);
|
INSERT INTO t5 VALUES(0,-8388608,1,2,3,4,5,5),(255,-32768,6,7,8,9,10,10),(65535,-128,11,12,13,14,15,15),(16777215,8388607,16,17,18,19,20,20);
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
ERROR 23000: Duplicate entry '8388607' for key 'PRIMARY'
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
c1 c2 c3 c4 c5 c6 c7 c8
|
c1 c2 c3 c4 c5 c6 c7 c8
|
||||||
-101 102 103 104 105 106 107 108
|
-101 102 103 104 105 106 107 108
|
||||||
@ -15165,20 +15136,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 124 27 28 29 30 31
|
0 124 27 28 29 30 31
|
||||||
SELECT * FROM t2 WHERE c1 = 16777216 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 = 16777216 ORDER BY c1,c6;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 16777216 ORDER BY c1,c6 LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 16777216 ORDER BY c1,c6 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 16777216 ORDER BY c1,c6 DESC;
|
SELECT * FROM t2 WHERE c1 = 16777216 ORDER BY c1,c6 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 16777216 ORDER BY c1,c6 DESC LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 16777216 ORDER BY c1,c6 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 <> 16777216 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 <> 16777216 ORDER BY c1,c6;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 NULL 5 6 NULL 0 NULL
|
0 NULL 5 6 NULL 0 NULL
|
||||||
@ -16825,20 +16788,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 -8388608 26 27 28 29 30
|
0 -8388608 26 27 28 29 30
|
||||||
SELECT * FROM t3 WHERE c2 = 8388608 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 = 8388608 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 8388608 ORDER BY c2,c7 LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 8388608 ORDER BY c2,c7 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 8388608 ORDER BY c2,c7 DESC;
|
SELECT * FROM t3 WHERE c2 = 8388608 ORDER BY c2,c7 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 8388608 ORDER BY c2,c7 DESC LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 8388608 ORDER BY c2,c7 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 <> 8388608 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 <> 8388608 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 -8388608 1 2 3 4 5
|
0 -8388608 1 2 3 4 5
|
||||||
@ -19535,8 +19490,9 @@ INSERT INTO t3 VALUES(0,-2147483648,1,2,3,4,5),(255,-8388608,6,7,8,9,10),(65535,
|
|||||||
INSERT INTO t4 VALUES(-2147483648,0,1,2,3,4,5,5),(-8388608,255,6,7,8,9,10,10),(-32768,65535,11,12,13,14,15,15),(-128,16777215,16,17,18,19,20,20),(2147483647,4294967295,21,22,23,24,25,25);
|
INSERT INTO t4 VALUES(-2147483648,0,1,2,3,4,5,5),(-8388608,255,6,7,8,9,10,10),(-32768,65535,11,12,13,14,15,15),(-128,16777215,16,17,18,19,20,20),(2147483647,4294967295,21,22,23,24,25,25);
|
||||||
INSERT INTO t5 VALUES(0,-2147483648,1,2,3,4,5,5),(255,-8388608,6,7,8,9,10,10),(65535,-32768,11,12,13,14,15,15),(16777215,-128,16,17,18,19,20,20),(4294967295,2147483647,21,22,23,24,25,25);
|
INSERT INTO t5 VALUES(0,-2147483648,1,2,3,4,5,5),(255,-8388608,6,7,8,9,10,10),(65535,-32768,11,12,13,14,15,15),(16777215,-128,16,17,18,19,20,20),(4294967295,2147483647,21,22,23,24,25,25);
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
ERROR 23000: Duplicate entry '2147483647' for key 'PRIMARY'
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
c1 c2 c3 c4 c5 c6 c7 c8
|
c1 c2 c3 c4 c5 c6 c7 c8
|
||||||
-101 102 103 104 105 106 107 108
|
-101 102 103 104 105 106 107 108
|
||||||
@ -21025,20 +20981,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 124 27 28 29 30 31
|
0 124 27 28 29 30 31
|
||||||
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 DESC;
|
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 DESC LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 <> 4294967296 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 <> 4294967296 ORDER BY c1,c6;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 NULL 5 6 NULL 0 NULL
|
0 NULL 5 6 NULL 0 NULL
|
||||||
@ -22737,20 +22685,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 -2147483648 26 27 28 29 30
|
0 -2147483648 26 27 28 29 30
|
||||||
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 DESC;
|
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 DESC LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 <> 2147483648 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 <> 2147483648 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 -2147483648 1 2 3 4 5
|
0 -2147483648 1 2 3 4 5
|
||||||
@ -25457,8 +25397,9 @@ INSERT INTO t3 VALUES(0,-2147483648,1,2,3,4,5),(255,-8388608,6,7,8,9,10),(65535,
|
|||||||
INSERT INTO t4 VALUES(-2147483648,0,1,2,3,4,5,5),(-8388608,255,6,7,8,9,10,10),(-32768,65535,11,12,13,14,15,15),(-128,16777215,16,17,18,19,20,20),(2147483647,4294967295,21,22,23,24,25,25);
|
INSERT INTO t4 VALUES(-2147483648,0,1,2,3,4,5,5),(-8388608,255,6,7,8,9,10,10),(-32768,65535,11,12,13,14,15,15),(-128,16777215,16,17,18,19,20,20),(2147483647,4294967295,21,22,23,24,25,25);
|
||||||
INSERT INTO t5 VALUES(0,-2147483648,1,2,3,4,5,5),(255,-8388608,6,7,8,9,10,10),(65535,-32768,11,12,13,14,15,15),(16777215,-128,16,17,18,19,20,20),(4294967295,2147483647,21,22,23,24,25,25);
|
INSERT INTO t5 VALUES(0,-2147483648,1,2,3,4,5,5),(255,-8388608,6,7,8,9,10,10),(65535,-32768,11,12,13,14,15,15),(16777215,-128,16,17,18,19,20,20),(4294967295,2147483647,21,22,23,24,25,25);
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
ERROR 23000: Duplicate entry '2147483647' for key 'PRIMARY'
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
c1 c2 c3 c4 c5 c6 c7 c8
|
c1 c2 c3 c4 c5 c6 c7 c8
|
||||||
-101 102 103 104 105 106 107 108
|
-101 102 103 104 105 106 107 108
|
||||||
@ -26947,20 +26888,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 124 27 28 29 30 31
|
0 124 27 28 29 30 31
|
||||||
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 DESC;
|
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 DESC LIMIT 2;
|
SELECT * FROM t2 WHERE c1 = 4294967296 ORDER BY c1,c6 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c1' at row 1
|
|
||||||
SELECT * FROM t2 WHERE c1 <> 4294967296 ORDER BY c1,c6;
|
SELECT * FROM t2 WHERE c1 <> 4294967296 ORDER BY c1,c6;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 NULL 5 6 NULL 0 NULL
|
0 NULL 5 6 NULL 0 NULL
|
||||||
@ -28659,20 +28592,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 -2147483648 26 27 28 29 30
|
0 -2147483648 26 27 28 29 30
|
||||||
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 DESC;
|
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 DESC LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 2147483648 ORDER BY c2,c7 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 <> 2147483648 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 <> 2147483648 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 -2147483648 1 2 3 4 5
|
0 -2147483648 1 2 3 4 5
|
||||||
@ -31379,7 +31304,7 @@ INSERT INTO t3 VALUES(0,-9223372036854775808,1,2,3,4,5),(255,-2147483648,6,7,8,9
|
|||||||
INSERT INTO t4 VALUES(-9223372036854775808,0,1,2,3,4,5,5),(-2147483648,255,6,7,8,9,10,10),(-8388608,65535,11,12,13,14,15,15),(-32768,16777215,16,17,18,19,20,20),(-128,4294967295,21,22,23,24,25,25),(9223372036854775807,18446744073709551615,26,27,28,29,30,30);
|
INSERT INTO t4 VALUES(-9223372036854775808,0,1,2,3,4,5,5),(-2147483648,255,6,7,8,9,10,10),(-8388608,65535,11,12,13,14,15,15),(-32768,16777215,16,17,18,19,20,20),(-128,4294967295,21,22,23,24,25,25),(9223372036854775807,18446744073709551615,26,27,28,29,30,30);
|
||||||
INSERT INTO t5 VALUES(0,-9223372036854775808,1,2,3,4,5,5),(255,-2147483648,6,7,8,9,10,10),(65535,-8388608,11,12,13,14,15,15),(16777215,-32768,16,17,18,19,20,20),(4294967295,-128,21,22,23,24,25,25),(18446744073709551615,9223372036854775807,26,27,28,29,30,30);
|
INSERT INTO t5 VALUES(0,-9223372036854775808,1,2,3,4,5,5),(255,-2147483648,6,7,8,9,10,10),(65535,-8388608,11,12,13,14,15,15),(16777215,-32768,16,17,18,19,20,20),(4294967295,-128,21,22,23,24,25,25),(18446744073709551615,9223372036854775807,26,27,28,29,30,30);
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
ERROR 23000: Duplicate entry '9223372036854775807' for key 'PRIMARY'
|
ERROR 22003: Out of range value for column 'c1' at row 1
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
ERROR HY000: Failed to read auto-increment value from storage engine
|
ERROR HY000: Failed to read auto-increment value from storage engine
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
@ -34577,20 +34502,12 @@ c1 c2 c3 c4 c5 c6 c7
|
|||||||
0 -9223372036854775808 31 32 33 34 35
|
0 -9223372036854775808 31 32 33 34 35
|
||||||
SELECT * FROM t3 WHERE c2 = 9223372036854775808 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 = 9223372036854775808 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 9223372036854775808 ORDER BY c2,c7 LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 9223372036854775808 ORDER BY c2,c7 LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 9223372036854775808 ORDER BY c2,c7 DESC;
|
SELECT * FROM t3 WHERE c2 = 9223372036854775808 ORDER BY c2,c7 DESC;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 = 9223372036854775808 ORDER BY c2,c7 DESC LIMIT 2;
|
SELECT * FROM t3 WHERE c2 = 9223372036854775808 ORDER BY c2,c7 DESC LIMIT 2;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t3 WHERE c2 <> 9223372036854775808 ORDER BY c2,c7;
|
SELECT * FROM t3 WHERE c2 <> 9223372036854775808 ORDER BY c2,c7;
|
||||||
c1 c2 c3 c4 c5 c6 c7
|
c1 c2 c3 c4 c5 c6 c7
|
||||||
0 -9223372036854775808 1 2 3 4 5
|
0 -9223372036854775808 1 2 3 4 5
|
||||||
|
@ -5072,8 +5072,12 @@ INSERT INTO t3(c1,c2) VALUES('34 9:23','34 9:23') /* throws error as row exists
|
|||||||
ERROR 23000: Duplicate entry '825:23:00-825:23:00' for key 'idx'
|
ERROR 23000: Duplicate entry '825:23:00-825:23:00' for key 'idx'
|
||||||
INSERT IGNORE INTO t1(c1,c2) VALUES('10:22:33','10:22:34') /* doesn't throw error */;
|
INSERT IGNORE INTO t1(c1,c2) VALUES('10:22:33','10:22:34') /* doesn't throw error */;
|
||||||
INSERT IGNORE INTO t2(c1,c2) VALUES('12:34:56.78','12:34:56.78') /*doesn't throw error */;
|
INSERT IGNORE INTO t2(c1,c2) VALUES('12:34:56.78','12:34:56.78') /*doesn't throw error */;
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '12:34:56-12:34:56' for key 'PRIMARY'
|
||||||
INSERT IGNORE INTO t1(c1,c2) VALUES('10:22:34','34 9:23') /*doesn't throw error */;
|
INSERT IGNORE INTO t1(c1,c2) VALUES('10:22:34','34 9:23') /*doesn't throw error */;
|
||||||
INSERT IGNORE INTO t3(c1,c2) VALUES('34 9:23','34 9:23') /*doesn't throw error */;
|
INSERT IGNORE INTO t3(c1,c2) VALUES('34 9:23','34 9:23') /*doesn't throw error */;
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '825:23:00-825:23:00' for key 'idx'
|
||||||
SELECT * FROM t1 WHERE c1='10:23:33' /* no rows */;
|
SELECT * FROM t1 WHERE c1='10:23:33' /* no rows */;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
INSERT INTO t1(c1) VALUES('10:22:33') ON DUPLICATE KEY UPDATE c1='10:23:33';
|
INSERT INTO t1(c1) VALUES('10:22:33') ON DUPLICATE KEY UPDATE c1='10:23:33';
|
||||||
|
@ -3124,9 +3124,17 @@ ERROR 23000: Duplicate entry '2069' for key 'c2'
|
|||||||
INSERT INTO t3(c1,c2) VALUES(00,00);
|
INSERT INTO t3(c1,c2) VALUES(00,00);
|
||||||
ERROR 23000: Duplicate entry '0000-0000' for key 'idx'
|
ERROR 23000: Duplicate entry '0000-0000' for key 'idx'
|
||||||
INSERT IGNORE INTO t1(c1,c2) VALUES(01,'99');
|
INSERT IGNORE INTO t1(c1,c2) VALUES(01,'99');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '2001' for key 'PRIMARY'
|
||||||
INSERT IGNORE INTO t2(c1,c2) VALUES('1999','1999');
|
INSERT IGNORE INTO t2(c1,c2) VALUES('1999','1999');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1999-1999' for key 'PRIMARY'
|
||||||
INSERT IGNORE INTO t1(c1,c2) VALUES('2098','69');
|
INSERT IGNORE INTO t1(c1,c2) VALUES('2098','69');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '2069' for key 'c2'
|
||||||
INSERT IGNORE INTO t3(c1,c2) VALUES(00,00);
|
INSERT IGNORE INTO t3(c1,c2) VALUES(00,00);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '0000-0000' for key 'idx'
|
||||||
SELECT * FROM t1 WHERE c1='01' /* Returns 1 row */;
|
SELECT * FROM t1 WHERE c1='01' /* Returns 1 row */;
|
||||||
c1 c2 c3 c4
|
c1 c2 c3 c4
|
||||||
2001 2001 1998-12-28 1998-12-28 11:30:45
|
2001 2001 1998-12-28 1998-12-28 11:30:45
|
||||||
@ -6081,9 +6089,17 @@ ERROR 23000: Duplicate entry '69' for key 'c2'
|
|||||||
INSERT INTO t3(c1,c2) VALUES(00,00);
|
INSERT INTO t3(c1,c2) VALUES(00,00);
|
||||||
ERROR 23000: Duplicate entry '00-00' for key 'idx'
|
ERROR 23000: Duplicate entry '00-00' for key 'idx'
|
||||||
INSERT IGNORE INTO t1(c1,c2) VALUES(01,'99');
|
INSERT IGNORE INTO t1(c1,c2) VALUES(01,'99');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '01' for key 'PRIMARY'
|
||||||
INSERT IGNORE INTO t2(c1,c2) VALUES('1999','1999');
|
INSERT IGNORE INTO t2(c1,c2) VALUES('1999','1999');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '99-99' for key 'PRIMARY'
|
||||||
INSERT IGNORE INTO t1(c1,c2) VALUES('2098','69');
|
INSERT IGNORE INTO t1(c1,c2) VALUES('2098','69');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '69' for key 'c2'
|
||||||
INSERT IGNORE INTO t3(c1,c2) VALUES(00,00);
|
INSERT IGNORE INTO t3(c1,c2) VALUES(00,00);
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '00-00' for key 'idx'
|
||||||
SELECT * FROM t1 WHERE c1='01' /* Returns 1 row */;
|
SELECT * FROM t1 WHERE c1='01' /* Returns 1 row */;
|
||||||
c1 c2 c3 c4
|
c1 c2 c3 c4
|
||||||
01 01 1998-12-28 1998-12-28 11:30:45
|
01 01 1998-12-28 1998-12-28 11:30:45
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -56,8 +56,6 @@ Warning 1264 Out of range value for column 'c2' at row 3
|
|||||||
SELECT COUNT(*) FROM t1 WHERE c1=4294967296 AND c2=2147483648 /* no rows */;
|
SELECT COUNT(*) FROM t1 WHERE c1=4294967296 AND c2=2147483648 /* no rows */;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t1 WHERE c1=4294967295 AND c2=2147483647;
|
SELECT * FROM t1 WHERE c1=4294967295 AND c2=2147483647;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
4294967295 2147483647 10
|
4294967295 2147483647 10
|
||||||
@ -1152,8 +1150,6 @@ Warning 1264 Out of range value for column 'c2' at row 3
|
|||||||
SELECT COUNT(*) FROM t1 WHERE c1=256 AND c2=128 /* no rows */;
|
SELECT COUNT(*) FROM t1 WHERE c1=256 AND c2=128 /* no rows */;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t1 WHERE c1=255 AND c2=127;
|
SELECT * FROM t1 WHERE c1=255 AND c2=127;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
255 127 10
|
255 127 10
|
||||||
@ -1926,8 +1922,6 @@ Warning 1264 Out of range value for column 'c2' at row 3
|
|||||||
SELECT COUNT(*) FROM t1 WHERE c1=65536 AND c2=32768 /* no rows */;
|
SELECT COUNT(*) FROM t1 WHERE c1=65536 AND c2=32768 /* no rows */;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t1 WHERE c1=65535 AND c2=32767;
|
SELECT * FROM t1 WHERE c1=65535 AND c2=32767;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
65535 32767 10
|
65535 32767 10
|
||||||
@ -2675,8 +2669,6 @@ Warning 1264 Out of range value for column 'c2' at row 3
|
|||||||
SELECT COUNT(*) FROM t1 WHERE c1=16777216 AND c2=8388608 /* no rows */;
|
SELECT COUNT(*) FROM t1 WHERE c1=16777216 AND c2=8388608 /* no rows */;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t1 WHERE c1=16777215 AND c2=8388607;
|
SELECT * FROM t1 WHERE c1=16777215 AND c2=8388607;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
16777215 8388607 10
|
16777215 8388607 10
|
||||||
@ -3424,8 +3416,6 @@ Warning 1264 Out of range value for column 'c2' at row 3
|
|||||||
SELECT COUNT(*) FROM t1 WHERE c1=18446744073709551616 AND c2=9223372036854775808 /* no rows */;
|
SELECT COUNT(*) FROM t1 WHERE c1=18446744073709551616 AND c2=9223372036854775808 /* no rows */;
|
||||||
COUNT(*)
|
COUNT(*)
|
||||||
0
|
0
|
||||||
Warnings:
|
|
||||||
Warning 1264 Out of range value for column 'c2' at row 1
|
|
||||||
SELECT * FROM t1 WHERE c1=18446744073709551615 AND c2=9223372036854775807;
|
SELECT * FROM t1 WHERE c1=18446744073709551615 AND c2=9223372036854775807;
|
||||||
c1 c2 c3
|
c1 c2 c3
|
||||||
18446744073709551615 9223372036854775807 10
|
18446744073709551615 9223372036854775807 10
|
||||||
|
@ -761,11 +761,10 @@ INSERT INTO t2 VALUES(0,-128,1,2,3,4,5),(255,127,6,7,8,9,10);
|
|||||||
INSERT INTO t3 VALUES(0,-128,1,2,3,4,5),(255,127,6,7,8,9,10);
|
INSERT INTO t3 VALUES(0,-128,1,2,3,4,5),(255,127,6,7,8,9,10);
|
||||||
INSERT INTO t4 VALUES(-128,0,1,2,3,4,5,5),(127,255,6,7,8,9,10,10);
|
INSERT INTO t4 VALUES(-128,0,1,2,3,4,5,5),(127,255,6,7,8,9,10,10);
|
||||||
INSERT INTO t5 VALUES(0,-128,1,2,3,4,5,5),(255,127,6,7,8,9,10,10);
|
INSERT INTO t5 VALUES(0,-128,1,2,3,4,5,5),(255,127,6,7,8,9,10,10);
|
||||||
--error ER_DUP_ENTRY
|
--error 167
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
--disable_warnings
|
--error 167
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
--enable_warnings
|
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
|
|
||||||
@ -2120,11 +2119,10 @@ INSERT INTO t2 VALUES(0,-32768,1,2,3,4,5),(255,-128,6,7,8,9,10),(65535,32767,11,
|
|||||||
INSERT INTO t3 VALUES(0,-32768,1,2,3,4,5),(255,-128,6,7,8,9,10),(65535,32767,11,12,13,14,15);
|
INSERT INTO t3 VALUES(0,-32768,1,2,3,4,5),(255,-128,6,7,8,9,10),(65535,32767,11,12,13,14,15);
|
||||||
INSERT INTO t4 VALUES(-32768,0,1,2,3,4,5,5),(-128,255,6,7,8,9,10,10),(32767,65535,11,12,13,14,15,15);
|
INSERT INTO t4 VALUES(-32768,0,1,2,3,4,5,5),(-128,255,6,7,8,9,10,10),(32767,65535,11,12,13,14,15,15);
|
||||||
INSERT INTO t5 VALUES(0,-32768,1,2,3,4,5,5),(255,-128,6,7,8,9,10,10),(65535,32767,11,12,13,14,15,15);
|
INSERT INTO t5 VALUES(0,-32768,1,2,3,4,5,5),(255,-128,6,7,8,9,10,10),(65535,32767,11,12,13,14,15,15);
|
||||||
--error ER_DUP_ENTRY
|
--error 167
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
--disable_warnings
|
--error 167
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
--enable_warnings
|
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
|
|
||||||
@ -3479,11 +3477,10 @@ INSERT INTO t2 VALUES(0,-8388608,1,2,3,4,5),(255,-32768,6,7,8,9,10),(65535,-128,
|
|||||||
INSERT INTO t3 VALUES(0,-8388608,1,2,3,4,5),(255,-32768,6,7,8,9,10),(65535,-128,11,12,13,14,15),(16777215,8388607,16,17,18,19,20);
|
INSERT INTO t3 VALUES(0,-8388608,1,2,3,4,5),(255,-32768,6,7,8,9,10),(65535,-128,11,12,13,14,15),(16777215,8388607,16,17,18,19,20);
|
||||||
INSERT INTO t4 VALUES(-8388608,0,1,2,3,4,5,5),(-32768,255,6,7,8,9,10,10),(-128,65535,11,12,13,14,15,15),(8388607,16777215,16,17,18,19,20,20);
|
INSERT INTO t4 VALUES(-8388608,0,1,2,3,4,5,5),(-32768,255,6,7,8,9,10,10),(-128,65535,11,12,13,14,15,15),(8388607,16777215,16,17,18,19,20,20);
|
||||||
INSERT INTO t5 VALUES(0,-8388608,1,2,3,4,5,5),(255,-32768,6,7,8,9,10,10),(65535,-128,11,12,13,14,15,15),(16777215,8388607,16,17,18,19,20,20);
|
INSERT INTO t5 VALUES(0,-8388608,1,2,3,4,5,5),(255,-32768,6,7,8,9,10,10),(65535,-128,11,12,13,14,15,15),(16777215,8388607,16,17,18,19,20,20);
|
||||||
--error ER_DUP_ENTRY
|
--error 167
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
--disable_warnings
|
--error 167
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
--enable_warnings
|
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
|
|
||||||
@ -4838,11 +4835,10 @@ INSERT INTO t2 VALUES(0,-2147483648,1,2,3,4,5),(255,-8388608,6,7,8,9,10),(65535,
|
|||||||
INSERT INTO t3 VALUES(0,-2147483648,1,2,3,4,5),(255,-8388608,6,7,8,9,10),(65535,-32768,11,12,13,14,15),(16777215,-128,16,17,18,19,20),(4294967295,2147483647,21,22,23,24,25);
|
INSERT INTO t3 VALUES(0,-2147483648,1,2,3,4,5),(255,-8388608,6,7,8,9,10),(65535,-32768,11,12,13,14,15),(16777215,-128,16,17,18,19,20),(4294967295,2147483647,21,22,23,24,25);
|
||||||
INSERT INTO t4 VALUES(-2147483648,0,1,2,3,4,5,5),(-8388608,255,6,7,8,9,10,10),(-32768,65535,11,12,13,14,15,15),(-128,16777215,16,17,18,19,20,20),(2147483647,4294967295,21,22,23,24,25,25);
|
INSERT INTO t4 VALUES(-2147483648,0,1,2,3,4,5,5),(-8388608,255,6,7,8,9,10,10),(-32768,65535,11,12,13,14,15,15),(-128,16777215,16,17,18,19,20,20),(2147483647,4294967295,21,22,23,24,25,25);
|
||||||
INSERT INTO t5 VALUES(0,-2147483648,1,2,3,4,5,5),(255,-8388608,6,7,8,9,10,10),(65535,-32768,11,12,13,14,15,15),(16777215,-128,16,17,18,19,20,20),(4294967295,2147483647,21,22,23,24,25,25);
|
INSERT INTO t5 VALUES(0,-2147483648,1,2,3,4,5,5),(255,-8388608,6,7,8,9,10,10),(65535,-32768,11,12,13,14,15,15),(16777215,-128,16,17,18,19,20,20),(4294967295,2147483647,21,22,23,24,25,25);
|
||||||
--error ER_DUP_ENTRY
|
--error 167
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
--disable_warnings
|
--error 167
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
--enable_warnings
|
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
|
|
||||||
@ -6197,11 +6193,10 @@ INSERT INTO t2 VALUES(0,-2147483648,1,2,3,4,5),(255,-8388608,6,7,8,9,10),(65535,
|
|||||||
INSERT INTO t3 VALUES(0,-2147483648,1,2,3,4,5),(255,-8388608,6,7,8,9,10),(65535,-32768,11,12,13,14,15),(16777215,-128,16,17,18,19,20),(4294967295,2147483647,21,22,23,24,25);
|
INSERT INTO t3 VALUES(0,-2147483648,1,2,3,4,5),(255,-8388608,6,7,8,9,10),(65535,-32768,11,12,13,14,15),(16777215,-128,16,17,18,19,20),(4294967295,2147483647,21,22,23,24,25);
|
||||||
INSERT INTO t4 VALUES(-2147483648,0,1,2,3,4,5,5),(-8388608,255,6,7,8,9,10,10),(-32768,65535,11,12,13,14,15,15),(-128,16777215,16,17,18,19,20,20),(2147483647,4294967295,21,22,23,24,25,25);
|
INSERT INTO t4 VALUES(-2147483648,0,1,2,3,4,5,5),(-8388608,255,6,7,8,9,10,10),(-32768,65535,11,12,13,14,15,15),(-128,16777215,16,17,18,19,20,20),(2147483647,4294967295,21,22,23,24,25,25);
|
||||||
INSERT INTO t5 VALUES(0,-2147483648,1,2,3,4,5,5),(255,-8388608,6,7,8,9,10,10),(65535,-32768,11,12,13,14,15,15),(16777215,-128,16,17,18,19,20,20),(4294967295,2147483647,21,22,23,24,25,25);
|
INSERT INTO t5 VALUES(0,-2147483648,1,2,3,4,5,5),(255,-8388608,6,7,8,9,10,10),(65535,-32768,11,12,13,14,15,15),(16777215,-128,16,17,18,19,20,20),(4294967295,2147483647,21,22,23,24,25,25);
|
||||||
--error ER_DUP_ENTRY
|
--error 167
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
--disable_warnings
|
--error 167
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
--enable_warnings
|
|
||||||
--sorted_result
|
--sorted_result
|
||||||
SELECT * FROM t4;
|
SELECT * FROM t4;
|
||||||
|
|
||||||
@ -7555,7 +7550,7 @@ INSERT INTO t2 VALUES(0,-9223372036854775808,1,2,3,4,5),(255,-2147483648,6,7,8,9
|
|||||||
INSERT INTO t3 VALUES(0,-9223372036854775808,1,2,3,4,5),(255,-2147483648,6,7,8,9,10),(65535,-8388608,11,12,13,14,15),(16777215,-32768,16,17,18,19,20),(4294967295,-128,21,22,23,24,25),(18446744073709551615,9223372036854775807,26,27,28,29,30);
|
INSERT INTO t3 VALUES(0,-9223372036854775808,1,2,3,4,5),(255,-2147483648,6,7,8,9,10),(65535,-8388608,11,12,13,14,15),(16777215,-32768,16,17,18,19,20),(4294967295,-128,21,22,23,24,25),(18446744073709551615,9223372036854775807,26,27,28,29,30);
|
||||||
INSERT INTO t4 VALUES(-9223372036854775808,0,1,2,3,4,5,5),(-2147483648,255,6,7,8,9,10,10),(-8388608,65535,11,12,13,14,15,15),(-32768,16777215,16,17,18,19,20,20),(-128,4294967295,21,22,23,24,25,25),(9223372036854775807,18446744073709551615,26,27,28,29,30,30);
|
INSERT INTO t4 VALUES(-9223372036854775808,0,1,2,3,4,5,5),(-2147483648,255,6,7,8,9,10,10),(-8388608,65535,11,12,13,14,15,15),(-32768,16777215,16,17,18,19,20,20),(-128,4294967295,21,22,23,24,25,25),(9223372036854775807,18446744073709551615,26,27,28,29,30,30);
|
||||||
INSERT INTO t5 VALUES(0,-9223372036854775808,1,2,3,4,5,5),(255,-2147483648,6,7,8,9,10,10),(65535,-8388608,11,12,13,14,15,15),(16777215,-32768,16,17,18,19,20,20),(4294967295,-128,21,22,23,24,25,25),(18446744073709551615,9223372036854775807,26,27,28,29,30,30);
|
INSERT INTO t5 VALUES(0,-9223372036854775808,1,2,3,4,5,5),(255,-2147483648,6,7,8,9,10,10),(65535,-8388608,11,12,13,14,15,15),(16777215,-32768,16,17,18,19,20,20),(4294967295,-128,21,22,23,24,25,25),(18446744073709551615,9223372036854775807,26,27,28,29,30,30);
|
||||||
--error ER_DUP_ENTRY
|
--error 167
|
||||||
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
INSERT INTO t4(c2,c3) VALUES(31,32) /* tries to increment out of range */;
|
||||||
--error ER_AUTOINC_READ_FAILED
|
--error ER_AUTOINC_READ_FAILED
|
||||||
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
INSERT INTO t5(c2,c3) VALUES(33,34) /* tries to increment out of range */;
|
||||||
|
@ -44,12 +44,10 @@ SET auto_increment_increment = 500;
|
|||||||
SET auto_increment_offset = 300;
|
SET auto_increment_offset = 300;
|
||||||
CREATE TABLE t1 (a TINYINT <CUSTOM_COL_OPTIONS> AUTO_INCREMENT, <CUSTOM_INDEX>(a)) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
CREATE TABLE t1 (a TINYINT <CUSTOM_COL_OPTIONS> AUTO_INCREMENT, <CUSTOM_INDEX>(a)) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
||||||
INSERT INTO t1 (a) VALUES (NULL);
|
INSERT INTO t1 (a) VALUES (NULL);
|
||||||
Warnings:
|
ERROR 22003: Out of range value for column 'a' at row 1
|
||||||
Warning 1264 Out of range value for column 'a' at row 1
|
|
||||||
SELECT LAST_INSERT_ID();
|
SELECT LAST_INSERT_ID();
|
||||||
LAST_INSERT_ID()
|
LAST_INSERT_ID()
|
||||||
127
|
850
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
a
|
a
|
||||||
127
|
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
@ -739,6 +739,8 @@ y YEAR <CUSTOM_COL_OPTIONS> NOT NULL,
|
|||||||
y4 YEAR(4) <CUSTOM_COL_OPTIONS> NOT NULL,
|
y4 YEAR(4) <CUSTOM_COL_OPTIONS> NOT NULL,
|
||||||
y2 YEAR(2) <CUSTOM_COL_OPTIONS> NOT NULL
|
y2 YEAR(2) <CUSTOM_COL_OPTIONS> NOT NULL
|
||||||
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
||||||
|
Warnings:
|
||||||
|
Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead
|
||||||
SHOW COLUMNS IN t1;
|
SHOW COLUMNS IN t1;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
d date # # #
|
d date # # #
|
||||||
@ -913,6 +915,8 @@ COUNT(c) COUNT(c2)
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 (c YEAR(2) <CUSTOM_COL_OPTIONS> NOT NULL) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
CREATE TABLE t1 (c YEAR(2) <CUSTOM_COL_OPTIONS> NOT NULL) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
||||||
|
Warnings:
|
||||||
|
Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead
|
||||||
SHOW COLUMNS IN t1;
|
SHOW COLUMNS IN t1;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
c year(2) NO NULL
|
c year(2) NO NULL
|
||||||
@ -922,6 +926,9 @@ DROP TABLE t1;
|
|||||||
CREATE TABLE t1 (c YEAR(2) <CUSTOM_COL_OPTIONS> NOT NULL,
|
CREATE TABLE t1 (c YEAR(2) <CUSTOM_COL_OPTIONS> NOT NULL,
|
||||||
c2 YEAR(2) <CUSTOM_COL_OPTIONS> NOT NULL DEFAULT '12'
|
c2 YEAR(2) <CUSTOM_COL_OPTIONS> NOT NULL DEFAULT '12'
|
||||||
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
||||||
|
Warnings:
|
||||||
|
Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead
|
||||||
|
Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead
|
||||||
SHOW COLUMNS IN t1;
|
SHOW COLUMNS IN t1;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
c year(2) NO NULL
|
c year(2) NO NULL
|
||||||
|
@ -723,6 +723,8 @@ y YEAR <CUSTOM_COL_OPTIONS> NULL,
|
|||||||
y4 YEAR(4) <CUSTOM_COL_OPTIONS> NULL,
|
y4 YEAR(4) <CUSTOM_COL_OPTIONS> NULL,
|
||||||
y2 YEAR(2) <CUSTOM_COL_OPTIONS> NULL
|
y2 YEAR(2) <CUSTOM_COL_OPTIONS> NULL
|
||||||
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
||||||
|
Warnings:
|
||||||
|
Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead
|
||||||
SHOW COLUMNS IN t1;
|
SHOW COLUMNS IN t1;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
d date # # #
|
d date # # #
|
||||||
@ -884,6 +886,8 @@ COUNT(c2) COUNT(c1) COUNT(c) COUNT(*)
|
|||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
CREATE TABLE t1 (c YEAR(2) <CUSTOM_COL_OPTIONS> NULL) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
CREATE TABLE t1 (c YEAR(2) <CUSTOM_COL_OPTIONS> NULL) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
||||||
|
Warnings:
|
||||||
|
Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead
|
||||||
SHOW COLUMNS IN t1;
|
SHOW COLUMNS IN t1;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
c year(2) YES NULL
|
c year(2) YES NULL
|
||||||
@ -896,6 +900,10 @@ CREATE TABLE t1 (c YEAR(2) <CUSTOM_COL_OPTIONS> NULL,
|
|||||||
c1 YEAR(2) <CUSTOM_COL_OPTIONS> NULL DEFAULT NULL,
|
c1 YEAR(2) <CUSTOM_COL_OPTIONS> NULL DEFAULT NULL,
|
||||||
c2 YEAR(2) <CUSTOM_COL_OPTIONS> NULL DEFAULT '12'
|
c2 YEAR(2) <CUSTOM_COL_OPTIONS> NULL DEFAULT '12'
|
||||||
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
||||||
|
Warnings:
|
||||||
|
Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead
|
||||||
|
Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead
|
||||||
|
Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead
|
||||||
SHOW COLUMNS IN t1;
|
SHOW COLUMNS IN t1;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
c year(2) YES NULL
|
c year(2) YES NULL
|
||||||
|
@ -47,6 +47,8 @@ a b
|
|||||||
5 e
|
5 e
|
||||||
6 f
|
6 f
|
||||||
INSERT IGNORE INTO t1 (a,b) VALUES (1,'a'),(12345,'z');
|
INSERT IGNORE INTO t1 (a,b) VALUES (1,'a'),(12345,'z');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1' for key 'a'
|
||||||
INSERT INTO t1 (a,b) VALUES (3,'a'),(4,'d') ON DUPLICATE KEY UPDATE a = a+10;
|
INSERT INTO t1 (a,b) VALUES (3,'a'),(4,'d') ON DUPLICATE KEY UPDATE a = a+10;
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
a b
|
a b
|
||||||
@ -85,6 +87,8 @@ a b
|
|||||||
5 e
|
5 e
|
||||||
6 f
|
6 f
|
||||||
INSERT IGNORE INTO t1 (a,b) VALUES (1,'a'),(12345,'z');
|
INSERT IGNORE INTO t1 (a,b) VALUES (1,'a'),(12345,'z');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1-a' for key 'a'
|
||||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(12345,'z') ON DUPLICATE KEY UPDATE a = a+VALUES(a);
|
INSERT INTO t1 (a,b) VALUES (1,'a'),(12345,'z') ON DUPLICATE KEY UPDATE a = a+VALUES(a);
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
a b
|
a b
|
||||||
@ -131,6 +135,8 @@ a b
|
|||||||
5 e
|
5 e
|
||||||
6 f
|
6 f
|
||||||
INSERT IGNORE INTO t1 (a,b) VALUES (1,'a'),(12345,'z');
|
INSERT IGNORE INTO t1 (a,b) VALUES (1,'a'),(12345,'z');
|
||||||
|
Warnings:
|
||||||
|
Warning 1062 Duplicate entry '1' for key 'PRIMARY'
|
||||||
INSERT INTO t1 (a,b) VALUES (1,'a'),(12345,'z') ON DUPLICATE KEY UPDATE b = CONCAT(b,b);
|
INSERT INTO t1 (a,b) VALUES (1,'a'),(12345,'z') ON DUPLICATE KEY UPDATE b = CONCAT(b,b);
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
a b
|
a b
|
||||||
|
@ -7,6 +7,8 @@ y YEAR <CUSTOM_COL_OPTIONS>,
|
|||||||
y4 YEAR(4) <CUSTOM_COL_OPTIONS>,
|
y4 YEAR(4) <CUSTOM_COL_OPTIONS>,
|
||||||
y2 YEAR(2) <CUSTOM_COL_OPTIONS>
|
y2 YEAR(2) <CUSTOM_COL_OPTIONS>
|
||||||
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
) ENGINE=<STORAGE_ENGINE> <CUSTOM_TABLE_OPTIONS>;
|
||||||
|
Warnings:
|
||||||
|
Note 1287 'YEAR(2)' is deprecated and will be removed in a future release. Please use YEAR(4) instead
|
||||||
SHOW COLUMNS IN t1;
|
SHOW COLUMNS IN t1;
|
||||||
Field Type Null Key Default Extra
|
Field Type Null Key Default Extra
|
||||||
d date # # #
|
d date # # #
|
||||||
|
@ -1996,4 +1996,28 @@ create table if not exists t1 (a int unique, b int)
|
|||||||
ignore select 1 as a, 1 as b union select 1 as a, 2 as b;
|
ignore select 1 as a, 1 as b union select 1 as a, 2 as b;
|
||||||
select * from t1;
|
select * from t1;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
--echo # Checking that CREATE IF NOT EXISTS is not blocked by running SELECT
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create table t1 (a int, b int) engine=myisam;
|
||||||
|
create table t2 (a int, b int) engine=myisam;
|
||||||
|
insert into t1 values (1,1);
|
||||||
|
lock tables t1 read;
|
||||||
|
connect (user1,localhost,root,,test);
|
||||||
|
set @@lock_wait_timeout=5;
|
||||||
|
create table if not exists t1 (a int, b int);
|
||||||
|
create table if not exists t1 (a int, b int) select 2,2;
|
||||||
|
create table if not exists t1 like t2;
|
||||||
|
--error ER_TABLE_EXISTS_ERROR
|
||||||
|
create table t1 (a int, b int);
|
||||||
|
--error ER_TABLE_EXISTS_ERROR
|
||||||
|
create table t1 (a int, b int) select 2,2;
|
||||||
|
--error ER_TABLE_EXISTS_ERROR
|
||||||
|
create table t1 like t2;
|
||||||
|
disconnect user1;
|
||||||
|
connection default;
|
||||||
|
select * from t1;
|
||||||
|
unlock tables;
|
||||||
|
drop table t1,t2;
|
||||||
|
@ -1789,6 +1789,24 @@ disconnect con12828477_1;
|
|||||||
disconnect con12828477_2;
|
disconnect con12828477_2;
|
||||||
disconnect con12828477_3;
|
disconnect con12828477_3;
|
||||||
|
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-3818: Query against view over IS tables worse than equivalent query without view
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create view v1 as select table_schema, table_name, column_name from information_schema.columns;
|
||||||
|
|
||||||
|
explain extended
|
||||||
|
select column_name from v1
|
||||||
|
where (table_schema = "osm") and (table_name = "test");
|
||||||
|
|
||||||
|
explain extended
|
||||||
|
select information_schema.columns.column_name as column_name
|
||||||
|
from information_schema.columns
|
||||||
|
where (information_schema.columns.table_schema = 'osm') and (information_schema.columns.table_name = 'test');
|
||||||
|
|
||||||
|
drop view v1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # Clean-up.
|
--echo # Clean-up.
|
||||||
drop database mysqltest;
|
drop database mysqltest;
|
||||||
|
@ -1777,5 +1777,42 @@ drop table t1, t2;
|
|||||||
|
|
||||||
set optimizer_switch=@subselect4_tmp;
|
set optimizer_switch=@subselect4_tmp;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-3899 Valgrind warnings (blocks are definitely lost) in filesort on IN subquery with SUM and DISTINCT
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (1),(9);
|
||||||
|
|
||||||
|
CREATE TABLE t2 (b INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (8);
|
||||||
|
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE (1, 1) IN (SELECT a, SUM(DISTINCT a) FROM t1, t2 GROUP BY a);
|
||||||
|
|
||||||
|
drop table t1, t2;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-3902 Assertion `record_length == m_record_length' failed at Filesort_buffer::alloc_sort_buffer
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (a INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t1 VALUES (1),(2);
|
||||||
|
|
||||||
|
CREATE TABLE t2 (pk INT PRIMARY KEY, b INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t2 VALUES (1,1),(2,7);
|
||||||
|
|
||||||
|
CREATE TABLE t3 (c INT) ENGINE=MyISAM;
|
||||||
|
INSERT INTO t3 VALUES (8);
|
||||||
|
|
||||||
|
SELECT * FROM t1
|
||||||
|
WHERE (1, 5) IN (SELECT b, SUM(DISTINCT b) FROM t2, t3 GROUP BY b);
|
||||||
|
|
||||||
|
SELECT * FROM t2 AS alias1, t2 AS alias2
|
||||||
|
WHERE EXISTS ( SELECT 1 ) AND (alias2.pk = alias1.b )
|
||||||
|
ORDER BY alias1.b;
|
||||||
|
|
||||||
|
drop table t1, t2, t3;
|
||||||
|
|
||||||
SET optimizer_switch= @@global.optimizer_switch;
|
SET optimizer_switch= @@global.optimizer_switch;
|
||||||
set @@tmp_table_size= @@global.tmp_table_size;
|
set @@tmp_table_size= @@global.tmp_table_size;
|
||||||
|
@ -118,9 +118,9 @@ Usage: $script [host [user [db]]] OPTIONS
|
|||||||
--rollback undo the last changes to the grant-tables.
|
--rollback undo the last changes to the grant-tables.
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
+ At least the user and the db must be given (even with wildcards)
|
At least the user and the db must be given (even with wildcards)
|
||||||
+ If no host is given, `localhost' is assumed
|
If no host is given, `localhost' is assumed
|
||||||
+ Wilcards (*,?,%,_) are allowed for host, user and db, but be sure
|
Wilcards (*,?,%,_) are allowed for host, user and db, but be sure
|
||||||
to escape them from your shell!! (ie type \\* or '*')
|
to escape them from your shell!! (ie type \\* or '*')
|
||||||
_OPTIONS
|
_OPTIONS
|
||||||
|
|
||||||
|
@ -2453,21 +2453,6 @@ void dec_connection_count(THD *thd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
Delete the THD object and decrease number of threads
|
|
||||||
|
|
||||||
SYNOPSIS
|
|
||||||
delete_thd()
|
|
||||||
thd Thread handler
|
|
||||||
*/
|
|
||||||
|
|
||||||
void delete_thd(THD *thd)
|
|
||||||
{
|
|
||||||
thread_count--;
|
|
||||||
delete thd;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Unlink thd from global list of available connections and free thd
|
Unlink thd from global list of available connections and free thd
|
||||||
|
|
||||||
@ -2486,14 +2471,23 @@ void unlink_thd(THD *thd)
|
|||||||
|
|
||||||
thd_cleanup(thd);
|
thd_cleanup(thd);
|
||||||
dec_connection_count(thd);
|
dec_connection_count(thd);
|
||||||
|
|
||||||
|
mysql_mutex_lock(&LOCK_status);
|
||||||
|
add_to_status(&global_status_var, &thd->status_var);
|
||||||
|
mysql_mutex_unlock(&LOCK_status);
|
||||||
|
|
||||||
mysql_mutex_lock(&LOCK_thread_count);
|
mysql_mutex_lock(&LOCK_thread_count);
|
||||||
|
thread_count--;
|
||||||
|
thd->unlink();
|
||||||
/*
|
/*
|
||||||
Used by binlog_reset_master. It would be cleaner to use
|
Used by binlog_reset_master. It would be cleaner to use
|
||||||
DEBUG_SYNC here, but that's not possible because the THD's debug
|
DEBUG_SYNC here, but that's not possible because the THD's debug
|
||||||
sync feature has been shut down at this point.
|
sync feature has been shut down at this point.
|
||||||
*/
|
*/
|
||||||
DBUG_EXECUTE_IF("sleep_after_lock_thread_count_before_delete_thd", sleep(5););
|
DBUG_EXECUTE_IF("sleep_after_lock_thread_count_before_delete_thd", sleep(5););
|
||||||
delete_thd(thd);
|
mysql_mutex_unlock(&LOCK_thread_count);
|
||||||
|
|
||||||
|
delete thd;
|
||||||
DBUG_VOID_RETURN;
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2602,10 +2596,13 @@ bool one_thread_per_connection_end(THD *thd, bool put_in_cache)
|
|||||||
/* Mark that current_thd is not valid anymore */
|
/* Mark that current_thd is not valid anymore */
|
||||||
my_pthread_setspecific_ptr(THR_THD, 0);
|
my_pthread_setspecific_ptr(THR_THD, 0);
|
||||||
if (put_in_cache)
|
if (put_in_cache)
|
||||||
|
{
|
||||||
|
mysql_mutex_lock(&LOCK_thread_count);
|
||||||
put_in_cache= cache_thread();
|
put_in_cache= cache_thread();
|
||||||
mysql_mutex_unlock(&LOCK_thread_count);
|
mysql_mutex_unlock(&LOCK_thread_count);
|
||||||
if (put_in_cache)
|
if (put_in_cache)
|
||||||
DBUG_RETURN(0); // Thread is reused
|
DBUG_RETURN(0); // Thread is reused
|
||||||
|
}
|
||||||
|
|
||||||
/* It's safe to broadcast outside a lock (COND... is not deleted here) */
|
/* It's safe to broadcast outside a lock (COND... is not deleted here) */
|
||||||
DBUG_PRINT("signal", ("Broadcasting COND_thread_count"));
|
DBUG_PRINT("signal", ("Broadcasting COND_thread_count"));
|
||||||
|
@ -35,7 +35,6 @@
|
|||||||
static bool no_threads_end(THD *thd, bool put_in_cache)
|
static bool no_threads_end(THD *thd, bool put_in_cache)
|
||||||
{
|
{
|
||||||
unlink_thd(thd);
|
unlink_thd(thd);
|
||||||
mysql_mutex_unlock(&LOCK_thread_count);
|
|
||||||
return 1; // Abort handle_one_connection
|
return 1; // Abort handle_one_connection
|
||||||
}
|
}
|
||||||
|
|
||||||
|
116
sql/sql_base.cc
116
sql/sql_base.cc
@ -2408,6 +2408,7 @@ void drop_open_table(THD *thd, TABLE *table, const char *db_name,
|
|||||||
|
|
||||||
@param thd Thread context
|
@param thd Thread context
|
||||||
@param table Table list element
|
@param table Table list element
|
||||||
|
@param fast_check Check only if share or .frm file exists
|
||||||
@param[out] exists Out parameter which is set to TRUE if table
|
@param[out] exists Out parameter which is set to TRUE if table
|
||||||
exists and to FALSE otherwise.
|
exists and to FALSE otherwise.
|
||||||
|
|
||||||
@ -2421,7 +2422,8 @@ void drop_open_table(THD *thd, TABLE *table, const char *db_name,
|
|||||||
@retval FALSE No error. 'exists' out parameter set accordingly.
|
@retval FALSE No error. 'exists' out parameter set accordingly.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool check_if_table_exists(THD *thd, TABLE_LIST *table, bool *exists)
|
bool check_if_table_exists(THD *thd, TABLE_LIST *table, bool fast_check,
|
||||||
|
bool *exists)
|
||||||
{
|
{
|
||||||
char path[FN_REFLEN + 1];
|
char path[FN_REFLEN + 1];
|
||||||
TABLE_SHARE *share;
|
TABLE_SHARE *share;
|
||||||
@ -2429,7 +2431,8 @@ bool check_if_table_exists(THD *thd, TABLE_LIST *table, bool *exists)
|
|||||||
|
|
||||||
*exists= TRUE;
|
*exists= TRUE;
|
||||||
|
|
||||||
DBUG_ASSERT(thd->mdl_context.
|
DBUG_ASSERT(fast_check ||
|
||||||
|
thd->mdl_context.
|
||||||
is_lock_owner(MDL_key::TABLE, table->db,
|
is_lock_owner(MDL_key::TABLE, table->db,
|
||||||
table->table_name, MDL_SHARED));
|
table->table_name, MDL_SHARED));
|
||||||
|
|
||||||
@ -2446,6 +2449,12 @@ bool check_if_table_exists(THD *thd, TABLE_LIST *table, bool *exists)
|
|||||||
if (!access(path, F_OK))
|
if (!access(path, F_OK))
|
||||||
goto end;
|
goto end;
|
||||||
|
|
||||||
|
if (fast_check)
|
||||||
|
{
|
||||||
|
*exists= FALSE;
|
||||||
|
goto end;
|
||||||
|
}
|
||||||
|
|
||||||
/* .FRM file doesn't exist. Check if some engine can provide it. */
|
/* .FRM file doesn't exist. Check if some engine can provide it. */
|
||||||
if (ha_check_if_table_exists(thd, table->db, table->table_name, exists))
|
if (ha_check_if_table_exists(thd, table->db, table->table_name, exists))
|
||||||
{
|
{
|
||||||
@ -2995,7 +3004,7 @@ bool open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root,
|
|||||||
{
|
{
|
||||||
bool exists;
|
bool exists;
|
||||||
|
|
||||||
if (check_if_table_exists(thd, table_list, &exists))
|
if (check_if_table_exists(thd, table_list, 0, &exists))
|
||||||
DBUG_RETURN(TRUE);
|
DBUG_RETURN(TRUE);
|
||||||
|
|
||||||
if (!exists)
|
if (!exists)
|
||||||
@ -3148,16 +3157,6 @@ retry_share:
|
|||||||
while (table_cache_count > table_cache_size && unused_tables)
|
while (table_cache_count > table_cache_size && unused_tables)
|
||||||
free_cache_entry(unused_tables);
|
free_cache_entry(unused_tables);
|
||||||
|
|
||||||
if (get_use_stat_tables_mode(thd) > NEVER)
|
|
||||||
{
|
|
||||||
if (share->table_category != TABLE_CATEGORY_SYSTEM)
|
|
||||||
{
|
|
||||||
if (!share->stats_can_be_read &&
|
|
||||||
!alloc_statistics_for_table_share(thd, share, TRUE))
|
|
||||||
share->stats_can_be_read= TRUE;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
mysql_mutex_unlock(&LOCK_open);
|
mysql_mutex_unlock(&LOCK_open);
|
||||||
|
|
||||||
/* make a new table */
|
/* make a new table */
|
||||||
@ -4643,10 +4642,13 @@ open_and_process_table(THD *thd, LEX *lex, TABLE_LIST *tables,
|
|||||||
if (get_use_stat_tables_mode(thd) > NEVER && tables->table)
|
if (get_use_stat_tables_mode(thd) > NEVER && tables->table)
|
||||||
{
|
{
|
||||||
TABLE_SHARE *table_share= tables->table->s;
|
TABLE_SHARE *table_share= tables->table->s;
|
||||||
if (table_share && table_share->table_category != TABLE_CATEGORY_SYSTEM)
|
if (table_share && table_share->table_category == TABLE_CATEGORY_USER &&
|
||||||
|
table_share->tmp_table == NO_TMP_TABLE)
|
||||||
{
|
{
|
||||||
if (!table_share->stats_can_be_read &&
|
if (table_share->stats_cb.stats_can_be_read ||
|
||||||
!alloc_statistics_for_table_share(thd, table_share, FALSE))
|
!alloc_statistics_for_table_share(thd, table_share, FALSE))
|
||||||
|
{
|
||||||
|
if (table_share->stats_cb.stats_can_be_read)
|
||||||
{
|
{
|
||||||
KEY *key_info= table_share->key_info;
|
KEY *key_info= table_share->key_info;
|
||||||
KEY *key_info_end= key_info + table_share->keys;
|
KEY *key_info_end= key_info + table_share->keys;
|
||||||
@ -4657,8 +4659,7 @@ open_and_process_table(THD *thd, LEX *lex, TABLE_LIST *tables,
|
|||||||
Field **table_field_ptr= tables->table->field;
|
Field **table_field_ptr= tables->table->field;
|
||||||
for ( ; *field_ptr; field_ptr++, table_field_ptr++)
|
for ( ; *field_ptr; field_ptr++, table_field_ptr++)
|
||||||
(*table_field_ptr)->read_stats= (*field_ptr)->read_stats;
|
(*table_field_ptr)->read_stats= (*field_ptr)->read_stats;
|
||||||
|
}
|
||||||
table_share->stats_can_be_read= TRUE;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -4711,7 +4712,18 @@ extern "C" uchar *schema_set_get_key(const uchar *record, size_t *length,
|
|||||||
open, see open_table() description for details.
|
open, see open_table() description for details.
|
||||||
|
|
||||||
@retval FALSE Success.
|
@retval FALSE Success.
|
||||||
@retval TRUE Failure (e.g. connection was killed)
|
@retval TRUE Failure (e.g. connection was killed) or table existed
|
||||||
|
for a CREATE TABLE.
|
||||||
|
|
||||||
|
@notes
|
||||||
|
In case of CREATE TABLE we avoid a wait for tables that are in use
|
||||||
|
by first trying to do a meta data lock with timeout == 0. If we get a
|
||||||
|
timeout we will check if table exists (it should) and retry with
|
||||||
|
normal timeout if it didn't exists.
|
||||||
|
Note that for CREATE TABLE IF EXISTS we only generate a warning
|
||||||
|
but still return TRUE (to abort the calling open_table() function).
|
||||||
|
On must check THD->is_error() if one wants to distinguish between warning
|
||||||
|
and error.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool
|
bool
|
||||||
@ -4723,6 +4735,10 @@ lock_table_names(THD *thd,
|
|||||||
TABLE_LIST *table;
|
TABLE_LIST *table;
|
||||||
MDL_request global_request;
|
MDL_request global_request;
|
||||||
Hash_set<TABLE_LIST, schema_set_get_key> schema_set;
|
Hash_set<TABLE_LIST, schema_set_get_key> schema_set;
|
||||||
|
ulong org_lock_wait_timeout= lock_wait_timeout;
|
||||||
|
/* Check if we are using CREATE TABLE ... IF NOT EXISTS */
|
||||||
|
bool create_table;
|
||||||
|
Dummy_error_handler error_handler;
|
||||||
DBUG_ENTER("lock_table_names");
|
DBUG_ENTER("lock_table_names");
|
||||||
|
|
||||||
DBUG_ASSERT(!thd->locked_tables_mode);
|
DBUG_ASSERT(!thd->locked_tables_mode);
|
||||||
@ -4744,8 +4760,14 @@ lock_table_names(THD *thd,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! (flags & MYSQL_OPEN_SKIP_SCOPED_MDL_LOCK) &&
|
if (mdl_requests.is_empty())
|
||||||
! mdl_requests.is_empty())
|
DBUG_RETURN(FALSE);
|
||||||
|
|
||||||
|
/* Check if CREATE TABLE IF NOT EXISTS was used */
|
||||||
|
create_table= (tables_start && tables_start->open_strategy ==
|
||||||
|
TABLE_LIST::OPEN_IF_EXISTS);
|
||||||
|
|
||||||
|
if (!(flags & MYSQL_OPEN_SKIP_SCOPED_MDL_LOCK))
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
Scoped locks: Take intention exclusive locks on all involved
|
Scoped locks: Take intention exclusive locks on all involved
|
||||||
@ -4773,12 +4795,58 @@ lock_table_names(THD *thd,
|
|||||||
global_request.init(MDL_key::GLOBAL, "", "", MDL_INTENTION_EXCLUSIVE,
|
global_request.init(MDL_key::GLOBAL, "", "", MDL_INTENTION_EXCLUSIVE,
|
||||||
MDL_STATEMENT);
|
MDL_STATEMENT);
|
||||||
mdl_requests.push_front(&global_request);
|
mdl_requests.push_front(&global_request);
|
||||||
|
|
||||||
|
if (create_table)
|
||||||
|
lock_wait_timeout= 0; // Don't wait for timeout
|
||||||
}
|
}
|
||||||
|
|
||||||
if (thd->mdl_context.acquire_locks(&mdl_requests, lock_wait_timeout))
|
for (;;)
|
||||||
DBUG_RETURN(TRUE);
|
{
|
||||||
|
bool exists= TRUE;
|
||||||
|
bool res;
|
||||||
|
|
||||||
DBUG_RETURN(FALSE);
|
if (create_table)
|
||||||
|
thd->push_internal_handler(&error_handler); // Avoid warnings & errors
|
||||||
|
res= thd->mdl_context.acquire_locks(&mdl_requests, lock_wait_timeout);
|
||||||
|
if (create_table)
|
||||||
|
thd->pop_internal_handler();
|
||||||
|
if (!res)
|
||||||
|
DBUG_RETURN(FALSE); // Got locks
|
||||||
|
|
||||||
|
if (!create_table)
|
||||||
|
DBUG_RETURN(TRUE); // Return original error
|
||||||
|
|
||||||
|
/*
|
||||||
|
We come here in the case of lock timeout when executing
|
||||||
|
CREATE TABLE IF NOT EXISTS.
|
||||||
|
Verify that table really exists (it should as we got a lock conflict)
|
||||||
|
*/
|
||||||
|
if (check_if_table_exists(thd, tables_start, 1, &exists))
|
||||||
|
DBUG_RETURN(TRUE); // Should never happen
|
||||||
|
if (exists)
|
||||||
|
{
|
||||||
|
if (thd->lex->create_info.options & HA_LEX_CREATE_IF_NOT_EXISTS)
|
||||||
|
{
|
||||||
|
push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_NOTE,
|
||||||
|
ER_TABLE_EXISTS_ERROR, ER(ER_TABLE_EXISTS_ERROR),
|
||||||
|
tables_start->table_name);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
my_error(ER_TABLE_EXISTS_ERROR, MYF(0), tables_start->table_name);
|
||||||
|
DBUG_RETURN(TRUE);
|
||||||
|
}
|
||||||
|
/* purecov: begin inspected */
|
||||||
|
/*
|
||||||
|
We got error from acquire_locks but table didn't exists.
|
||||||
|
In theory this should never happen, except maybe in
|
||||||
|
CREATE or DROP DATABASE scenario.
|
||||||
|
We play safe and restart the original acquire_locks with the
|
||||||
|
original timeout
|
||||||
|
*/
|
||||||
|
create_table= 0;
|
||||||
|
lock_wait_timeout= org_lock_wait_timeout;
|
||||||
|
/* purecov: end */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -4900,7 +4968,7 @@ bool open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags,
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Initialize temporary MEM_ROOT for new .FRM parsing. Do not allocate
|
Initialize temporary MEM_ROOT for new .FRM parsing. Do not alloctaate
|
||||||
anything yet, to avoid penalty for statements which don't use views
|
anything yet, to avoid penalty for statements which don't use views
|
||||||
and thus new .FRM format.
|
and thus new .FRM format.
|
||||||
*/
|
*/
|
||||||
|
@ -302,7 +302,8 @@ TABLE *find_table_for_mdl_upgrade(THD *thd, const char *db,
|
|||||||
const char *table_name,
|
const char *table_name,
|
||||||
bool no_error);
|
bool no_error);
|
||||||
void mark_tmp_table_for_reuse(TABLE *table);
|
void mark_tmp_table_for_reuse(TABLE *table);
|
||||||
bool check_if_table_exists(THD *thd, TABLE_LIST *table, bool *exists);
|
bool check_if_table_exists(THD *thd, TABLE_LIST *table, bool fast_check,
|
||||||
|
bool *exists);
|
||||||
int update_virtual_fields(THD *thd, TABLE *table,
|
int update_virtual_fields(THD *thd, TABLE *table,
|
||||||
enum enum_vcol_update_mode vcol_update_mode= VCOL_UPDATE_FOR_READ);
|
enum enum_vcol_update_mode vcol_update_mode= VCOL_UPDATE_FOR_READ);
|
||||||
int dynamic_column_error_message(enum_dyncol_func_result rc);
|
int dynamic_column_error_message(enum_dyncol_func_result rc);
|
||||||
|
@ -1439,7 +1439,6 @@ THD::~THD()
|
|||||||
mysql_mutex_lock(&LOCK_thd_data);
|
mysql_mutex_lock(&LOCK_thd_data);
|
||||||
mysys_var=0; // Safety (shouldn't be needed)
|
mysys_var=0; // Safety (shouldn't be needed)
|
||||||
mysql_mutex_unlock(&LOCK_thd_data);
|
mysql_mutex_unlock(&LOCK_thd_data);
|
||||||
add_to_status(&global_status_var, &status_var);
|
|
||||||
|
|
||||||
/* Close connection */
|
/* Close connection */
|
||||||
#ifndef EMBEDDED_LIBRARY
|
#ifndef EMBEDDED_LIBRARY
|
||||||
|
@ -939,7 +939,7 @@ update_binlog:
|
|||||||
char quoted_name[FN_REFLEN+3];
|
char quoted_name[FN_REFLEN+3];
|
||||||
|
|
||||||
// Only write drop table to the binlog for tables that no longer exist.
|
// Only write drop table to the binlog for tables that no longer exist.
|
||||||
if (check_if_table_exists(thd, tbl, &exists))
|
if (check_if_table_exists(thd, tbl, 0, &exists))
|
||||||
{
|
{
|
||||||
error= true;
|
error= true;
|
||||||
goto exit;
|
goto exit;
|
||||||
|
@ -2612,7 +2612,14 @@ case SQLCOM_PREPARE:
|
|||||||
goto end_with_restore_list;
|
goto end_with_restore_list;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(res= open_and_lock_tables(thd, lex->query_tables, TRUE, 0)))
|
res= open_and_lock_tables(thd, lex->query_tables, TRUE, 0);
|
||||||
|
if (res)
|
||||||
|
{
|
||||||
|
/* Got error or warning. Set res to 1 if error */
|
||||||
|
if (!(res= thd->is_error()))
|
||||||
|
my_ok(thd); // CREATE ... IF NOT EXISTS
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
/* The table already exists */
|
/* The table already exists */
|
||||||
if (create_table->table)
|
if (create_table->table)
|
||||||
|
@ -7473,10 +7473,10 @@ JOIN_TAB *next_breadth_first_tab(JOIN *join, enum enum_exec_or_opt tabs_kind,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
JOIN_TAB *first_top_level_tab(JOIN *join, enum enum_with_const_tables with_const)
|
JOIN_TAB *first_top_level_tab(JOIN *join, enum enum_with_const_tables const_tbls)
|
||||||
{
|
{
|
||||||
JOIN_TAB *tab= join->join_tab;
|
JOIN_TAB *tab= join->join_tab;
|
||||||
if (with_const == WITH_CONST_TABLES)
|
if (const_tbls == WITHOUT_CONST_TABLES)
|
||||||
{
|
{
|
||||||
if (join->const_tables == join->table_count)
|
if (join->const_tables == join->table_count)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -3389,13 +3389,13 @@ bool get_lookup_value(THD *thd, Item_func *item_func,
|
|||||||
Item_field *item_field;
|
Item_field *item_field;
|
||||||
CHARSET_INFO *cs= system_charset_info;
|
CHARSET_INFO *cs= system_charset_info;
|
||||||
|
|
||||||
if (item_func->arguments()[0]->type() == Item::FIELD_ITEM &&
|
if (item_func->arguments()[0]->real_item()->type() == Item::FIELD_ITEM &&
|
||||||
item_func->arguments()[1]->const_item())
|
item_func->arguments()[1]->const_item())
|
||||||
{
|
{
|
||||||
idx_field= 0;
|
idx_field= 0;
|
||||||
idx_val= 1;
|
idx_val= 1;
|
||||||
}
|
}
|
||||||
else if (item_func->arguments()[1]->type() == Item::FIELD_ITEM &&
|
else if (item_func->arguments()[1]->real_item()->type() == Item::FIELD_ITEM &&
|
||||||
item_func->arguments()[0]->const_item())
|
item_func->arguments()[0]->const_item())
|
||||||
{
|
{
|
||||||
idx_field= 1;
|
idx_field= 1;
|
||||||
@ -3404,7 +3404,7 @@ bool get_lookup_value(THD *thd, Item_func *item_func,
|
|||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
item_field= (Item_field*) item_func->arguments()[idx_field];
|
item_field= (Item_field*) item_func->arguments()[idx_field]->real_item();
|
||||||
if (table->table != item_field->field->table)
|
if (table->table != item_field->field->table)
|
||||||
return 0;
|
return 0;
|
||||||
tmp_str= item_func->arguments()[idx_val]->val_str(&str_buff);
|
tmp_str= item_func->arguments()[idx_val]->val_str(&str_buff);
|
||||||
|
@ -158,34 +158,6 @@ inline int open_single_stat_table(THD *thd, TABLE_LIST *table,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
@details
|
|
||||||
If the value of the parameter is_safe is TRUE then the function
|
|
||||||
just copies the address pointed by the parameter src into the memory
|
|
||||||
pointed by the parameter dest. Otherwise the function performs the
|
|
||||||
following statement as an atomic action:
|
|
||||||
if (*dest == NULL) { *dest= *src; }
|
|
||||||
i.e. the same copying is performed only if *dest is NULL.
|
|
||||||
*/
|
|
||||||
|
|
||||||
static
|
|
||||||
inline void store_address_if_first(void **dest, void **src, bool is_safe)
|
|
||||||
{
|
|
||||||
if (is_safe)
|
|
||||||
{
|
|
||||||
if (!*dest)
|
|
||||||
memcpy(dest, src, sizeof(void *));
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
char *null= NULL;
|
|
||||||
my_atomic_rwlock_wrlock(&statistics_lock);
|
|
||||||
my_atomic_casptr(dest, (void **) &null, *src)
|
|
||||||
my_atomic_rwlock_wrunlock(&statistics_lock);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
The class Column_statistics_collected is a helper class used to collect
|
The class Column_statistics_collected is a helper class used to collect
|
||||||
statistics on a table column. The class is derived directly from
|
statistics on a table column. The class is derived directly from
|
||||||
@ -737,15 +709,16 @@ public:
|
|||||||
|
|
||||||
void get_stat_values()
|
void get_stat_values()
|
||||||
{
|
{
|
||||||
table_share->read_stats->cardinality_is_null= TRUE;
|
Table_statistics *read_stats= table_share->stats_cb.table_stats;
|
||||||
table_share->read_stats->cardinality= 0;
|
read_stats->cardinality_is_null= TRUE;
|
||||||
|
read_stats->cardinality= 0;
|
||||||
if (find_stat())
|
if (find_stat())
|
||||||
{
|
{
|
||||||
Field *stat_field= stat_table->field[TABLE_STAT_CARDINALITY];
|
Field *stat_field= stat_table->field[TABLE_STAT_CARDINALITY];
|
||||||
if (!stat_field->is_null())
|
if (!stat_field->is_null())
|
||||||
{
|
{
|
||||||
table_share->read_stats->cardinality_is_null= FALSE;
|
read_stats->cardinality_is_null= FALSE;
|
||||||
table_share->read_stats->cardinality= stat_field->val_int();
|
read_stats->cardinality= stat_field->val_int();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1547,28 +1520,22 @@ public:
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static
|
static
|
||||||
void create_min_max_stistical_fields_for_table(TABLE *table)
|
void create_min_max_statistical_fields_for_table(TABLE *table)
|
||||||
{
|
{
|
||||||
Field *table_field;
|
|
||||||
Field **field_ptr;
|
|
||||||
uchar *record;
|
|
||||||
uint rec_buff_length= table->s->rec_buff_length;
|
uint rec_buff_length= table->s->rec_buff_length;
|
||||||
|
|
||||||
for (field_ptr= table->field; *field_ptr; field_ptr++)
|
if ((table->collected_stats->min_max_record_buffers=
|
||||||
|
(uchar *) alloc_root(&table->mem_root, 2*rec_buff_length)))
|
||||||
{
|
{
|
||||||
table_field= *field_ptr;
|
uchar *record= table->collected_stats->min_max_record_buffers;
|
||||||
table_field->collected_stats->max_value=
|
memset(record, 0, 2*rec_buff_length);
|
||||||
table_field->collected_stats->min_value= NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((record= (uchar *) alloc_root(&table->mem_root, 2*rec_buff_length)))
|
|
||||||
{
|
|
||||||
for (uint i=0; i < 2; i++, record+= rec_buff_length)
|
for (uint i=0; i < 2; i++, record+= rec_buff_length)
|
||||||
{
|
{
|
||||||
for (field_ptr= table->field; *field_ptr; field_ptr++)
|
for (Field **field_ptr= table->field; *field_ptr; field_ptr++)
|
||||||
{
|
{
|
||||||
Field *fld;
|
Field *fld;
|
||||||
table_field= *field_ptr;
|
Field *table_field= *field_ptr;
|
||||||
my_ptrdiff_t diff= record-table->record[0];
|
my_ptrdiff_t diff= record-table->record[0];
|
||||||
if (!bitmap_is_set(table->read_set, table_field->field_index))
|
if (!bitmap_is_set(table->read_set, table_field->field_index))
|
||||||
continue;
|
continue;
|
||||||
@ -1615,41 +1582,40 @@ void create_min_max_stistical_fields_for_table(TABLE *table)
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
static
|
static
|
||||||
void create_min_max_stistical_fields_for_table_share(THD *thd,
|
void create_min_max_statistical_fields_for_table_share(THD *thd,
|
||||||
TABLE_SHARE *table_share,
|
TABLE_SHARE *table_share)
|
||||||
bool is_safe)
|
|
||||||
{
|
{
|
||||||
Field *table_field;
|
TABLE_STATISTICS_CB *stats_cb= &table_share->stats_cb;
|
||||||
Field **field_ptr;
|
Table_statistics *stats= stats_cb->table_stats;
|
||||||
uchar *record;
|
|
||||||
|
if (stats->min_max_record_buffers)
|
||||||
|
return;
|
||||||
|
|
||||||
uint rec_buff_length= table_share->rec_buff_length;
|
uint rec_buff_length= table_share->rec_buff_length;
|
||||||
|
|
||||||
for (field_ptr= table_share->field; *field_ptr; field_ptr++)
|
if ((stats->min_max_record_buffers=
|
||||||
|
(uchar *) alloc_root(&stats_cb->mem_root, 2*rec_buff_length)))
|
||||||
{
|
{
|
||||||
table_field= *field_ptr;
|
uchar *record= stats->min_max_record_buffers;
|
||||||
table_field->read_stats->max_value=
|
memset(record, 0, 2*rec_buff_length);
|
||||||
table_field->read_stats->min_value= NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((record= (uchar *) alloc_root(&table_share->mem_root, 2*rec_buff_length)))
|
|
||||||
{
|
|
||||||
for (uint i=0; i < 2; i++, record+= rec_buff_length)
|
for (uint i=0; i < 2; i++, record+= rec_buff_length)
|
||||||
{
|
{
|
||||||
for (field_ptr= table_share->field; *field_ptr; field_ptr++)
|
for (Field **field_ptr= table_share->field; *field_ptr; field_ptr++)
|
||||||
{
|
{
|
||||||
Field *fld;
|
Field *fld;
|
||||||
table_field= *field_ptr;
|
Field *table_field= *field_ptr;
|
||||||
my_ptrdiff_t diff= record - table_share->default_values;
|
my_ptrdiff_t diff= record - table_share->default_values;
|
||||||
if (!(fld= table_field->clone(&table_share->mem_root, diff)))
|
if (!(fld= table_field->clone(&stats_cb->mem_root, diff)))
|
||||||
continue;
|
continue;
|
||||||
store_address_if_first(i == 0 ?
|
if (i == 0)
|
||||||
(void **) &table_field->read_stats->min_value :
|
table_field->read_stats->min_value= fld;
|
||||||
(void **) &table_field->read_stats->max_value,
|
else
|
||||||
(void **) &fld,
|
table_field->read_stats->max_value= fld;
|
||||||
is_safe);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1684,6 +1650,7 @@ int alloc_statistics_for_table(THD* thd, TABLE *table)
|
|||||||
|
|
||||||
DBUG_ENTER("alloc_statistics_for_table");
|
DBUG_ENTER("alloc_statistics_for_table");
|
||||||
|
|
||||||
|
|
||||||
Table_statistics *table_stats=
|
Table_statistics *table_stats=
|
||||||
(Table_statistics *) alloc_root(&table->mem_root,
|
(Table_statistics *) alloc_root(&table->mem_root,
|
||||||
sizeof(Table_statistics));
|
sizeof(Table_statistics));
|
||||||
@ -1692,7 +1659,7 @@ int alloc_statistics_for_table(THD* thd, TABLE *table)
|
|||||||
Column_statistics_collected *column_stats=
|
Column_statistics_collected *column_stats=
|
||||||
(Column_statistics_collected *) alloc_root(&table->mem_root,
|
(Column_statistics_collected *) alloc_root(&table->mem_root,
|
||||||
sizeof(Column_statistics_collected) *
|
sizeof(Column_statistics_collected) *
|
||||||
fields);
|
(fields+1));
|
||||||
|
|
||||||
uint keys= table->s->keys;
|
uint keys= table->s->keys;
|
||||||
Index_statistics *index_stats=
|
Index_statistics *index_stats=
|
||||||
@ -1711,10 +1678,14 @@ int alloc_statistics_for_table(THD* thd, TABLE *table)
|
|||||||
table_stats->index_stats= index_stats;
|
table_stats->index_stats= index_stats;
|
||||||
table_stats->idx_avg_frequency= idx_avg_frequency;
|
table_stats->idx_avg_frequency= idx_avg_frequency;
|
||||||
|
|
||||||
memset(column_stats, 0, sizeof(Column_statistics) * fields);
|
memset(column_stats, 0, sizeof(Column_statistics) * (fields+1));
|
||||||
|
|
||||||
for (field_ptr= table->field; *field_ptr; field_ptr++, column_stats++)
|
for (field_ptr= table->field; *field_ptr; field_ptr++, column_stats++)
|
||||||
|
{
|
||||||
(*field_ptr)->collected_stats= column_stats;
|
(*field_ptr)->collected_stats= column_stats;
|
||||||
|
(*field_ptr)->collected_stats->max_value= NULL;
|
||||||
|
(*field_ptr)->collected_stats->min_value= NULL;
|
||||||
|
}
|
||||||
|
|
||||||
memset(idx_avg_frequency, 0, sizeof(ulong) * key_parts);
|
memset(idx_avg_frequency, 0, sizeof(ulong) * key_parts);
|
||||||
|
|
||||||
@ -1728,12 +1699,54 @@ int alloc_statistics_for_table(THD* thd, TABLE *table)
|
|||||||
idx_avg_frequency+= key_info->ext_key_parts;
|
idx_avg_frequency+= key_info->ext_key_parts;
|
||||||
}
|
}
|
||||||
|
|
||||||
create_min_max_stistical_fields_for_table(table);
|
create_min_max_statistical_fields_for_table(table);
|
||||||
|
|
||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
@brief
|
||||||
|
Check whether any persistent statistics for the processed command is needed
|
||||||
|
|
||||||
|
@param
|
||||||
|
thd The thread handle
|
||||||
|
|
||||||
|
@details
|
||||||
|
The function checks whether any persitent statistics for the processed
|
||||||
|
command is needed to be read.
|
||||||
|
|
||||||
|
@retval
|
||||||
|
TRUE statistics is needed to be read
|
||||||
|
@retval
|
||||||
|
FALSE Otherwise
|
||||||
|
*/
|
||||||
|
|
||||||
|
static
|
||||||
|
inline bool statistics_for_command_is_needed(THD *thd)
|
||||||
|
{
|
||||||
|
if (thd->bootstrap || thd->variables.use_stat_tables == NEVER)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
switch(thd->lex->sql_command) {
|
||||||
|
case SQLCOM_SELECT:
|
||||||
|
case SQLCOM_INSERT:
|
||||||
|
case SQLCOM_INSERT_SELECT:
|
||||||
|
case SQLCOM_UPDATE:
|
||||||
|
case SQLCOM_UPDATE_MULTI:
|
||||||
|
case SQLCOM_DELETE:
|
||||||
|
case SQLCOM_DELETE_MULTI:
|
||||||
|
case SQLCOM_REPLACE:
|
||||||
|
case SQLCOM_REPLACE_SELECT:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@brief
|
@brief
|
||||||
Allocate memory for the statistical data used by a table share
|
Allocate memory for the statistical data used by a table share
|
||||||
@ -1772,6 +1785,11 @@ int alloc_statistics_for_table(THD* thd, TABLE *table)
|
|||||||
Here the second and the third threads try to allocate the memory for
|
Here the second and the third threads try to allocate the memory for
|
||||||
statistical data at the same time. The precautions are taken to
|
statistical data at the same time. The precautions are taken to
|
||||||
guarantee the correctness of the allocation.
|
guarantee the correctness of the allocation.
|
||||||
|
|
||||||
|
@note
|
||||||
|
Currently the function always is called with the parameter is_safe set
|
||||||
|
to FALSE.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
int alloc_statistics_for_table_share(THD* thd, TABLE_SHARE *table_share,
|
int alloc_statistics_for_table_share(THD* thd, TABLE_SHARE *table_share,
|
||||||
@ -1779,69 +1797,110 @@ int alloc_statistics_for_table_share(THD* thd, TABLE_SHARE *table_share,
|
|||||||
{
|
{
|
||||||
|
|
||||||
Field **field_ptr;
|
Field **field_ptr;
|
||||||
uint cnt= 0;
|
KEY *key_info, *end;
|
||||||
|
TABLE_STATISTICS_CB *stats_cb= &table_share->stats_cb;
|
||||||
|
|
||||||
DBUG_ENTER("alloc_statistics_for_table_share");
|
DBUG_ENTER("alloc_statistics_for_table_share");
|
||||||
|
|
||||||
DEBUG_SYNC(thd, "statistics_mem_alloc_start1");
|
DEBUG_SYNC(thd, "statistics_mem_alloc_start1");
|
||||||
DEBUG_SYNC(thd, "statistics_mem_alloc_start2");
|
DEBUG_SYNC(thd, "statistics_mem_alloc_start2");
|
||||||
|
|
||||||
Table_statistics *table_stats=
|
if (!statistics_for_command_is_needed(thd))
|
||||||
(Table_statistics *) alloc_root(&table_share->mem_root,
|
DBUG_RETURN(1);
|
||||||
|
|
||||||
|
if (!is_safe)
|
||||||
|
mysql_mutex_lock(&table_share->LOCK_ha_data);
|
||||||
|
|
||||||
|
if (stats_cb->stats_can_be_read)
|
||||||
|
{
|
||||||
|
if (!is_safe)
|
||||||
|
mysql_mutex_unlock(&table_share->LOCK_ha_data);
|
||||||
|
DBUG_RETURN(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
Table_statistics *table_stats= stats_cb->table_stats;
|
||||||
|
if (!table_stats)
|
||||||
|
{
|
||||||
|
table_stats= (Table_statistics *) alloc_root(&stats_cb->mem_root,
|
||||||
sizeof(Table_statistics));
|
sizeof(Table_statistics));
|
||||||
if (!table_stats)
|
if (!table_stats)
|
||||||
|
{
|
||||||
|
if (!is_safe)
|
||||||
|
mysql_mutex_unlock(&table_share->LOCK_ha_data);
|
||||||
DBUG_RETURN(1);
|
DBUG_RETURN(1);
|
||||||
|
}
|
||||||
memset(table_stats, 0, sizeof(Table_statistics));
|
memset(table_stats, 0, sizeof(Table_statistics));
|
||||||
store_address_if_first((void **) &table_share->read_stats,
|
stats_cb->table_stats= table_stats;
|
||||||
(void **) &table_stats, is_safe);
|
}
|
||||||
table_stats= table_share->read_stats;
|
|
||||||
|
|
||||||
for (field_ptr= table_share->field; *field_ptr; field_ptr++, cnt++) ;
|
uint fields= table_share->fields;
|
||||||
Column_statistics *column_stats=
|
Column_statistics *column_stats= table_stats->column_stats;
|
||||||
(Column_statistics *) alloc_root(&table_share->mem_root,
|
|
||||||
sizeof(Column_statistics) * cnt);
|
|
||||||
if (!column_stats)
|
if (!column_stats)
|
||||||
DBUG_RETURN(1);
|
{
|
||||||
memset(column_stats, 0, sizeof(Column_statistics) * cnt);
|
column_stats= (Column_statistics *) alloc_root(&stats_cb->mem_root,
|
||||||
store_address_if_first((void **) &table_stats->column_stats,
|
sizeof(Column_statistics) *
|
||||||
(void **) &column_stats, is_safe);
|
(fields+1));
|
||||||
column_stats= table_stats->column_stats;
|
if (column_stats)
|
||||||
|
{
|
||||||
for (field_ptr= table_share->field; *field_ptr; field_ptr++, column_stats++)
|
memset(column_stats, 0, sizeof(Column_statistics) * (fields+1));
|
||||||
|
table_stats->column_stats= column_stats;
|
||||||
|
for (field_ptr= table_share->field;
|
||||||
|
*field_ptr;
|
||||||
|
field_ptr++, column_stats++)
|
||||||
|
{
|
||||||
(*field_ptr)->read_stats= column_stats;
|
(*field_ptr)->read_stats= column_stats;
|
||||||
|
(*field_ptr)->read_stats->min_value= NULL;
|
||||||
|
(*field_ptr)->read_stats->max_value= NULL;
|
||||||
|
}
|
||||||
|
create_min_max_statistical_fields_for_table_share(thd, table_share);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
uint keys= table_share->keys;
|
uint keys= table_share->keys;
|
||||||
Index_statistics *index_stats=
|
Index_statistics *index_stats= table_stats->index_stats;
|
||||||
(Index_statistics *) alloc_root(&table_share->mem_root,
|
|
||||||
sizeof(Index_statistics) * keys);
|
|
||||||
if (!index_stats)
|
if (!index_stats)
|
||||||
DBUG_RETURN(1);
|
{
|
||||||
memset(index_stats, 0, sizeof(Index_statistics) * keys);
|
index_stats= (Index_statistics *) alloc_root(&stats_cb->mem_root,
|
||||||
store_address_if_first((void **) &table_stats->index_stats,
|
sizeof(Index_statistics) *
|
||||||
(void **) &index_stats, is_safe);
|
keys);
|
||||||
index_stats= table_stats->index_stats;
|
if (index_stats)
|
||||||
|
{
|
||||||
uint key_parts= table_share->ext_key_parts;
|
table_stats->index_stats= index_stats;
|
||||||
ulong *idx_avg_frequency= (ulong*) alloc_root(&table_share->mem_root,
|
for (key_info= table_share->key_info, end= key_info + keys;
|
||||||
sizeof(ulong) * key_parts);
|
|
||||||
if (!idx_avg_frequency)
|
|
||||||
DBUG_RETURN(1);
|
|
||||||
memset(idx_avg_frequency, 0, sizeof(ulong) * key_parts);
|
|
||||||
store_address_if_first((void **) &table_stats->idx_avg_frequency,
|
|
||||||
(void **) &idx_avg_frequency, is_safe);
|
|
||||||
idx_avg_frequency= table_stats->idx_avg_frequency;
|
|
||||||
|
|
||||||
KEY *key_info, *end;
|
|
||||||
for (key_info= table_share->key_info, end= key_info + table_share->keys;
|
|
||||||
key_info < end;
|
key_info < end;
|
||||||
key_info++, index_stats++)
|
key_info++, index_stats++)
|
||||||
{
|
{
|
||||||
key_info->read_stats= index_stats;
|
key_info->read_stats= index_stats;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
uint key_parts= table_share->ext_key_parts;
|
||||||
|
ulong *idx_avg_frequency= table_stats->idx_avg_frequency;
|
||||||
|
if (!idx_avg_frequency)
|
||||||
|
{
|
||||||
|
idx_avg_frequency= (ulong*) alloc_root(&stats_cb->mem_root,
|
||||||
|
sizeof(ulong) * key_parts);
|
||||||
|
if (idx_avg_frequency)
|
||||||
|
{
|
||||||
|
memset(idx_avg_frequency, 0, sizeof(ulong) * key_parts);
|
||||||
|
table_stats->idx_avg_frequency= idx_avg_frequency;
|
||||||
|
for (key_info= table_share->key_info, end= key_info + keys;
|
||||||
|
key_info < end;
|
||||||
|
key_info++)
|
||||||
|
{
|
||||||
key_info->read_stats->init_avg_frequency(idx_avg_frequency);
|
key_info->read_stats->init_avg_frequency(idx_avg_frequency);
|
||||||
idx_avg_frequency+= key_info->ext_key_parts;
|
idx_avg_frequency+= key_info->ext_key_parts;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (column_stats && index_stats && idx_avg_frequency)
|
||||||
|
stats_cb->stats_can_be_read= TRUE;
|
||||||
|
|
||||||
|
if (!is_safe)
|
||||||
|
mysql_mutex_unlock(&table_share->LOCK_ha_data);
|
||||||
|
|
||||||
create_min_max_stistical_fields_for_table_share(thd, table_share, is_safe);
|
|
||||||
|
|
||||||
DBUG_RETURN(0);
|
DBUG_RETURN(0);
|
||||||
}
|
}
|
||||||
@ -2380,6 +2439,7 @@ int read_statistics_for_table(THD *thd, TABLE *table, TABLE_LIST *stat_tables)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Read statistics from the statistical table index_stats */
|
/* Read statistics from the statistical table index_stats */
|
||||||
|
Table_statistics *read_stats= table_share->stats_cb.table_stats;
|
||||||
stat_table= stat_tables[INDEX_STAT].table;
|
stat_table= stat_tables[INDEX_STAT].table;
|
||||||
Index_stat index_stat(stat_table, table);
|
Index_stat index_stat(stat_table, table);
|
||||||
for (key_info= table_share->key_info,
|
for (key_info= table_share->key_info,
|
||||||
@ -2400,7 +2460,7 @@ int read_statistics_for_table(THD *thd, TABLE *table, TABLE_LIST *stat_tables)
|
|||||||
KEY *pk_key_info= table_share->key_info + table_share->primary_key;
|
KEY *pk_key_info= table_share->key_info + table_share->primary_key;
|
||||||
uint k= key_info->key_parts;
|
uint k= key_info->key_parts;
|
||||||
uint pk_parts= pk_key_info->key_parts;
|
uint pk_parts= pk_key_info->key_parts;
|
||||||
ha_rows n_rows= table_share->read_stats->cardinality;
|
ha_rows n_rows= read_stats->cardinality;
|
||||||
double k_dist= n_rows / key_info->read_stats->get_avg_frequency(k-1);
|
double k_dist= n_rows / key_info->read_stats->get_avg_frequency(k-1);
|
||||||
uint m= 0;
|
uint m= 0;
|
||||||
for (uint j= 0; j < pk_parts; j++)
|
for (uint j= 0; j < pk_parts; j++)
|
||||||
@ -2427,8 +2487,7 @@ int read_statistics_for_table(THD *thd, TABLE *table, TABLE_LIST *stat_tables)
|
|||||||
for (uint l= k; l < k + m; l++)
|
for (uint l= k; l < k + m; l++)
|
||||||
{
|
{
|
||||||
double avg_frequency= key_info->read_stats->get_avg_frequency(l);
|
double avg_frequency= key_info->read_stats->get_avg_frequency(l);
|
||||||
if (avg_frequency == 0 ||
|
if (avg_frequency == 0 || read_stats->cardinality_is_null)
|
||||||
table_share->read_stats->cardinality_is_null)
|
|
||||||
avg_frequency= 1;
|
avg_frequency= 1;
|
||||||
else if (avg_frequency > 1)
|
else if (avg_frequency > 1)
|
||||||
{
|
{
|
||||||
@ -2466,26 +2525,11 @@ int read_statistics_for_table(THD *thd, TABLE *table, TABLE_LIST *stat_tables)
|
|||||||
static
|
static
|
||||||
bool statistics_for_tables_is_needed(THD *thd, TABLE_LIST *tables)
|
bool statistics_for_tables_is_needed(THD *thd, TABLE_LIST *tables)
|
||||||
{
|
{
|
||||||
if (thd->bootstrap || thd->variables.use_stat_tables == 0)
|
|
||||||
return FALSE;
|
|
||||||
|
|
||||||
if (!tables)
|
if (!tables)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
switch(thd->lex->sql_command) {
|
if (!statistics_for_command_is_needed(thd))
|
||||||
case SQLCOM_SELECT:
|
|
||||||
case SQLCOM_INSERT:
|
|
||||||
case SQLCOM_INSERT_SELECT:
|
|
||||||
case SQLCOM_UPDATE:
|
|
||||||
case SQLCOM_UPDATE_MULTI:
|
|
||||||
case SQLCOM_DELETE:
|
|
||||||
case SQLCOM_DELETE_MULTI:
|
|
||||||
case SQLCOM_REPLACE:
|
|
||||||
case SQLCOM_REPLACE_SELECT:
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Do not read statistics for any query over non-user tables.
|
Do not read statistics for any query over non-user tables.
|
||||||
@ -2497,7 +2541,9 @@ bool statistics_for_tables_is_needed(THD *thd, TABLE_LIST *tables)
|
|||||||
if (!tl->is_view_or_derived() && tl->table)
|
if (!tl->is_view_or_derived() && tl->table)
|
||||||
{
|
{
|
||||||
TABLE_SHARE *table_share= tl->table->s;
|
TABLE_SHARE *table_share= tl->table->s;
|
||||||
if (table_share && table_share->table_category != TABLE_CATEGORY_USER)
|
if (table_share &&
|
||||||
|
(table_share->table_category != TABLE_CATEGORY_USER ||
|
||||||
|
table_share->tmp_table != NO_TMP_TABLE))
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2508,8 +2554,8 @@ bool statistics_for_tables_is_needed(THD *thd, TABLE_LIST *tables)
|
|||||||
{
|
{
|
||||||
TABLE_SHARE *table_share= tl->table->s;
|
TABLE_SHARE *table_share= tl->table->s;
|
||||||
if (table_share &&
|
if (table_share &&
|
||||||
table_share->stats_can_be_read &&
|
table_share->stats_cb.stats_can_be_read &&
|
||||||
!table_share->stats_is_read)
|
!table_share->stats_cb.stats_is_read)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2564,11 +2610,11 @@ int read_statistics_for_tables_if_needed(THD *thd, TABLE_LIST *tables)
|
|||||||
{
|
{
|
||||||
TABLE_SHARE *table_share= tl->table->s;
|
TABLE_SHARE *table_share= tl->table->s;
|
||||||
if (table_share &&
|
if (table_share &&
|
||||||
table_share->stats_can_be_read &&
|
table_share->stats_cb.stats_can_be_read &&
|
||||||
!table_share->stats_is_read)
|
!table_share->stats_cb.stats_is_read)
|
||||||
{
|
{
|
||||||
(void) read_statistics_for_table(thd, tl->table, stat_tables);
|
(void) read_statistics_for_table(thd, tl->table, stat_tables);
|
||||||
table_share->stats_is_read= TRUE;
|
table_share->stats_cb.stats_is_read= TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2983,20 +3029,20 @@ int rename_column_in_stat_tables(THD *thd, TABLE *tab, Field *col,
|
|||||||
|
|
||||||
void set_statistics_for_table(THD *thd, TABLE *table)
|
void set_statistics_for_table(THD *thd, TABLE *table)
|
||||||
{
|
{
|
||||||
|
TABLE_STATISTICS_CB *stats_cb= &table->s->stats_cb;
|
||||||
|
Table_statistics *read_stats= stats_cb->table_stats;
|
||||||
Use_stat_tables_mode use_stat_table_mode= get_use_stat_tables_mode(thd);
|
Use_stat_tables_mode use_stat_table_mode= get_use_stat_tables_mode(thd);
|
||||||
table->used_stat_records=
|
table->used_stat_records=
|
||||||
(use_stat_table_mode <= COMPLEMENTARY ||
|
(use_stat_table_mode <= COMPLEMENTARY ||
|
||||||
!table->s->stats_is_read || !table->s->read_stats ||
|
!stats_cb->stats_is_read || read_stats->cardinality_is_null) ?
|
||||||
table->s->read_stats->cardinality_is_null) ?
|
table->file->stats.records : read_stats->cardinality;
|
||||||
table->file->stats.records : table->s->read_stats->cardinality;
|
|
||||||
KEY *key_info, *key_info_end;
|
KEY *key_info, *key_info_end;
|
||||||
for (key_info= table->key_info, key_info_end= key_info+table->s->keys;
|
for (key_info= table->key_info, key_info_end= key_info+table->s->keys;
|
||||||
key_info < key_info_end; key_info++)
|
key_info < key_info_end; key_info++)
|
||||||
{
|
{
|
||||||
key_info->is_statistics_from_stat_tables=
|
key_info->is_statistics_from_stat_tables=
|
||||||
(use_stat_table_mode > COMPLEMENTARY &&
|
(use_stat_table_mode > COMPLEMENTARY &&
|
||||||
table->s->stats_is_read &&
|
stats_cb->stats_is_read &&
|
||||||
key_info->read_stats &&
|
|
||||||
key_info->read_stats->avg_frequency_is_inited() &&
|
key_info->read_stats->avg_frequency_is_inited() &&
|
||||||
key_info->read_stats->get_avg_frequency(0) > 0.5);
|
key_info->read_stats->get_avg_frequency(0) > 0.5);
|
||||||
}
|
}
|
||||||
|
@ -102,6 +102,7 @@ class Table_statistics
|
|||||||
public:
|
public:
|
||||||
my_bool cardinality_is_null; /* TRUE if the cardinality is unknown */
|
my_bool cardinality_is_null; /* TRUE if the cardinality is unknown */
|
||||||
ha_rows cardinality; /* Number of rows in the table */
|
ha_rows cardinality; /* Number of rows in the table */
|
||||||
|
uchar *min_max_record_buffers; /* Record buffers for min/max values */
|
||||||
Column_statistics *column_stats; /* Array of statistical data for columns */
|
Column_statistics *column_stats; /* Array of statistical data for columns */
|
||||||
Index_statistics *index_stats; /* Array of statistical data for indexes */
|
Index_statistics *index_stats; /* Array of statistical data for indexes */
|
||||||
ulong *idx_avg_frequency; /* Array of records per key for index prefixes */
|
ulong *idx_avg_frequency; /* Array of records per key for index prefixes */
|
||||||
|
@ -4146,7 +4146,8 @@ bool mysql_create_table_no_lock(THD *thd,
|
|||||||
set_table_default_charset(thd, create_info, (char*) db);
|
set_table_default_charset(thd, create_info, (char*) db);
|
||||||
|
|
||||||
db_options= create_info->table_options;
|
db_options= create_info->table_options;
|
||||||
if (create_info->row_type != ROW_TYPE_FIXED &&
|
if (!create_info->frm_only &&
|
||||||
|
create_info->row_type != ROW_TYPE_FIXED &&
|
||||||
create_info->row_type != ROW_TYPE_DEFAULT)
|
create_info->row_type != ROW_TYPE_DEFAULT)
|
||||||
db_options|= HA_OPTION_PACK_RECORD;
|
db_options|= HA_OPTION_PACK_RECORD;
|
||||||
alias= table_case_name(create_info, table_name);
|
alias= table_case_name(create_info, table_name);
|
||||||
@ -4573,7 +4574,8 @@ bool mysql_create_table(THD *thd, TABLE_LIST *create_table,
|
|||||||
*/
|
*/
|
||||||
if (open_and_lock_tables(thd, thd->lex->query_tables, FALSE, 0))
|
if (open_and_lock_tables(thd, thd->lex->query_tables, FALSE, 0))
|
||||||
{
|
{
|
||||||
result= TRUE;
|
/* is_error() may be 0 if table existed and we generated a warning */
|
||||||
|
result= thd->is_error();
|
||||||
goto end;
|
goto end;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4769,7 +4771,10 @@ bool mysql_create_like_table(THD* thd, TABLE_LIST* table, TABLE_LIST* src_table,
|
|||||||
properly isolated from all concurrent operations which matter.
|
properly isolated from all concurrent operations which matter.
|
||||||
*/
|
*/
|
||||||
if (open_tables(thd, &thd->lex->query_tables, ¬_used, 0))
|
if (open_tables(thd, &thd->lex->query_tables, ¬_used, 0))
|
||||||
|
{
|
||||||
|
res= thd->is_error();
|
||||||
goto err;
|
goto err;
|
||||||
|
}
|
||||||
src_table->table->use_all_columns();
|
src_table->table->use_all_columns();
|
||||||
|
|
||||||
DEBUG_SYNC(thd, "create_table_like_after_open");
|
DEBUG_SYNC(thd, "create_table_like_after_open");
|
||||||
@ -6790,9 +6795,19 @@ bool mysql_alter_table(THD *thd,char *new_db, char *new_name,
|
|||||||
my_sleep(100000););
|
my_sleep(100000););
|
||||||
/*
|
/*
|
||||||
Create a table with a temporary name.
|
Create a table with a temporary name.
|
||||||
With create_info->frm_only == 1 this creates a .frm file only.
|
With create_info->frm_only == 1 this creates a .frm file only and
|
||||||
|
we keep the original row format.
|
||||||
We don't log the statement, it will be logged later.
|
We don't log the statement, it will be logged later.
|
||||||
*/
|
*/
|
||||||
|
if (need_copy_table == ALTER_TABLE_METADATA_ONLY)
|
||||||
|
{
|
||||||
|
DBUG_ASSERT(create_info->frm_only);
|
||||||
|
/* Ensure we keep the original table format */
|
||||||
|
create_info->table_options= ((create_info->table_options &
|
||||||
|
~HA_OPTION_PACK_RECORD) |
|
||||||
|
(table->s->db_create_options &
|
||||||
|
HA_OPTION_PACK_RECORD));
|
||||||
|
}
|
||||||
tmp_disable_binlog(thd);
|
tmp_disable_binlog(thd);
|
||||||
error= mysql_create_table_no_lock(thd, new_db, tmp_name,
|
error= mysql_create_table_no_lock(thd, new_db, tmp_name,
|
||||||
create_info,
|
create_info,
|
||||||
|
10
sql/table.cc
10
sql/table.cc
@ -340,6 +340,8 @@ TABLE_SHARE *alloc_table_share(TABLE_LIST *table_list, char *key,
|
|||||||
share->free_tables.empty();
|
share->free_tables.empty();
|
||||||
share->m_flush_tickets.empty();
|
share->m_flush_tickets.empty();
|
||||||
|
|
||||||
|
init_sql_alloc(&share->stats_cb.mem_root, TABLE_ALLOC_BLOCK_SIZE, 0);
|
||||||
|
|
||||||
memcpy((char*) &share->mem_root, (char*) &mem_root, sizeof(mem_root));
|
memcpy((char*) &share->mem_root, (char*) &mem_root, sizeof(mem_root));
|
||||||
mysql_mutex_init(key_TABLE_SHARE_LOCK_ha_data,
|
mysql_mutex_init(key_TABLE_SHARE_LOCK_ha_data,
|
||||||
&share->LOCK_ha_data, MY_MUTEX_INIT_FAST);
|
&share->LOCK_ha_data, MY_MUTEX_INIT_FAST);
|
||||||
@ -420,6 +422,14 @@ void TABLE_SHARE::destroy()
|
|||||||
uint idx;
|
uint idx;
|
||||||
KEY *info_it;
|
KEY *info_it;
|
||||||
|
|
||||||
|
if (tmp_table == NO_TMP_TABLE)
|
||||||
|
mysql_mutex_lock(&LOCK_ha_data);
|
||||||
|
free_root(&stats_cb.mem_root, MYF(0));
|
||||||
|
stats_cb.stats_can_be_read= FALSE;
|
||||||
|
stats_cb.stats_is_read= FALSE;
|
||||||
|
if (tmp_table == NO_TMP_TABLE)
|
||||||
|
mysql_mutex_unlock(&LOCK_ha_data);
|
||||||
|
|
||||||
/* The mutex is initialized only for shares that are part of the TDC */
|
/* The mutex is initialized only for shares that are part of the TDC */
|
||||||
if (tmp_table == NO_TMP_TABLE)
|
if (tmp_table == NO_TMP_TABLE)
|
||||||
mysql_mutex_destroy(&LOCK_ha_data);
|
mysql_mutex_destroy(&LOCK_ha_data);
|
||||||
|
24
sql/table.h
24
sql/table.h
@ -562,6 +562,21 @@ typedef I_P_List <Wait_for_flush,
|
|||||||
Wait_for_flush_list;
|
Wait_for_flush_list;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
Control block to access table statistics loaded
|
||||||
|
from persistent statistical tables
|
||||||
|
*/
|
||||||
|
|
||||||
|
struct TABLE_STATISTICS_CB
|
||||||
|
{
|
||||||
|
MEM_ROOT mem_root; /* MEM_ROOT to allocate statistical data for the table */
|
||||||
|
Table_statistics *table_stats; /* Structure to access the statistical data */
|
||||||
|
bool stats_can_be_read; /* Memory for statistical data is allocated */
|
||||||
|
bool stats_is_read; /* Statistical data for table has been read
|
||||||
|
from statistical tables */
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This structure is shared between different table objects. There is one
|
This structure is shared between different table objects. There is one
|
||||||
instance of table share per one table in the database.
|
instance of table share per one table in the database.
|
||||||
@ -599,14 +614,7 @@ struct TABLE_SHARE
|
|||||||
KEY *key_info; /* data of keys in database */
|
KEY *key_info; /* data of keys in database */
|
||||||
uint *blob_field; /* Index to blobs in Field arrray*/
|
uint *blob_field; /* Index to blobs in Field arrray*/
|
||||||
|
|
||||||
bool stats_can_be_read; /* Memory for statistical data is allocated */
|
TABLE_STATISTICS_CB stats_cb;
|
||||||
bool stats_is_read; /* Statistical data for table has been read
|
|
||||||
from statistical tables */
|
|
||||||
/*
|
|
||||||
This structure is used for statistical data on the table
|
|
||||||
that has been read from the statistical table table_stat
|
|
||||||
*/
|
|
||||||
Table_statistics *read_stats;
|
|
||||||
|
|
||||||
uchar *default_values; /* row with default values */
|
uchar *default_values; /* row with default values */
|
||||||
LEX_STRING comment; /* Comment about table */
|
LEX_STRING comment; /* Comment about table */
|
||||||
|
@ -173,7 +173,6 @@ void threadpool_remove_connection(THD *thd)
|
|||||||
close_connection(thd, 0);
|
close_connection(thd, 0);
|
||||||
|
|
||||||
unlink_thd(thd);
|
unlink_thd(thd);
|
||||||
mysql_mutex_unlock(&LOCK_thread_count);
|
|
||||||
mysql_cond_broadcast(&COND_thread_count);
|
mysql_cond_broadcast(&COND_thread_count);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -501,13 +501,7 @@ mutex_spin_wait(
|
|||||||
{
|
{
|
||||||
ulint index; /* index of the reserved wait cell */
|
ulint index; /* index of the reserved wait cell */
|
||||||
ulint i; /* spin round count */
|
ulint i; /* spin round count */
|
||||||
#ifdef UNIV_DEBUG
|
|
||||||
ib_int64_t lstart_time = 0, lfinish_time; /* for timing os_wait */
|
|
||||||
ulint ltime_diff;
|
|
||||||
ulint sec;
|
|
||||||
ulint ms;
|
|
||||||
uint timer_started = 0;
|
|
||||||
#endif /* UNIV_DEBUG */
|
|
||||||
ut_ad(mutex);
|
ut_ad(mutex);
|
||||||
|
|
||||||
/* This update is not thread safe, but we don't mind if the count
|
/* This update is not thread safe, but we don't mind if the count
|
||||||
@ -540,13 +534,6 @@ spin_loop:
|
|||||||
if (i == SYNC_SPIN_ROUNDS) {
|
if (i == SYNC_SPIN_ROUNDS) {
|
||||||
#ifdef UNIV_DEBUG
|
#ifdef UNIV_DEBUG
|
||||||
mutex->count_os_yield++;
|
mutex->count_os_yield++;
|
||||||
#ifndef UNIV_HOTBACKUP
|
|
||||||
if (timed_mutexes && timer_started == 0) {
|
|
||||||
ut_usectime(&sec, &ms);
|
|
||||||
lstart_time= (ib_int64_t)sec * 1000000 + ms;
|
|
||||||
timer_started = 1;
|
|
||||||
}
|
|
||||||
#endif /* UNIV_HOTBACKUP */
|
|
||||||
#endif /* UNIV_DEBUG */
|
#endif /* UNIV_DEBUG */
|
||||||
os_thread_yield();
|
os_thread_yield();
|
||||||
}
|
}
|
||||||
@ -639,34 +626,13 @@ spin_loop:
|
|||||||
mutex_os_wait_count++;
|
mutex_os_wait_count++;
|
||||||
|
|
||||||
mutex->count_os_wait++;
|
mutex->count_os_wait++;
|
||||||
#ifdef UNIV_DEBUG
|
|
||||||
/* !!!!! Sometimes os_wait can be called without os_thread_yield */
|
|
||||||
#ifndef UNIV_HOTBACKUP
|
|
||||||
if (timed_mutexes == 1 && timer_started == 0) {
|
|
||||||
ut_usectime(&sec, &ms);
|
|
||||||
lstart_time= (ib_int64_t)sec * 1000000 + ms;
|
|
||||||
timer_started = 1;
|
|
||||||
}
|
|
||||||
#endif /* UNIV_HOTBACKUP */
|
|
||||||
#endif /* UNIV_DEBUG */
|
|
||||||
|
|
||||||
sync_array_wait_event(sync_primary_wait_array, index);
|
sync_array_wait_event(sync_primary_wait_array, index);
|
||||||
goto mutex_loop;
|
goto mutex_loop;
|
||||||
|
|
||||||
finish_timing:
|
finish_timing:
|
||||||
#ifdef UNIV_DEBUG
|
|
||||||
if (timed_mutexes == 1 && timer_started==1) {
|
|
||||||
ut_usectime(&sec, &ms);
|
|
||||||
lfinish_time= (ib_int64_t)sec * 1000000 + ms;
|
|
||||||
|
|
||||||
ltime_diff= (ulint) (lfinish_time - lstart_time);
|
|
||||||
mutex->lspent_time += ltime_diff;
|
|
||||||
|
|
||||||
if (mutex->lmax_spent_time < ltime_diff) {
|
|
||||||
mutex->lmax_spent_time= ltime_diff;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif /* UNIV_DEBUG */
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,6 +165,7 @@ vio/viosslfactories\.c: discards ~const~ qualifier from pointer target type
|
|||||||
# Groff warnings on OpenSUSE.
|
# Groff warnings on OpenSUSE.
|
||||||
#
|
#
|
||||||
.*/dbug/.*(groff|<standard input>) : .*
|
.*/dbug/.*(groff|<standard input>) : .*
|
||||||
|
.*groff.* : vertical spacing must be greater than
|
||||||
|
|
||||||
#
|
#
|
||||||
# Warnings on OpenSolaris
|
# Warnings on OpenSolaris
|
||||||
|
@ -19072,7 +19072,7 @@ static struct my_tests_st my_tests[]= {
|
|||||||
{ "test_bug58036", test_bug58036 },
|
{ "test_bug58036", test_bug58036 },
|
||||||
{ "test_bug57058", test_bug57058 },
|
{ "test_bug57058", test_bug57058 },
|
||||||
{ "test_bug56976", test_bug56976 },
|
{ "test_bug56976", test_bug56976 },
|
||||||
{ "test_mdev3855", test_mdev3885 },
|
{ "test_mdev3885", test_mdev3885 },
|
||||||
{ "test_bug11766854", test_bug11766854 },
|
{ "test_bug11766854", test_bug11766854 },
|
||||||
{ "test_bug12337762", test_bug12337762 },
|
{ "test_bug12337762", test_bug12337762 },
|
||||||
{ "test_progress_reporting", test_progress_reporting },
|
{ "test_progress_reporting", test_progress_reporting },
|
||||||
|
@ -43,6 +43,8 @@
|
|||||||
<Property Id="SKIPNETWORKING" Secure="yes"/>
|
<Property Id="SKIPNETWORKING" Secure="yes"/>
|
||||||
<!-- Whether to keep default (unauthenticated) user. Default is no-->
|
<!-- Whether to keep default (unauthenticated) user. Default is no-->
|
||||||
<Property Id="DEFAULTUSER" Secure="yes"/>
|
<Property Id="DEFAULTUSER" Secure="yes"/>
|
||||||
|
<!-- Set server character set to UTF8 -->
|
||||||
|
<Property Id="UTF8" Secure="yes"/>
|
||||||
<!-- Whether to data on uninstall (default yes, after asking user consent) -->
|
<!-- Whether to data on uninstall (default yes, after asking user consent) -->
|
||||||
<Property Id="CLEANUPDATA" Secure="yes" Value="1"/>
|
<Property Id="CLEANUPDATA" Secure="yes" Value="1"/>
|
||||||
<!-- Force per machine installation -->
|
<!-- Force per machine installation -->
|
||||||
@ -272,6 +274,10 @@
|
|||||||
<Text>Please note: this setting can lead to insecure systems.</Text>
|
<Text>Please note: this setting can lead to insecure systems.</Text>
|
||||||
</Control>
|
</Control>
|
||||||
|
|
||||||
|
<Control Id="CheckBoxUTF8" Type="CheckBox" X="8" Y="215" Width="250" Height="18" Property="UTF8" CheckBoxValue="1" TabSkip="no">
|
||||||
|
<Text>{\Font1}Use UTF8 as default server's character set</Text>
|
||||||
|
</Control>
|
||||||
|
|
||||||
<!-- Navigation buttons-->
|
<!-- Navigation buttons-->
|
||||||
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&Back">
|
<Control Id="Back" Type="PushButton" X="180" Y="243" Width="56" Height="17" Text="&Back">
|
||||||
<Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
|
<Publish Event="NewDialog" Value="CustomizeDlg">1</Publish>
|
||||||
@ -519,6 +525,20 @@
|
|||||||
Value="ON" />
|
Value="ON" />
|
||||||
</Component>
|
</Component>
|
||||||
|
|
||||||
|
<Component Id="C.utf8" Guid="*" Directory="DATADIR">
|
||||||
|
<Condition>UTF8</Condition>
|
||||||
|
<RegistryValue Root='HKLM'
|
||||||
|
Key='SOFTWARE\@MANUFACTURER@\@CPACK_WIX_PACKAGE_NAME@'
|
||||||
|
Name='UTF8' Value='1' Type='string' KeyPath='yes'/>
|
||||||
|
<IniFile Id="Ini6"
|
||||||
|
Action="createLine"
|
||||||
|
Directory="DATADIR"
|
||||||
|
Section="mysqld"
|
||||||
|
Name="my.ini"
|
||||||
|
Key="character-set-server"
|
||||||
|
Value="utf8" />
|
||||||
|
</Component>
|
||||||
|
|
||||||
<!--- Grant service account permission to the database folder (Windows 7 and later) -->
|
<!--- Grant service account permission to the database folder (Windows 7 and later) -->
|
||||||
<Component Id="C.serviceaccount.permission" Guid="*" Directory='DATADIR' Transitive='yes'>
|
<Component Id="C.serviceaccount.permission" Guid="*" Directory='DATADIR' Transitive='yes'>
|
||||||
<Condition><![CDATA[SERVICENAME AND (VersionNT > 600)]]></Condition>
|
<Condition><![CDATA[SERVICENAME AND (VersionNT > 600)]]></Condition>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user