mirror of
https://github.com/MariaDB/server.git
synced 2025-07-30 16:24:05 +03:00
Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-5.1-target-5.1.22
into trift-lap.fambruehe:/MySQL/M51/antony-5.1
This commit is contained in:
@ -146,8 +146,8 @@ test-bt:
|
|||||||
cd mysql-test ; MTR_BUILD_THREAD=auto \
|
cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||||
@PERL@ ./mysql-test-run.pl --comment=NIST+ps --force --suite=nist --ps-protocol ; \
|
@PERL@ ./mysql-test-run.pl --comment=NIST+ps --force --suite=nist --ps-protocol ; \
|
||||||
fi
|
fi
|
||||||
-cd mysql-test ; MTR_BUILD_THREAD=auto \
|
-cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||||
@PERL@ ./mysql-test-run.pl --force --comment=stress --suite=stress
|
@PERL@ ./mysql-test-run.pl --force --comment=stress --suite=stress
|
||||||
|
|
||||||
# Re-enable the "jp" suite when bug#28563 is fixed
|
# Re-enable the "jp" suite when bug#28563 is fixed
|
||||||
# -cd mysql-test ; MTR_BUILD_THREAD=auto \
|
# -cd mysql-test ; MTR_BUILD_THREAD=auto \
|
||||||
|
@ -1211,7 +1211,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 37
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -1232,7 +1232,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 424
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -1253,7 +1253,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 901
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -1274,7 +1274,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Dynamic
|
ROW_FORMAT Dynamic
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 479
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -3241,14 +3241,14 @@ NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
|||||||
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
||||||
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
||||||
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 37 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql name 1 name A 37 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 424 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql name 1 name A 424 NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 901 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 479 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql name 1 name A 479 NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
||||||
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
||||||
@ -3481,7 +3481,7 @@ max_recs
|
|||||||
45
|
45
|
||||||
select max(cardinality) from statistics;
|
select max(cardinality) from statistics;
|
||||||
max(cardinality)
|
max(cardinality)
|
||||||
393
|
901
|
||||||
select concat("View '",
|
select concat("View '",
|
||||||
table_name, "' is associated with the database '", table_schema, "'.")
|
table_name, "' is associated with the database '", table_schema, "'.")
|
||||||
AS "Who is Who for the Views"
|
AS "Who is Who for the Views"
|
||||||
@ -4547,7 +4547,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 37
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -4568,7 +4568,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 424
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -4589,7 +4589,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 901
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -4610,7 +4610,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Dynamic
|
ROW_FORMAT Dynamic
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 479
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -5826,7 +5826,7 @@ routine_definition
|
|||||||
select * from statistics group by index_name asc limit 0, 5;
|
select * from statistics group by index_name asc limit 0, 5;
|
||||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
|
||||||
NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
|
NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql name 1 name A 37 NULL NULL BTREE
|
||||||
NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||||
NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
||||||
select concat(table_schema, ', ', table_name, ', ', view_definition) view_info
|
select concat(table_schema, ', ', table_name, ', ', view_definition) view_info
|
||||||
@ -14347,10 +14347,10 @@ NULL mysql db BASE TABLE MyISAM 10 Fixed 3 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-
|
|||||||
NULL mysql event BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Events
|
NULL mysql event BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Events
|
||||||
NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions
|
NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions
|
||||||
NULL mysql general_log BASE TABLE CSV 10 Dynamic 1 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL General log
|
NULL mysql general_log BASE TABLE CSV 10 Dynamic 1 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL General log
|
||||||
NULL mysql help_category BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help categories
|
NULL mysql help_category BASE TABLE MyISAM 10 Fixed 37 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help categories
|
||||||
NULL mysql help_keyword BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help keywords
|
NULL mysql help_keyword BASE TABLE MyISAM 10 Fixed 424 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help keywords
|
||||||
NULL mysql help_relation BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL keyword-topic relation
|
NULL mysql help_relation BASE TABLE MyISAM 10 Fixed 901 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL keyword-topic relation
|
||||||
NULL mysql help_topic BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help topics
|
NULL mysql help_topic BASE TABLE MyISAM 10 Dynamic 479 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help topics
|
||||||
NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges
|
NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges
|
||||||
NULL mysql ndb_binlog_index BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
|
NULL mysql ndb_binlog_index BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
|
||||||
NULL mysql plugin BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL MySQL plugins
|
NULL mysql plugin BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL MySQL plugins
|
||||||
@ -14601,14 +14601,14 @@ NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
|||||||
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
||||||
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
||||||
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 37 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql name 1 name A 37 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 424 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql name 1 name A 424 NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 901 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 479 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql name 1 name A 479 NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
||||||
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
||||||
|
@ -81,6 +81,7 @@ BEGIN
|
|||||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||||
END//
|
END//
|
||||||
ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
|
ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
||||||
@ -92,6 +93,7 @@ CREATE PROCEDURE sp1(v1 char(20))
|
|||||||
BEGIN
|
BEGIN
|
||||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||||
END//
|
END//
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
DROP USER 'user_1'@'localhost';
|
DROP USER 'user_1'@'localhost';
|
||||||
@ -117,6 +119,7 @@ CREATE FUNCTION fn1(v1 int) returns int
|
|||||||
BEGIN
|
BEGIN
|
||||||
return v1;
|
return v1;
|
||||||
END//
|
END//
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
drop user 'user_1'@'localhost';
|
drop user 'user_1'@'localhost';
|
||||||
|
@ -58,7 +58,6 @@ load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
|
|||||||
|
|
||||||
Section 3.1.10 - CALL checks:
|
Section 3.1.10 - CALL checks:
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
USE db_storedproc;
|
|
||||||
|
|
||||||
Testcase 3.1.10.2 + 3.1.10.5:
|
Testcase 3.1.10.2 + 3.1.10.5:
|
||||||
-----------------------------
|
-----------------------------
|
||||||
@ -95,6 +94,7 @@ CALL sp31102();
|
|||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
CALL sp31102();
|
CALL sp31102();
|
||||||
@ -114,6 +114,7 @@ a` a` 1000-01-01 -5000 a` -5000
|
|||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
fn31105( 9 )
|
fn31105( 9 )
|
||||||
81
|
81
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
||||||
@ -131,6 +132,7 @@ CALL sp31102();
|
|||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
DROP PROCEDURE sp31102;
|
DROP PROCEDURE sp31102;
|
||||||
|
@ -1209,7 +1209,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 37
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -1230,7 +1230,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 424
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -1251,7 +1251,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 901
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -1272,7 +1272,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Dynamic
|
ROW_FORMAT Dynamic
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 479
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -3224,14 +3224,14 @@ NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
|||||||
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
||||||
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
||||||
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 37 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql name 1 name A 37 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 424 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql name 1 name A 424 NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 901 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 479 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql name 1 name A 479 NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
||||||
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
||||||
@ -3464,7 +3464,7 @@ max_recs
|
|||||||
45
|
45
|
||||||
select max(cardinality) from statistics;
|
select max(cardinality) from statistics;
|
||||||
max(cardinality)
|
max(cardinality)
|
||||||
393
|
901
|
||||||
select concat("View '",
|
select concat("View '",
|
||||||
table_name, "' is associated with the database '", table_schema, "'.")
|
table_name, "' is associated with the database '", table_schema, "'.")
|
||||||
AS "Who is Who for the Views"
|
AS "Who is Who for the Views"
|
||||||
@ -4530,7 +4530,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 37
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -4551,7 +4551,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 424
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -4572,7 +4572,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 901
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -4593,7 +4593,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Dynamic
|
ROW_FORMAT Dynamic
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 479
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -5809,7 +5809,7 @@ routine_definition
|
|||||||
select * from statistics group by index_name asc limit 0, 5;
|
select * from statistics group by index_name asc limit 0, 5;
|
||||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
|
||||||
NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
|
NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql name 1 name A 37 NULL NULL BTREE
|
||||||
NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||||
NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
||||||
select concat(table_schema, ', ', table_name, ', ', view_definition) view_info
|
select concat(table_schema, ', ', table_name, ', ', view_definition) view_info
|
||||||
@ -14245,10 +14245,10 @@ NULL mysql db BASE TABLE MyISAM 10 Fixed 3 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-
|
|||||||
NULL mysql event BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Events
|
NULL mysql event BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Events
|
||||||
NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions
|
NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions
|
||||||
NULL mysql general_log BASE TABLE CSV 10 Dynamic 1 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL General log
|
NULL mysql general_log BASE TABLE CSV 10 Dynamic 1 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL General log
|
||||||
NULL mysql help_category BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help categories
|
NULL mysql help_category BASE TABLE MyISAM 10 Fixed 37 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help categories
|
||||||
NULL mysql help_keyword BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help keywords
|
NULL mysql help_keyword BASE TABLE MyISAM 10 Fixed 424 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help keywords
|
||||||
NULL mysql help_relation BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL keyword-topic relation
|
NULL mysql help_relation BASE TABLE MyISAM 10 Fixed 901 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL keyword-topic relation
|
||||||
NULL mysql help_topic BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help topics
|
NULL mysql help_topic BASE TABLE MyISAM 10 Dynamic 479 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help topics
|
||||||
NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges
|
NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges
|
||||||
NULL mysql ndb_binlog_index BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
|
NULL mysql ndb_binlog_index BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
|
||||||
NULL mysql plugin BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL MySQL plugins
|
NULL mysql plugin BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL MySQL plugins
|
||||||
@ -14499,14 +14499,14 @@ NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
|||||||
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
||||||
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
||||||
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 37 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql name 1 name A 37 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 424 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql name 1 name A 424 NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 901 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 479 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql name 1 name A 479 NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
||||||
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
||||||
|
@ -81,6 +81,7 @@ BEGIN
|
|||||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||||
END//
|
END//
|
||||||
ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
|
ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
||||||
@ -92,6 +93,7 @@ CREATE PROCEDURE sp1(v1 char(20))
|
|||||||
BEGIN
|
BEGIN
|
||||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||||
END//
|
END//
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
DROP USER 'user_1'@'localhost';
|
DROP USER 'user_1'@'localhost';
|
||||||
@ -117,6 +119,7 @@ CREATE FUNCTION fn1(v1 int) returns int
|
|||||||
BEGIN
|
BEGIN
|
||||||
return v1;
|
return v1;
|
||||||
END//
|
END//
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
drop user 'user_1'@'localhost';
|
drop user 'user_1'@'localhost';
|
||||||
|
@ -58,7 +58,6 @@ load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
|
|||||||
|
|
||||||
Section 3.1.10 - CALL checks:
|
Section 3.1.10 - CALL checks:
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
USE db_storedproc;
|
|
||||||
|
|
||||||
Testcase 3.1.10.2 + 3.1.10.5:
|
Testcase 3.1.10.2 + 3.1.10.5:
|
||||||
-----------------------------
|
-----------------------------
|
||||||
@ -95,6 +94,7 @@ CALL sp31102();
|
|||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
CALL sp31102();
|
CALL sp31102();
|
||||||
@ -114,6 +114,7 @@ a` a` 1000-01-01 -5000 a` -5000
|
|||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
fn31105( 9 )
|
fn31105( 9 )
|
||||||
81
|
81
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
||||||
@ -131,6 +132,7 @@ CALL sp31102();
|
|||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
DROP PROCEDURE sp31102;
|
DROP PROCEDURE sp31102;
|
||||||
|
@ -1239,7 +1239,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 37
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -1260,7 +1260,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 424
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -1281,7 +1281,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 901
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -1302,7 +1302,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Dynamic
|
ROW_FORMAT Dynamic
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 479
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -3294,14 +3294,14 @@ NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
|||||||
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
||||||
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
||||||
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 37 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql name 1 name A 37 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 424 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql name 1 name A 424 NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 901 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 479 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql name 1 name A 479 NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
||||||
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
||||||
@ -3534,7 +3534,7 @@ max_recs
|
|||||||
45
|
45
|
||||||
select max(cardinality) from statistics;
|
select max(cardinality) from statistics;
|
||||||
max(cardinality)
|
max(cardinality)
|
||||||
393
|
901
|
||||||
select concat("View '",
|
select concat("View '",
|
||||||
table_name, "' is associated with the database '", table_schema, "'.")
|
table_name, "' is associated with the database '", table_schema, "'.")
|
||||||
AS "Who is Who for the Views"
|
AS "Who is Who for the Views"
|
||||||
@ -4600,7 +4600,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 37
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -4621,7 +4621,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 424
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -4642,7 +4642,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Fixed
|
ROW_FORMAT Fixed
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 901
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -4663,7 +4663,7 @@ TABLE_TYPE BASE TABLE
|
|||||||
ENGINE MyISAM
|
ENGINE MyISAM
|
||||||
VERSION 10
|
VERSION 10
|
||||||
ROW_FORMAT Dynamic
|
ROW_FORMAT Dynamic
|
||||||
TABLE_ROWS 0
|
TABLE_ROWS 479
|
||||||
AVG_ROW_LENGTH #ARL#
|
AVG_ROW_LENGTH #ARL#
|
||||||
DATA_LENGTH #DL#
|
DATA_LENGTH #DL#
|
||||||
MAX_DATA_LENGTH #MDL#
|
MAX_DATA_LENGTH #MDL#
|
||||||
@ -5879,7 +5879,7 @@ routine_definition
|
|||||||
select * from statistics group by index_name asc limit 0, 5;
|
select * from statistics group by index_name asc limit 0, 5;
|
||||||
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
|
TABLE_CATALOG TABLE_SCHEMA TABLE_NAME NON_UNIQUE INDEX_SCHEMA INDEX_NAME SEQ_IN_INDEX COLUMN_NAME COLLATION CARDINALITY SUB_PART PACKED NULLABLE INDEX_TYPE COMMENT
|
||||||
NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
|
NULL mysql procs_priv 1 mysql Grantor 1 Grantor A NULL NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql name 1 name A 37 NULL NULL BTREE
|
||||||
NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
NULL mysql columns_priv 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||||
NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
||||||
select concat(table_schema, ', ', table_name, ', ', view_definition) view_info
|
select concat(table_schema, ', ', table_name, ', ', view_definition) view_info
|
||||||
@ -14499,10 +14499,10 @@ NULL mysql db BASE TABLE MyISAM 10 Fixed 3 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-
|
|||||||
NULL mysql event BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Events
|
NULL mysql event BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL Events
|
||||||
NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions
|
NULL mysql func BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL User defined functions
|
||||||
NULL mysql general_log BASE TABLE CSV 10 Dynamic 1 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL General log
|
NULL mysql general_log BASE TABLE CSV 10 Dynamic 1 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL General log
|
||||||
NULL mysql help_category BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help categories
|
NULL mysql help_category BASE TABLE MyISAM 10 Fixed 37 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help categories
|
||||||
NULL mysql help_keyword BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help keywords
|
NULL mysql help_keyword BASE TABLE MyISAM 10 Fixed 424 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help keywords
|
||||||
NULL mysql help_relation BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL keyword-topic relation
|
NULL mysql help_relation BASE TABLE MyISAM 10 Fixed 901 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL keyword-topic relation
|
||||||
NULL mysql help_topic BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help topics
|
NULL mysql help_topic BASE TABLE MyISAM 10 Dynamic 479 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_general_ci NULL help topics
|
||||||
NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges
|
NULL mysql host BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL Host privileges; Merged with database privileges
|
||||||
NULL mysql ndb_binlog_index BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
|
NULL mysql ndb_binlog_index BASE TABLE MyISAM 10 Dynamic 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss latin1_swedish_ci NULL
|
||||||
NULL mysql plugin BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL MySQL plugins
|
NULL mysql plugin BASE TABLE MyISAM 10 Fixed 0 #ARL# #DL# #MDL# #IL# #DF# NULL YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss YYYY-MM-DD hh:mm:ss utf8_bin NULL MySQL plugins
|
||||||
@ -14753,14 +14753,14 @@ NULL mysql db 1 mysql User 1 User A 1 NULL NULL BTREE
|
|||||||
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 1 db A NULL NULL NULL BTREE
|
||||||
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
NULL mysql event 0 mysql PRIMARY 2 name A 0 NULL NULL BTREE
|
||||||
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
NULL mysql func 0 mysql PRIMARY 1 name A 0 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql PRIMARY 1 help_category_id A 37 NULL NULL BTREE
|
||||||
NULL mysql help_category 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_category 0 mysql name 1 name A 37 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql PRIMARY 1 help_keyword_id A 424 NULL NULL BTREE
|
||||||
NULL mysql help_keyword 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_keyword 0 mysql name 1 name A 424 NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 1 help_keyword_id A NULL NULL NULL BTREE
|
||||||
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_relation 0 mysql PRIMARY 2 help_topic_id A 901 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql PRIMARY 1 help_topic_id A 479 NULL NULL BTREE
|
||||||
NULL mysql help_topic 0 mysql name 1 name A 0 NULL NULL BTREE
|
NULL mysql help_topic 0 mysql name 1 name A 479 NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 1 Host A NULL NULL NULL BTREE
|
||||||
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
NULL mysql host 0 mysql PRIMARY 2 Db A 0 NULL NULL BTREE
|
||||||
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
NULL mysql ndb_binlog_index 0 mysql PRIMARY 1 epoch A 0 NULL NULL BTREE
|
||||||
|
@ -81,6 +81,7 @@ BEGIN
|
|||||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||||
END//
|
END//
|
||||||
ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
|
ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
||||||
@ -92,6 +93,7 @@ CREATE PROCEDURE sp1(v1 char(20))
|
|||||||
BEGIN
|
BEGIN
|
||||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||||
END//
|
END//
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
DROP USER 'user_1'@'localhost';
|
DROP USER 'user_1'@'localhost';
|
||||||
@ -117,6 +119,7 @@ CREATE FUNCTION fn1(v1 int) returns int
|
|||||||
BEGIN
|
BEGIN
|
||||||
return v1;
|
return v1;
|
||||||
END//
|
END//
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
drop user 'user_1'@'localhost';
|
drop user 'user_1'@'localhost';
|
||||||
|
@ -58,7 +58,6 @@ load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
|
|||||||
|
|
||||||
Section 3.1.10 - CALL checks:
|
Section 3.1.10 - CALL checks:
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
USE db_storedproc;
|
|
||||||
|
|
||||||
Testcase 3.1.10.2 + 3.1.10.5:
|
Testcase 3.1.10.2 + 3.1.10.5:
|
||||||
-----------------------------
|
-----------------------------
|
||||||
@ -95,6 +94,7 @@ CALL sp31102();
|
|||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
CALL sp31102();
|
CALL sp31102();
|
||||||
@ -114,6 +114,7 @@ a` a` 1000-01-01 -5000 a` -5000
|
|||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
fn31105( 9 )
|
fn31105( 9 )
|
||||||
81
|
81
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
||||||
@ -131,6 +132,7 @@ CALL sp31102();
|
|||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
DROP PROCEDURE sp31102;
|
DROP PROCEDURE sp31102;
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -81,6 +81,7 @@ BEGIN
|
|||||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||||
END//
|
END//
|
||||||
ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
|
ERROR 42000: Access denied for user 'user_1'@'localhost' to database 'db_storedproc_1'
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
||||||
@ -92,6 +93,7 @@ CREATE PROCEDURE sp1(v1 char(20))
|
|||||||
BEGIN
|
BEGIN
|
||||||
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
SELECT * from db_storedproc_1.t6 where t6.f2= 'xyz';
|
||||||
END//
|
END//
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
DROP USER 'user_1'@'localhost';
|
DROP USER 'user_1'@'localhost';
|
||||||
@ -117,6 +119,7 @@ CREATE FUNCTION fn1(v1 int) returns int
|
|||||||
BEGIN
|
BEGIN
|
||||||
return v1;
|
return v1;
|
||||||
END//
|
END//
|
||||||
|
USE db_storedproc_1;
|
||||||
|
|
||||||
root@localhost db_storedproc_1
|
root@localhost db_storedproc_1
|
||||||
drop user 'user_1'@'localhost';
|
drop user 'user_1'@'localhost';
|
||||||
|
@ -58,7 +58,6 @@ load data infile 'MYSQL_TEST_DIR/suite/funcs_1/data/t4.txt' into table t11;
|
|||||||
|
|
||||||
Section 3.1.10 - CALL checks:
|
Section 3.1.10 - CALL checks:
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
USE db_storedproc;
|
|
||||||
|
|
||||||
Testcase 3.1.10.2 + 3.1.10.5:
|
Testcase 3.1.10.2 + 3.1.10.5:
|
||||||
-----------------------------
|
-----------------------------
|
||||||
@ -95,6 +94,7 @@ CALL sp31102();
|
|||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
CALL sp31102();
|
CALL sp31102();
|
||||||
@ -114,6 +114,7 @@ a` a` 1000-01-01 -5000 a` -5000
|
|||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
fn31105( 9 )
|
fn31105( 9 )
|
||||||
81
|
81
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
||||||
@ -131,6 +132,7 @@ CALL sp31102();
|
|||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.sp31102'
|
||||||
SELECT fn31105( 9 );
|
SELECT fn31105( 9 );
|
||||||
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
ERROR 42000: execute command denied to user 'user_2'@'localhost' for routine 'db_storedproc.fn31105'
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
root@localhost db_storedproc
|
root@localhost db_storedproc
|
||||||
DROP PROCEDURE sp31102;
|
DROP PROCEDURE sp31102;
|
||||||
|
@ -18,9 +18,9 @@
|
|||||||
let $message= Section 3.1.6 - Privilege Checks:;
|
let $message= Section 3.1.6 - Privilege Checks:;
|
||||||
--source include/show_msg80.inc
|
--source include/show_msg80.inc
|
||||||
|
|
||||||
USE db_storedproc_1;
|
|
||||||
|
|
||||||
connection default;
|
connection default;
|
||||||
|
USE db_storedproc_1;
|
||||||
--source suite/funcs_1/include/show_connection.inc
|
--source suite/funcs_1/include/show_connection.inc
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
@ -58,6 +58,7 @@ disconnect user1a;
|
|||||||
|
|
||||||
# add privilege again and check
|
# add privilege again and check
|
||||||
connection default;
|
connection default;
|
||||||
|
USE db_storedproc_1;
|
||||||
--source suite/funcs_1/include/show_connection.inc
|
--source suite/funcs_1/include/show_connection.inc
|
||||||
|
|
||||||
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
GRANT CREATE ROUTINE ON db_storedproc_1.* TO 'user_1'@'localhost';
|
||||||
@ -77,6 +78,7 @@ disconnect user1b;
|
|||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
connection default;
|
connection default;
|
||||||
|
USE db_storedproc_1;
|
||||||
--source suite/funcs_1/include/show_connection.inc
|
--source suite/funcs_1/include/show_connection.inc
|
||||||
|
|
||||||
DROP USER 'user_1'@'localhost';
|
DROP USER 'user_1'@'localhost';
|
||||||
@ -132,6 +134,7 @@ disconnect user2;
|
|||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
connection default;
|
connection default;
|
||||||
|
USE db_storedproc_1;
|
||||||
--source suite/funcs_1/include/show_connection.inc
|
--source suite/funcs_1/include/show_connection.inc
|
||||||
|
|
||||||
drop user 'user_1'@'localhost';
|
drop user 'user_1'@'localhost';
|
||||||
|
@ -21,7 +21,6 @@ let $message= Section 3.1.10 - CALL checks:;
|
|||||||
--source include/show_msg80.inc
|
--source include/show_msg80.inc
|
||||||
|
|
||||||
|
|
||||||
USE db_storedproc;
|
|
||||||
|
|
||||||
# ------------------------------------------------------------------------------
|
# ------------------------------------------------------------------------------
|
||||||
let $message= Testcase 3.1.10.2 + 3.1.10.5:;
|
let $message= Testcase 3.1.10.2 + 3.1.10.5:;
|
||||||
@ -80,6 +79,7 @@ SELECT fn31105( 9 );
|
|||||||
|
|
||||||
# now 'add' EXECUTE to INVOKER
|
# now 'add' EXECUTE to INVOKER
|
||||||
connection default;
|
connection default;
|
||||||
|
USE db_storedproc;
|
||||||
--source suite/funcs_1/include/show_connection.inc
|
--source suite/funcs_1/include/show_connection.inc
|
||||||
# root can execute ...
|
# root can execute ...
|
||||||
CALL sp31102();
|
CALL sp31102();
|
||||||
@ -98,6 +98,7 @@ disconnect user2_3;
|
|||||||
|
|
||||||
# now 'remove' SELECT from INVOKER
|
# now 'remove' SELECT from INVOKER
|
||||||
connection default;
|
connection default;
|
||||||
|
USE db_storedproc;
|
||||||
--source suite/funcs_1/include/show_connection.inc
|
--source suite/funcs_1/include/show_connection.inc
|
||||||
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
REVOKE EXECUTE ON db_storedproc.* FROM 'user_2'@'localhost';
|
||||||
FLUSH PRIVILEGES;
|
FLUSH PRIVILEGES;
|
||||||
@ -115,6 +116,7 @@ disconnect user2_4;
|
|||||||
|
|
||||||
# cleanup
|
# cleanup
|
||||||
connection default;
|
connection default;
|
||||||
|
USE db_storedproc;
|
||||||
|
|
||||||
--source suite/funcs_1/include/show_connection.inc
|
--source suite/funcs_1/include/show_connection.inc
|
||||||
DROP PROCEDURE sp31102;
|
DROP PROCEDURE sp31102;
|
||||||
|
167
mysql-test/suite/rpl/r/rpl_innodb_bug28430.result
Normal file
167
mysql-test/suite/rpl/r/rpl_innodb_bug28430.result
Normal file
@ -0,0 +1,167 @@
|
|||||||
|
stop slave;
|
||||||
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||||
|
reset master;
|
||||||
|
reset slave;
|
||||||
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||||
|
start slave;
|
||||||
|
use test;
|
||||||
|
CREATE TABLE test.regular_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||||
|
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
|
||||||
|
fkid MEDIUMINT, filler VARCHAR(255),
|
||||||
|
PRIMARY KEY(id)) ENGINE='innodb';
|
||||||
|
CREATE TABLE test.bykey_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||||
|
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
|
||||||
|
fkid MEDIUMINT, filler VARCHAR(255),
|
||||||
|
PRIMARY KEY(id)) ENGINE='innodb'
|
||||||
|
PARTITION BY KEY(id) partitions 5;
|
||||||
|
CREATE TABLE test.byrange_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||||
|
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
|
||||||
|
fkid MEDIUMINT, filler VARCHAR(255),
|
||||||
|
PRIMARY KEY(id)) ENGINE='innodb'
|
||||||
|
PARTITION BY RANGE(id)
|
||||||
|
SUBPARTITION BY hash(id) subpartitions 2
|
||||||
|
(PARTITION pa1 values less than (10),
|
||||||
|
PARTITION pa2 values less than (20),
|
||||||
|
PARTITION pa3 values less than (30),
|
||||||
|
PARTITION pa4 values less than (40),
|
||||||
|
PARTITION pa5 values less than (50),
|
||||||
|
PARTITION pa6 values less than (60),
|
||||||
|
PARTITION pa7 values less than (70),
|
||||||
|
PARTITION pa8 values less than (80),
|
||||||
|
PARTITION pa9 values less than (90),
|
||||||
|
PARTITION pa10 values less than (100),
|
||||||
|
PARTITION pa11 values less than MAXVALUE);
|
||||||
|
CREATE PROCEDURE test.proc_norm()
|
||||||
|
BEGIN
|
||||||
|
DECLARE ins_count INT DEFAULT 1000;
|
||||||
|
DECLARE del_count INT;
|
||||||
|
DECLARE cur_user VARCHAR(255);
|
||||||
|
DECLARE local_uuid VARCHAR(255);
|
||||||
|
DECLARE local_time TIMESTAMP;
|
||||||
|
SET local_time= NOW();
|
||||||
|
SET cur_user= CURRENT_USER();
|
||||||
|
SET local_uuid= UUID();
|
||||||
|
WHILE ins_count > 0 DO
|
||||||
|
INSERT INTO test.regular_tbl VALUES (NULL, NOW(), USER() , UUID(),
|
||||||
|
ins_count,'Going to test MBR for MySQL');
|
||||||
|
SET ins_count = ins_count - 1;
|
||||||
|
END WHILE;
|
||||||
|
SELECT MAX(id) FROM test.regular_tbl INTO del_count;
|
||||||
|
WHILE del_count > 0 DO
|
||||||
|
DELETE FROM test.regular_tbl WHERE id = del_count;
|
||||||
|
SET del_count = del_count - 2;
|
||||||
|
END WHILE;
|
||||||
|
END|
|
||||||
|
CREATE PROCEDURE test.proc_bykey()
|
||||||
|
BEGIN
|
||||||
|
DECLARE ins_count INT DEFAULT 1000;
|
||||||
|
DECLARE del_count INT;
|
||||||
|
DECLARE cur_user VARCHAR(255);
|
||||||
|
DECLARE local_uuid VARCHAR(255);
|
||||||
|
DECLARE local_time TIMESTAMP;
|
||||||
|
SET local_time= NOW();
|
||||||
|
SET cur_user= CURRENT_USER();
|
||||||
|
SET local_uuid= UUID();
|
||||||
|
WHILE ins_count > 0 DO
|
||||||
|
INSERT INTO test.bykey_tbl VALUES (NULL, NOW(), USER() , UUID(),
|
||||||
|
ins_count,'Going to test MBR for MySQL');
|
||||||
|
SET ins_count = ins_count - 1;
|
||||||
|
END WHILE;
|
||||||
|
SELECT MAX(id) FROM test.bykey_tbl INTO del_count;
|
||||||
|
WHILE del_count > 0 DO
|
||||||
|
DELETE FROM test.bykey_tbl WHERE id = del_count;
|
||||||
|
SET del_count = del_count - 2;
|
||||||
|
END WHILE;
|
||||||
|
END|
|
||||||
|
CREATE PROCEDURE test.proc_byrange()
|
||||||
|
BEGIN
|
||||||
|
DECLARE ins_count INT DEFAULT 1000;
|
||||||
|
DECLARE del_count INT;
|
||||||
|
DECLARE cur_user VARCHAR(255);
|
||||||
|
DECLARE local_uuid VARCHAR(255);
|
||||||
|
DECLARE local_time TIMESTAMP;
|
||||||
|
SET local_time= NOW();
|
||||||
|
SET cur_user = CURRENT_USER();
|
||||||
|
SET local_uuid=UUID();
|
||||||
|
WHILE ins_count > 0 DO
|
||||||
|
INSERT INTO test.byrange_tbl VALUES (NULL, NOW(), USER(), UUID(),
|
||||||
|
ins_count,'Going to test MBR for MySQL');
|
||||||
|
SET ins_count = ins_count - 1;
|
||||||
|
END WHILE;
|
||||||
|
SELECT MAX(id) FROM test.byrange_tbl INTO del_count;
|
||||||
|
WHILE del_count > 0 DO
|
||||||
|
DELETE FROM test.byrange_tbl WHERE id = del_count;
|
||||||
|
SET del_count = del_count - 2;
|
||||||
|
END WHILE;
|
||||||
|
END|
|
||||||
|
CALL test.proc_norm();
|
||||||
|
SELECT count(*) as "Master regular" FROM test.regular_tbl;
|
||||||
|
Master regular 500
|
||||||
|
CALL test.proc_bykey();
|
||||||
|
SELECT count(*) as "Master bykey" FROM test.bykey_tbl;
|
||||||
|
Master bykey 500
|
||||||
|
CALL test.proc_byrange();
|
||||||
|
SELECT count(*) as "Master byrange" FROM test.byrange_tbl;
|
||||||
|
Master byrange 500
|
||||||
|
show create table test.byrange_tbl;
|
||||||
|
Table byrange_tbl
|
||||||
|
Create Table CREATE TABLE `byrange_tbl` (
|
||||||
|
`id` mediumint(9) NOT NULL AUTO_INCREMENT,
|
||||||
|
`dt` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
||||||
|
`user` char(255) DEFAULT NULL,
|
||||||
|
`uuidf` longblob,
|
||||||
|
`fkid` mediumint(9) DEFAULT NULL,
|
||||||
|
`filler` varchar(255) DEFAULT NULL,
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (id) SUBPARTITION BY HASH (id) SUBPARTITIONS 2 (PARTITION pa1 VALUES LESS THAN (10) ENGINE = InnoDB, PARTITION pa2 VALUES LESS THAN (20) ENGINE = InnoDB, PARTITION pa3 VALUES LESS THAN (30) ENGINE = InnoDB, PARTITION pa4 VALUES LESS THAN (40) ENGINE = InnoDB, PARTITION pa5 VALUES LESS THAN (50) ENGINE = InnoDB, PARTITION pa6 VALUES LESS THAN (60) ENGINE = InnoDB, PARTITION pa7 VALUES LESS THAN (70) ENGINE = InnoDB, PARTITION pa8 VALUES LESS THAN (80) ENGINE = InnoDB, PARTITION pa9 VALUES LESS THAN (90) ENGINE = InnoDB, PARTITION pa10 VALUES LESS THAN (100) ENGINE = InnoDB, PARTITION pa11 VALUES LESS THAN MAXVALUE ENGINE = InnoDB) */
|
||||||
|
show slave status;
|
||||||
|
Slave_IO_State Waiting for master to send event
|
||||||
|
Master_Host 127.0.0.1
|
||||||
|
Master_User root
|
||||||
|
Master_Port MASTER_PORT
|
||||||
|
Connect_Retry 1
|
||||||
|
Master_Log_File master-bin.000001
|
||||||
|
Read_Master_Log_Pos 945470
|
||||||
|
Relay_Log_File slave-relay-bin.000003
|
||||||
|
Relay_Log_Pos 945616
|
||||||
|
Relay_Master_Log_File master-bin.000001
|
||||||
|
Slave_IO_Running Yes
|
||||||
|
Slave_SQL_Running Yes
|
||||||
|
Replicate_Do_DB
|
||||||
|
Replicate_Ignore_DB
|
||||||
|
Replicate_Do_Table
|
||||||
|
Replicate_Ignore_Table
|
||||||
|
Replicate_Wild_Do_Table
|
||||||
|
Replicate_Wild_Ignore_Table
|
||||||
|
Last_Errno 0
|
||||||
|
Last_Error
|
||||||
|
Skip_Counter 0
|
||||||
|
Exec_Master_Log_Pos 945470
|
||||||
|
Relay_Log_Space 945771
|
||||||
|
Until_Condition None
|
||||||
|
Until_Log_File
|
||||||
|
Until_Log_Pos 0
|
||||||
|
Master_SSL_Allowed No
|
||||||
|
Master_SSL_CA_File
|
||||||
|
Master_SSL_CA_Path
|
||||||
|
Master_SSL_Cert
|
||||||
|
Master_SSL_Cipher
|
||||||
|
Master_SSL_Key
|
||||||
|
Seconds_Behind_Master #
|
||||||
|
Master_SSL_Verify_Server_Cert No
|
||||||
|
Last_IO_Errno 0
|
||||||
|
Last_IO_Error
|
||||||
|
Last_SQL_Errno 0
|
||||||
|
Last_SQL_Error
|
||||||
|
SELECT count(*) "Slave norm" FROM test.regular_tbl;
|
||||||
|
Slave norm 500
|
||||||
|
SELECT count(*) "Slave bykey" FROM test.bykey_tbl;
|
||||||
|
Slave bykey 500
|
||||||
|
SELECT count(*) "Slave byrange" FROM test.byrange_tbl;
|
||||||
|
Slave byrange 500
|
||||||
|
DROP PROCEDURE test.proc_norm;
|
||||||
|
DROP PROCEDURE test.proc_bykey;
|
||||||
|
DROP PROCEDURE test.proc_byrange;
|
||||||
|
DROP TABLE test.regular_tbl;
|
||||||
|
DROP TABLE test.bykey_tbl;
|
||||||
|
DROP TABLE test.byrange_tbl;
|
35
mysql-test/suite/rpl/r/rpl_innodb_bug30888.result
Normal file
35
mysql-test/suite/rpl/r/rpl_innodb_bug30888.result
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
stop slave;
|
||||||
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||||
|
reset master;
|
||||||
|
reset slave;
|
||||||
|
drop table if exists t1,t2,t3,t4,t5,t6,t7,t8,t9;
|
||||||
|
start slave;
|
||||||
|
use test;
|
||||||
|
CREATE TABLE test.regular_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||||
|
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
|
||||||
|
fkid MEDIUMINT, filler VARCHAR(255),
|
||||||
|
PRIMARY KEY(id)) ENGINE='innodb';
|
||||||
|
CREATE PROCEDURE test.proc_norm()
|
||||||
|
BEGIN
|
||||||
|
DECLARE ins_count INT DEFAULT 1000;
|
||||||
|
DECLARE del_count INT;
|
||||||
|
DECLARE cur_user VARCHAR(255);
|
||||||
|
DECLARE local_uuid VARCHAR(255);
|
||||||
|
DECLARE local_time TIMESTAMP;
|
||||||
|
SET local_time= NOW();
|
||||||
|
SET cur_user= CURRENT_USER();
|
||||||
|
SET local_uuid= UUID();
|
||||||
|
WHILE ins_count > 0 DO
|
||||||
|
INSERT INTO test.regular_tbl VALUES (NULL, NOW(), USER() , UUID(),
|
||||||
|
ins_count,'Going to test MBR for MySQL');
|
||||||
|
SET ins_count = ins_count - 1;
|
||||||
|
END WHILE;
|
||||||
|
SELECT MAX(id) FROM test.regular_tbl INTO del_count;
|
||||||
|
WHILE del_count > 0 DO
|
||||||
|
DELETE FROM test.regular_tbl WHERE id = del_count;
|
||||||
|
SET del_count = del_count - 2;
|
||||||
|
END WHILE;
|
||||||
|
END|
|
||||||
|
CALL test.proc_norm();
|
||||||
|
DROP PROCEDURE test.proc_norm;
|
||||||
|
DROP TABLE test.regular_tbl;
|
1043
mysql-test/suite/rpl/r/rpl_innodb_bug30919.result
Normal file
1043
mysql-test/suite/rpl/r/rpl_innodb_bug30919.result
Normal file
File diff suppressed because it is too large
Load Diff
1
mysql-test/suite/rpl/t/rpl_innodb-master.opt
Normal file
1
mysql-test/suite/rpl/t/rpl_innodb-master.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--innodb --innodb_autoinc_lock_mode=0
|
1
mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt
Normal file
1
mysql-test/suite/rpl/t/rpl_innodb_bug28430-master.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--innodb --innodb_autoinc_lock_mode=0
|
1
mysql-test/suite/rpl/t/rpl_innodb_bug28430-slave.opt
Normal file
1
mysql-test/suite/rpl/t/rpl_innodb_bug28430-slave.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--innodb --innodb_autoinc_lock_mode=0
|
154
mysql-test/suite/rpl/t/rpl_innodb_bug28430.test
Normal file
154
mysql-test/suite/rpl/t/rpl_innodb_bug28430.test
Normal file
@ -0,0 +1,154 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_binlog_format_mixed_or_row.inc
|
||||||
|
--source include/master-slave.inc
|
||||||
|
|
||||||
|
# Set the default connection to 'master'
|
||||||
|
|
||||||
|
--vertical_results
|
||||||
|
|
||||||
|
let $engine_type= 'innodb';
|
||||||
|
|
||||||
|
######## Creat Table Section #########
|
||||||
|
use test;
|
||||||
|
|
||||||
|
eval CREATE TABLE test.regular_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||||
|
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
|
||||||
|
fkid MEDIUMINT, filler VARCHAR(255),
|
||||||
|
PRIMARY KEY(id)) ENGINE=$engine_type;
|
||||||
|
|
||||||
|
eval CREATE TABLE test.bykey_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||||
|
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
|
||||||
|
fkid MEDIUMINT, filler VARCHAR(255),
|
||||||
|
PRIMARY KEY(id)) ENGINE=$engine_type
|
||||||
|
PARTITION BY KEY(id) partitions 5;
|
||||||
|
|
||||||
|
eval CREATE TABLE test.byrange_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||||
|
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
|
||||||
|
fkid MEDIUMINT, filler VARCHAR(255),
|
||||||
|
PRIMARY KEY(id)) ENGINE=$engine_type
|
||||||
|
PARTITION BY RANGE(id)
|
||||||
|
SUBPARTITION BY hash(id) subpartitions 2
|
||||||
|
(PARTITION pa1 values less than (10),
|
||||||
|
PARTITION pa2 values less than (20),
|
||||||
|
PARTITION pa3 values less than (30),
|
||||||
|
PARTITION pa4 values less than (40),
|
||||||
|
PARTITION pa5 values less than (50),
|
||||||
|
PARTITION pa6 values less than (60),
|
||||||
|
PARTITION pa7 values less than (70),
|
||||||
|
PARTITION pa8 values less than (80),
|
||||||
|
PARTITION pa9 values less than (90),
|
||||||
|
PARTITION pa10 values less than (100),
|
||||||
|
PARTITION pa11 values less than MAXVALUE);
|
||||||
|
|
||||||
|
######## Create SPs, Functions, Views and Triggers Section ##############
|
||||||
|
|
||||||
|
delimiter |;
|
||||||
|
CREATE PROCEDURE test.proc_norm()
|
||||||
|
BEGIN
|
||||||
|
DECLARE ins_count INT DEFAULT 1000;
|
||||||
|
DECLARE del_count INT;
|
||||||
|
DECLARE cur_user VARCHAR(255);
|
||||||
|
DECLARE local_uuid VARCHAR(255);
|
||||||
|
DECLARE local_time TIMESTAMP;
|
||||||
|
|
||||||
|
SET local_time= NOW();
|
||||||
|
SET cur_user= CURRENT_USER();
|
||||||
|
SET local_uuid= UUID();
|
||||||
|
|
||||||
|
WHILE ins_count > 0 DO
|
||||||
|
INSERT INTO test.regular_tbl VALUES (NULL, NOW(), USER() , UUID(),
|
||||||
|
ins_count,'Going to test MBR for MySQL');
|
||||||
|
SET ins_count = ins_count - 1;
|
||||||
|
END WHILE;
|
||||||
|
|
||||||
|
SELECT MAX(id) FROM test.regular_tbl INTO del_count;
|
||||||
|
WHILE del_count > 0 DO
|
||||||
|
DELETE FROM test.regular_tbl WHERE id = del_count;
|
||||||
|
SET del_count = del_count - 2;
|
||||||
|
END WHILE;
|
||||||
|
END|
|
||||||
|
|
||||||
|
CREATE PROCEDURE test.proc_bykey()
|
||||||
|
BEGIN
|
||||||
|
DECLARE ins_count INT DEFAULT 1000;
|
||||||
|
DECLARE del_count INT;
|
||||||
|
DECLARE cur_user VARCHAR(255);
|
||||||
|
DECLARE local_uuid VARCHAR(255);
|
||||||
|
DECLARE local_time TIMESTAMP;
|
||||||
|
|
||||||
|
SET local_time= NOW();
|
||||||
|
SET cur_user= CURRENT_USER();
|
||||||
|
SET local_uuid= UUID();
|
||||||
|
|
||||||
|
WHILE ins_count > 0 DO
|
||||||
|
INSERT INTO test.bykey_tbl VALUES (NULL, NOW(), USER() , UUID(),
|
||||||
|
ins_count,'Going to test MBR for MySQL');
|
||||||
|
SET ins_count = ins_count - 1;
|
||||||
|
END WHILE;
|
||||||
|
|
||||||
|
SELECT MAX(id) FROM test.bykey_tbl INTO del_count;
|
||||||
|
WHILE del_count > 0 DO
|
||||||
|
DELETE FROM test.bykey_tbl WHERE id = del_count;
|
||||||
|
SET del_count = del_count - 2;
|
||||||
|
END WHILE;
|
||||||
|
END|
|
||||||
|
|
||||||
|
CREATE PROCEDURE test.proc_byrange()
|
||||||
|
BEGIN
|
||||||
|
DECLARE ins_count INT DEFAULT 1000;
|
||||||
|
DECLARE del_count INT;
|
||||||
|
DECLARE cur_user VARCHAR(255);
|
||||||
|
DECLARE local_uuid VARCHAR(255);
|
||||||
|
DECLARE local_time TIMESTAMP;
|
||||||
|
|
||||||
|
SET local_time= NOW();
|
||||||
|
SET cur_user = CURRENT_USER();
|
||||||
|
SET local_uuid=UUID();
|
||||||
|
|
||||||
|
WHILE ins_count > 0 DO
|
||||||
|
INSERT INTO test.byrange_tbl VALUES (NULL, NOW(), USER(), UUID(),
|
||||||
|
ins_count,'Going to test MBR for MySQL');
|
||||||
|
SET ins_count = ins_count - 1;
|
||||||
|
END WHILE;
|
||||||
|
|
||||||
|
SELECT MAX(id) FROM test.byrange_tbl INTO del_count;
|
||||||
|
WHILE del_count > 0 DO
|
||||||
|
DELETE FROM test.byrange_tbl WHERE id = del_count;
|
||||||
|
SET del_count = del_count - 2;
|
||||||
|
END WHILE;
|
||||||
|
END|
|
||||||
|
|
||||||
|
delimiter ;|
|
||||||
|
|
||||||
|
############ Finish Setup Section ###################
|
||||||
|
|
||||||
|
|
||||||
|
############ Test Section ###################
|
||||||
|
|
||||||
|
CALL test.proc_norm();
|
||||||
|
SELECT count(*) as "Master regular" FROM test.regular_tbl;
|
||||||
|
CALL test.proc_bykey();
|
||||||
|
SELECT count(*) as "Master bykey" FROM test.bykey_tbl;
|
||||||
|
CALL test.proc_byrange();
|
||||||
|
SELECT count(*) as "Master byrange" FROM test.byrange_tbl;
|
||||||
|
|
||||||
|
--sync_slave_with_master
|
||||||
|
connection slave;
|
||||||
|
show create table test.byrange_tbl;
|
||||||
|
--replace_column 4 MASTER_PORT 33 #
|
||||||
|
show slave status;
|
||||||
|
SELECT count(*) "Slave norm" FROM test.regular_tbl;
|
||||||
|
SELECT count(*) "Slave bykey" FROM test.bykey_tbl;
|
||||||
|
SELECT count(*) "Slave byrange" FROM test.byrange_tbl;
|
||||||
|
|
||||||
|
###### CLEAN UP SECTION ##############
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
DROP PROCEDURE test.proc_norm;
|
||||||
|
DROP PROCEDURE test.proc_bykey;
|
||||||
|
DROP PROCEDURE test.proc_byrange;
|
||||||
|
DROP TABLE test.regular_tbl;
|
||||||
|
DROP TABLE test.bykey_tbl;
|
||||||
|
DROP TABLE test.byrange_tbl;
|
||||||
|
|
||||||
|
--source include/master-slave-end.inc
|
66
mysql-test/suite/rpl/t/rpl_innodb_bug30888.test
Normal file
66
mysql-test/suite/rpl/t/rpl_innodb_bug30888.test
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_binlog_format_mixed_or_row.inc
|
||||||
|
--source include/master-slave.inc
|
||||||
|
|
||||||
|
# Set the default connection to 'master'
|
||||||
|
|
||||||
|
--vertical_results
|
||||||
|
|
||||||
|
#let $engine_type= 'myisam';
|
||||||
|
let $engine_type= 'innodb';
|
||||||
|
|
||||||
|
######## Creat Table Section #########
|
||||||
|
use test;
|
||||||
|
|
||||||
|
eval CREATE TABLE test.regular_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||||
|
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
|
||||||
|
fkid MEDIUMINT, filler VARCHAR(255),
|
||||||
|
PRIMARY KEY(id)) ENGINE=$engine_type;
|
||||||
|
|
||||||
|
######## Create SPs, Functions, Views and Triggers Section ##############
|
||||||
|
|
||||||
|
delimiter |;
|
||||||
|
CREATE PROCEDURE test.proc_norm()
|
||||||
|
BEGIN
|
||||||
|
DECLARE ins_count INT DEFAULT 1000;
|
||||||
|
DECLARE del_count INT;
|
||||||
|
DECLARE cur_user VARCHAR(255);
|
||||||
|
DECLARE local_uuid VARCHAR(255);
|
||||||
|
DECLARE local_time TIMESTAMP;
|
||||||
|
|
||||||
|
SET local_time= NOW();
|
||||||
|
SET cur_user= CURRENT_USER();
|
||||||
|
SET local_uuid= UUID();
|
||||||
|
|
||||||
|
WHILE ins_count > 0 DO
|
||||||
|
INSERT INTO test.regular_tbl VALUES (NULL, NOW(), USER() , UUID(),
|
||||||
|
ins_count,'Going to test MBR for MySQL');
|
||||||
|
SET ins_count = ins_count - 1;
|
||||||
|
END WHILE;
|
||||||
|
|
||||||
|
SELECT MAX(id) FROM test.regular_tbl INTO del_count;
|
||||||
|
WHILE del_count > 0 DO
|
||||||
|
DELETE FROM test.regular_tbl WHERE id = del_count;
|
||||||
|
SET del_count = del_count - 2;
|
||||||
|
END WHILE;
|
||||||
|
END|
|
||||||
|
|
||||||
|
delimiter ;|
|
||||||
|
|
||||||
|
############ Finish Setup Section ###################
|
||||||
|
|
||||||
|
|
||||||
|
############ Test Section ###################
|
||||||
|
|
||||||
|
CALL test.proc_norm();
|
||||||
|
|
||||||
|
--sync_slave_with_master
|
||||||
|
|
||||||
|
###### CLEAN UP SECTION ##############
|
||||||
|
|
||||||
|
connection master;
|
||||||
|
DROP PROCEDURE test.proc_norm;
|
||||||
|
DROP TABLE test.regular_tbl;
|
||||||
|
|
||||||
|
--source include/master-slave-end.inc
|
||||||
|
|
1
mysql-test/suite/rpl/t/rpl_innodb_bug30919-master.opt
Normal file
1
mysql-test/suite/rpl/t/rpl_innodb_bug30919-master.opt
Normal file
@ -0,0 +1 @@
|
|||||||
|
--innodb --innodb_autoinc_lock_mode=0
|
67
mysql-test/suite/rpl/t/rpl_innodb_bug30919.test
Normal file
67
mysql-test/suite/rpl/t/rpl_innodb_bug30919.test
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
--source include/have_innodb.inc
|
||||||
|
--vertical_results
|
||||||
|
let $engine_type= 'innodb';
|
||||||
|
|
||||||
|
######## Creat Table Section #########
|
||||||
|
use test;
|
||||||
|
|
||||||
|
eval CREATE TABLE test.part_tbl(id MEDIUMINT NOT NULL AUTO_INCREMENT,
|
||||||
|
dt TIMESTAMP, user CHAR(255), uuidf LONGBLOB,
|
||||||
|
fkid MEDIUMINT, filler VARCHAR(255),
|
||||||
|
PRIMARY KEY(id)) ENGINE=$engine_type
|
||||||
|
PARTITION BY RANGE(id)
|
||||||
|
SUBPARTITION BY hash(id) subpartitions 2
|
||||||
|
(PARTITION pa3 values less than (42),
|
||||||
|
PARTITION pa6 values less than (60),
|
||||||
|
PARTITION pa7 values less than (70),
|
||||||
|
PARTITION pa8 values less than (80),
|
||||||
|
PARTITION pa9 values less than (90),
|
||||||
|
PARTITION pa10 values less than (100),
|
||||||
|
PARTITION pa11 values less than MAXVALUE);
|
||||||
|
|
||||||
|
######## Create SPs, Functions, Views and Triggers Section ##############
|
||||||
|
|
||||||
|
delimiter |;
|
||||||
|
|
||||||
|
CREATE PROCEDURE test.proc_part()
|
||||||
|
BEGIN
|
||||||
|
DECLARE ins_count INT DEFAULT 1000;
|
||||||
|
DECLARE del_count INT;
|
||||||
|
DECLARE cur_user VARCHAR(255);
|
||||||
|
DECLARE local_uuid VARCHAR(255);
|
||||||
|
DECLARE local_time TIMESTAMP;
|
||||||
|
|
||||||
|
SET local_time= NOW();
|
||||||
|
SET cur_user= CURRENT_USER();
|
||||||
|
SET local_uuid= UUID();
|
||||||
|
|
||||||
|
WHILE ins_count > 0 DO
|
||||||
|
INSERT INTO test.part_tbl VALUES (NULL, NOW(), USER() , UUID(),
|
||||||
|
ins_count,'Going to test MBR for MySQL');
|
||||||
|
SET ins_count = ins_count - 1;
|
||||||
|
END WHILE;
|
||||||
|
SELECT MAX(id) FROM test.part_tbl INTO del_count;
|
||||||
|
WHILE del_count > 0 DO
|
||||||
|
DELETE FROM test.part_tbl WHERE id = del_count;
|
||||||
|
select count(*) as internal_count, del_count -- these two lines are for
|
||||||
|
FROM test.part_tbl; -- debug to show the problem
|
||||||
|
SET del_count = del_count - 2;
|
||||||
|
END WHILE;
|
||||||
|
END|
|
||||||
|
|
||||||
|
delimiter ;|
|
||||||
|
|
||||||
|
############ Finish Setup Section ###################
|
||||||
|
|
||||||
|
############ Test Section ###################
|
||||||
|
--horizontal_results
|
||||||
|
|
||||||
|
CALL test.proc_part();
|
||||||
|
|
||||||
|
select count(*) as Part from test.part_tbl;
|
||||||
|
|
||||||
|
###### CLEAN UP SECTION ##############
|
||||||
|
|
||||||
|
DROP PROCEDURE test.proc_part;
|
||||||
|
DROP TABLE test.part_tbl;
|
||||||
|
|
@ -56,6 +56,7 @@ static void set_no_inherit(int socket)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const int Listener::LISTEN_BACK_LOG_SIZE= 5; /* standard backlog size */
|
||||||
|
|
||||||
Listener::Listener(Thread_registry *thread_registry_arg,
|
Listener::Listener(Thread_registry *thread_registry_arg,
|
||||||
User_map *user_map_arg)
|
User_map *user_map_arg)
|
||||||
|
@ -39,7 +39,7 @@ protected:
|
|||||||
virtual void run();
|
virtual void run();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const int LISTEN_BACK_LOG_SIZE= 5; /* standard backlog size */
|
static const int LISTEN_BACK_LOG_SIZE;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Thread_info thread_info;
|
Thread_info thread_info;
|
||||||
|
@ -145,6 +145,8 @@ static uint alter_table_flags(uint flags __attribute__((unused)))
|
|||||||
HA_FAST_CHANGE_PARTITION);
|
HA_FAST_CHANGE_PARTITION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const uint ha_partition::NO_CURRENT_PART_ID= 0xFFFFFFFF;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Constructor method
|
Constructor method
|
||||||
|
|
||||||
@ -2705,7 +2707,15 @@ int ha_partition::write_row(uchar * buf)
|
|||||||
*/
|
*/
|
||||||
autoincrement_lock= true;
|
autoincrement_lock= true;
|
||||||
pthread_mutex_lock(&table_share->mutex);
|
pthread_mutex_lock(&table_share->mutex);
|
||||||
update_auto_increment();
|
error= update_auto_increment();
|
||||||
|
|
||||||
|
/*
|
||||||
|
If we have failed to set the auto-increment value for this row,
|
||||||
|
it is highly likely that we will not be able to insert it into
|
||||||
|
the correct partition. We must check and fail if neccessary.
|
||||||
|
*/
|
||||||
|
if (error)
|
||||||
|
DBUG_RETURN(error);
|
||||||
}
|
}
|
||||||
|
|
||||||
my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set);
|
my_bitmap_map *old_map= dbug_tmp_use_all_columns(table, table->read_set);
|
||||||
@ -5498,8 +5508,10 @@ void ha_partition::get_auto_increment(ulonglong offset, ulonglong increment,
|
|||||||
ulonglong first_value_part, last_value_part, nb_reserved_values_part,
|
ulonglong first_value_part, last_value_part, nb_reserved_values_part,
|
||||||
last_value= ~ (ulonglong) 0;
|
last_value= ~ (ulonglong) 0;
|
||||||
handler **pos, **end;
|
handler **pos, **end;
|
||||||
|
bool retry= TRUE;
|
||||||
DBUG_ENTER("ha_partition::get_auto_increment");
|
DBUG_ENTER("ha_partition::get_auto_increment");
|
||||||
|
|
||||||
|
again:
|
||||||
for (pos=m_file, end= m_file+ m_tot_parts; pos != end ; pos++)
|
for (pos=m_file, end= m_file+ m_tot_parts; pos != end ; pos++)
|
||||||
{
|
{
|
||||||
first_value_part= *first_value;
|
first_value_part= *first_value;
|
||||||
@ -5508,7 +5520,8 @@ void ha_partition::get_auto_increment(ulonglong offset, ulonglong increment,
|
|||||||
if (first_value_part == ~(ulonglong)(0)) // error in one partition
|
if (first_value_part == ~(ulonglong)(0)) // error in one partition
|
||||||
{
|
{
|
||||||
*first_value= first_value_part;
|
*first_value= first_value_part;
|
||||||
break;
|
sql_print_error("Partition failed to reserve auto_increment value");
|
||||||
|
DBUG_VOID_RETURN;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
Partition has reserved an interval. Intersect it with the intervals
|
Partition has reserved an interval. Intersect it with the intervals
|
||||||
@ -5521,6 +5534,25 @@ void ha_partition::get_auto_increment(ulonglong offset, ulonglong increment,
|
|||||||
}
|
}
|
||||||
if (last_value < *first_value) /* empty intersection, error */
|
if (last_value < *first_value) /* empty intersection, error */
|
||||||
{
|
{
|
||||||
|
/*
|
||||||
|
When we have an empty intersection, it means that one or more
|
||||||
|
partitions may have a significantly different autoinc next value.
|
||||||
|
We should not fail here - it just means that we should try to
|
||||||
|
find a new reservation making use of the current *first_value
|
||||||
|
wbich should now be compatible with all partitions.
|
||||||
|
*/
|
||||||
|
if (retry)
|
||||||
|
{
|
||||||
|
retry= FALSE;
|
||||||
|
last_value= ~ (ulonglong) 0;
|
||||||
|
release_auto_increment();
|
||||||
|
goto again;
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
We should not get here.
|
||||||
|
*/
|
||||||
|
sql_print_error("Failed to calculate auto_increment value for partition");
|
||||||
|
|
||||||
*first_value= ~(ulonglong)(0);
|
*first_value= ~(ulonglong)(0);
|
||||||
}
|
}
|
||||||
if (increment) // If not check for values
|
if (increment) // If not check for values
|
||||||
|
@ -469,7 +469,7 @@ public:
|
|||||||
virtual int reset(void);
|
virtual int reset(void);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
static const uint NO_CURRENT_PART_ID= 0xFFFFFFFF;
|
static const uint NO_CURRENT_PART_ID;
|
||||||
int loop_extra(enum ha_extra_function operation);
|
int loop_extra(enum ha_extra_function operation);
|
||||||
void late_extra_cache(uint partition_id);
|
void late_extra_cache(uint partition_id);
|
||||||
void late_extra_no_cache(uint partition_id);
|
void late_extra_no_cache(uint partition_id);
|
||||||
|
@ -510,7 +510,7 @@ unsigned int ZEXPORT azread ( azio_stream *s, voidp buf, unsigned int len, int *
|
|||||||
Writes the given number of uncompressed bytes into the compressed file.
|
Writes the given number of uncompressed bytes into the compressed file.
|
||||||
azwrite returns the number of bytes actually written (0 in case of error).
|
azwrite returns the number of bytes actually written (0 in case of error).
|
||||||
*/
|
*/
|
||||||
unsigned int azwrite (azio_stream *s, voidpc buf, unsigned int len)
|
unsigned int azwrite (azio_stream *s, const voidp buf, unsigned int len)
|
||||||
{
|
{
|
||||||
s->stream.next_in = (Bytef*)buf;
|
s->stream.next_in = (Bytef*)buf;
|
||||||
s->stream.avail_in = len;
|
s->stream.avail_in = len;
|
||||||
|
@ -273,7 +273,7 @@ extern unsigned int azread ( azio_stream *s, voidp buf, unsigned int len, int *e
|
|||||||
gzread returns the number of uncompressed bytes actually read (0 for
|
gzread returns the number of uncompressed bytes actually read (0 for
|
||||||
end of file, -1 for error). */
|
end of file, -1 for error). */
|
||||||
|
|
||||||
extern unsigned int azwrite (azio_stream *s, voidpc buf, unsigned int len);
|
extern unsigned int azwrite (azio_stream *s, const voidp buf, unsigned int len);
|
||||||
/*
|
/*
|
||||||
Writes the given number of uncompressed bytes into the compressed file.
|
Writes the given number of uncompressed bytes into the compressed file.
|
||||||
azwrite returns the number of uncompressed bytes actually written
|
azwrite returns the number of uncompressed bytes actually written
|
||||||
|
@ -1903,12 +1903,11 @@ retry:
|
|||||||
/* We just mark the SQL statement ended and do not do a
|
/* We just mark the SQL statement ended and do not do a
|
||||||
transaction commit */
|
transaction commit */
|
||||||
|
|
||||||
if (trx->auto_inc_lock) {
|
/* If we had reserved the auto-inc lock for some
|
||||||
/* If we had reserved the auto-inc lock for some
|
table in this SQL statement we release it now */
|
||||||
table in this SQL statement we release it now */
|
|
||||||
|
row_unlock_table_autoinc_for_mysql(trx);
|
||||||
|
|
||||||
row_unlock_table_autoinc_for_mysql(trx);
|
|
||||||
}
|
|
||||||
/* Store the current undo_no of the transaction so that we
|
/* Store the current undo_no of the transaction so that we
|
||||||
know where to roll back if we have to roll back the next
|
know where to roll back if we have to roll back the next
|
||||||
SQL statement */
|
SQL statement */
|
||||||
@ -1961,13 +1960,11 @@ innobase_rollback(
|
|||||||
|
|
||||||
innobase_release_stat_resources(trx);
|
innobase_release_stat_resources(trx);
|
||||||
|
|
||||||
if (trx->auto_inc_lock) {
|
/* If we had reserved the auto-inc lock for some table (if
|
||||||
/* If we had reserved the auto-inc lock for some table (if
|
we come here to roll back the latest SQL statement) we
|
||||||
we come here to roll back the latest SQL statement) we
|
release it now before a possibly lengthy rollback */
|
||||||
release it now before a possibly lengthy rollback */
|
|
||||||
|
|
||||||
row_unlock_table_autoinc_for_mysql(trx);
|
row_unlock_table_autoinc_for_mysql(trx);
|
||||||
}
|
|
||||||
|
|
||||||
if (all
|
if (all
|
||||||
|| !thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)) {
|
|| !thd_test_options(thd, OPTION_NOT_AUTOCOMMIT | OPTION_BEGIN)) {
|
||||||
@ -2001,13 +1998,11 @@ innobase_rollback_trx(
|
|||||||
|
|
||||||
innobase_release_stat_resources(trx);
|
innobase_release_stat_resources(trx);
|
||||||
|
|
||||||
if (trx->auto_inc_lock) {
|
/* If we had reserved the auto-inc lock for some table (if
|
||||||
/* If we had reserved the auto-inc lock for some table (if
|
we come here to roll back the latest SQL statement) we
|
||||||
we come here to roll back the latest SQL statement) we
|
release it now before a possibly lengthy rollback */
|
||||||
release it now before a possibly lengthy rollback */
|
|
||||||
|
|
||||||
row_unlock_table_autoinc_for_mysql(trx);
|
row_unlock_table_autoinc_for_mysql(trx);
|
||||||
}
|
|
||||||
|
|
||||||
error = trx_rollback_for_mysql(trx);
|
error = trx_rollback_for_mysql(trx);
|
||||||
|
|
||||||
@ -7167,7 +7162,7 @@ ha_innobase::innobase_read_and_init_auto_inc(
|
|||||||
|
|
||||||
if (auto_inc == 0) {
|
if (auto_inc == 0) {
|
||||||
dict_index_t* index;
|
dict_index_t* index;
|
||||||
ulint error = DB_SUCCESS;
|
ulint error;
|
||||||
const char* autoinc_col_name;
|
const char* autoinc_col_name;
|
||||||
|
|
||||||
ut_a(!innodb_table->autoinc_inited);
|
ut_a(!innodb_table->autoinc_inited);
|
||||||
@ -7239,12 +7234,10 @@ ha_innobase::innobase_get_auto_increment(
|
|||||||
trx = prebuilt->trx;
|
trx = prebuilt->trx;
|
||||||
dict_table_autoinc_unlock(prebuilt->table);
|
dict_table_autoinc_unlock(prebuilt->table);
|
||||||
|
|
||||||
if (trx->auto_inc_lock) {
|
/* If we had reserved the AUTO-INC
|
||||||
/* If we had reserved the AUTO-INC
|
lock in this SQL statement we release
|
||||||
lock in this SQL statement we release
|
it before retrying.*/
|
||||||
it before retrying.*/
|
row_unlock_table_autoinc_for_mysql(trx);
|
||||||
row_unlock_table_autoinc_for_mysql(trx);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Just to make sure */
|
/* Just to make sure */
|
||||||
ut_a(!trx->auto_inc_lock);
|
ut_a(!trx->auto_inc_lock);
|
||||||
@ -7286,6 +7279,7 @@ ha_innobase::get_auto_increment(
|
|||||||
ulonglong *first_value, /* out: the autoinc value */
|
ulonglong *first_value, /* out: the autoinc value */
|
||||||
ulonglong *nb_reserved_values) /* out: count of reserved values */
|
ulonglong *nb_reserved_values) /* out: count of reserved values */
|
||||||
{
|
{
|
||||||
|
trx_t* trx;
|
||||||
ulint error;
|
ulint error;
|
||||||
ulonglong autoinc = 0;
|
ulonglong autoinc = 0;
|
||||||
|
|
||||||
@ -7312,37 +7306,29 @@ ha_innobase::get_auto_increment(
|
|||||||
this method for the same statement results in different values which
|
this method for the same statement results in different values which
|
||||||
don't make sense. Therefore we store the value the first time we are
|
don't make sense. Therefore we store the value the first time we are
|
||||||
called and count down from that as rows are written (see write_row()).
|
called and count down from that as rows are written (see write_row()).
|
||||||
|
*/
|
||||||
|
|
||||||
We make one exception, if the *first_value is precomputed by MySQL
|
trx = prebuilt->trx;
|
||||||
we use that value. And set the number of reserved values to 1 if
|
|
||||||
this is the first time we were called for the SQL statement, this
|
|
||||||
will force MySQL to call us for the next value. If we are in the
|
|
||||||
middle of a multi-row insert we preserve the existing counter.*/
|
|
||||||
if (*first_value == 0) {
|
|
||||||
|
|
||||||
/* Called for the first time ? */
|
/* Called for the first time ? */
|
||||||
if (prebuilt->trx->n_autoinc_rows == 0) {
|
if (trx->n_autoinc_rows == 0) {
|
||||||
|
|
||||||
prebuilt->trx->n_autoinc_rows = (ulint) nb_desired_values;
|
trx->n_autoinc_rows = (ulint) nb_desired_values;
|
||||||
|
|
||||||
/* It's possible for nb_desired_values to be 0:
|
/* It's possible for nb_desired_values to be 0:
|
||||||
e.g., INSERT INTO T1(C) SELECT C FROM T2; */
|
e.g., INSERT INTO T1(C) SELECT C FROM T2; */
|
||||||
if (nb_desired_values == 0) {
|
if (nb_desired_values == 0) {
|
||||||
|
|
||||||
++prebuilt->trx->n_autoinc_rows;
|
trx->n_autoinc_rows = 1;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*first_value = autoinc;
|
set_if_bigger(*first_value, autoinc);
|
||||||
|
/* Not in the middle of a mult-row INSERT. */
|
||||||
} else if (prebuilt->trx->n_autoinc_rows == 0) {
|
} else if (prebuilt->last_value == 0) {
|
||||||
|
set_if_bigger(*first_value, autoinc);
|
||||||
prebuilt->trx->n_autoinc_rows = 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ut_a(prebuilt->trx->n_autoinc_rows > 0);
|
*nb_reserved_values = trx->n_autoinc_rows;
|
||||||
|
|
||||||
*nb_reserved_values = prebuilt->trx->n_autoinc_rows;
|
|
||||||
|
|
||||||
/* With old style AUTOINC locking we only update the table's
|
/* With old style AUTOINC locking we only update the table's
|
||||||
AUTOINC counter after attempting to insert the row. */
|
AUTOINC counter after attempting to insert the row. */
|
||||||
@ -7669,12 +7655,10 @@ innobase_xa_prepare(
|
|||||||
/* We just mark the SQL statement ended and do not do a
|
/* We just mark the SQL statement ended and do not do a
|
||||||
transaction prepare */
|
transaction prepare */
|
||||||
|
|
||||||
if (trx->auto_inc_lock) {
|
/* If we had reserved the auto-inc lock for some
|
||||||
/* If we had reserved the auto-inc lock for some
|
table in this SQL statement we release it now */
|
||||||
table in this SQL statement we release it now */
|
|
||||||
|
|
||||||
row_unlock_table_autoinc_for_mysql(trx);
|
row_unlock_table_autoinc_for_mysql(trx);
|
||||||
}
|
|
||||||
|
|
||||||
/* Store the current undo_no of the transaction so that we
|
/* Store the current undo_no of the transaction so that we
|
||||||
know where to roll back if we have to roll back the next
|
know where to roll back if we have to roll back the next
|
||||||
@ -8025,7 +8009,7 @@ static MYSQL_SYSVAR_STR(data_file_path, innobase_data_file_path,
|
|||||||
NULL, NULL, NULL);
|
NULL, NULL, NULL);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_LONG(autoinc_lock_mode, innobase_autoinc_lock_mode,
|
static MYSQL_SYSVAR_LONG(autoinc_lock_mode, innobase_autoinc_lock_mode,
|
||||||
PLUGIN_VAR_RQCMDARG,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"The AUTOINC lock modes supported by InnoDB:\n"
|
"The AUTOINC lock modes supported by InnoDB:\n"
|
||||||
" 0 => Old style AUTOINC locking (for backward compatibility)\n"
|
" 0 => Old style AUTOINC locking (for backward compatibility)\n"
|
||||||
" 1 => New style AUTOINC locking\n"
|
" 1 => New style AUTOINC locking\n"
|
||||||
|
@ -4533,7 +4533,6 @@ row_search_autoinc_read_column(
|
|||||||
ibool unsigned_type) /* in: signed or unsigned flag */
|
ibool unsigned_type) /* in: signed or unsigned flag */
|
||||||
{
|
{
|
||||||
ulint len;
|
ulint len;
|
||||||
byte* ptr;
|
|
||||||
const byte* data;
|
const byte* data;
|
||||||
ib_longlong value;
|
ib_longlong value;
|
||||||
mem_heap_t* heap = NULL;
|
mem_heap_t* heap = NULL;
|
||||||
@ -4555,49 +4554,20 @@ row_search_autoinc_read_column(
|
|||||||
ut_a(len != UNIV_SQL_NULL);
|
ut_a(len != UNIV_SQL_NULL);
|
||||||
ut_a(len <= sizeof value);
|
ut_a(len <= sizeof value);
|
||||||
|
|
||||||
#ifdef WORDS_BIGENDIAN
|
|
||||||
/* Copy integer data and restore sign bit */
|
/* Copy integer data and restore sign bit */
|
||||||
|
if (unsigned_type || (data[0] & 128))
|
||||||
|
memset(dest, 0x00, sizeof(dest));
|
||||||
|
else
|
||||||
|
memset(dest, 0xff, sizeof(dest));
|
||||||
|
|
||||||
memcpy((ptr = dest), data, len);
|
memcpy(dest + (sizeof(value) - len), data, len);
|
||||||
|
|
||||||
if (!unsigned_type) {
|
if (!unsigned_type)
|
||||||
dest[0] ^= 128;
|
dest[sizeof(value) - len] ^= 128;
|
||||||
}
|
|
||||||
#else
|
|
||||||
/* Convert integer data from Innobase to a little-endian format,
|
|
||||||
sign bit restored to normal */
|
|
||||||
|
|
||||||
for (ptr = dest + len; ptr != dest; ++data) {
|
|
||||||
--ptr;
|
|
||||||
*ptr = *data;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!unsigned_type) {
|
|
||||||
dest[len - 1] ^= 128;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/* The assumption here is that the AUTOINC value can't be negative.*/
|
/* The assumption here is that the AUTOINC value can't be negative.*/
|
||||||
switch (len) {
|
value = (((ib_longlong) mach_read_from_4(dest)) << 32) |
|
||||||
case 8:
|
((ib_longlong) mach_read_from_4(dest + 4));
|
||||||
value = *(ib_longlong*) ptr;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 4:
|
|
||||||
value = *(ib_uint32_t*) ptr;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 2:
|
|
||||||
value = *(uint16 *) ptr;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 1:
|
|
||||||
value = *ptr;
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
ut_error;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (UNIV_LIKELY_NULL(heap)) {
|
if (UNIV_LIKELY_NULL(heap)) {
|
||||||
mem_heap_free(heap);
|
mem_heap_free(heap);
|
||||||
|
Reference in New Issue
Block a user