Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
e2ba86fb
Commit
e2ba86fb
authored
Mar 18, 2009
by
Vladislav Vaintroub
Browse files
Options
Browse Files
Download
Plain Diff
merge
parents
41746bb0
0349dabf
Changes
15
Show whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
271 additions
and
21 deletions
+271
-21
configure.in
configure.in
+1
-1
mysql-test/r/archive.result
mysql-test/r/archive.result
+19
-0
mysql-test/std_data/bug32880.ARN
mysql-test/std_data/bug32880.ARN
+0
-0
mysql-test/std_data/bug32880.ARZ
mysql-test/std_data/bug32880.ARZ
+0
-0
mysql-test/std_data/bug32880.frm
mysql-test/std_data/bug32880.frm
+0
-0
mysql-test/suite/funcs_1/r/is_columns_is.result
mysql-test/suite/funcs_1/r/is_columns_is.result
+3
-2
mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result
mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result
+2
-2
mysql-test/suite/funcs_1/r/processlist_val_no_prot.result
mysql-test/suite/funcs_1/r/processlist_val_no_prot.result
+1
-1
mysql-test/suite/rpl/r/rpl_do_grant.result
mysql-test/suite/rpl/r/rpl_do_grant.result
+78
-0
mysql-test/suite/rpl/r/rpl_rotate_logs.result
mysql-test/suite/rpl/r/rpl_rotate_logs.result
+1
-3
mysql-test/suite/rpl/t/rpl_do_grant.test
mysql-test/suite/rpl/t/rpl_do_grant.test
+97
-0
mysql-test/suite/rpl/t/rpl_rotate_logs.test
mysql-test/suite/rpl/t/rpl_rotate_logs.test
+17
-7
mysql-test/t/archive.test
mysql-test/t/archive.test
+15
-0
sql/sql_parse.cc
sql/sql_parse.cc
+35
-1
storage/archive/ha_archive.cc
storage/archive/ha_archive.cc
+2
-4
No files found.
configure.in
View file @
e2ba86fb
...
@@ -10,7 +10,7 @@ AC_CANONICAL_SYSTEM
...
@@ -10,7 +10,7 @@ AC_CANONICAL_SYSTEM
#
#
# When changing major version number please also check switch statement
# When changing major version number please also check switch statement
# in mysqlbinlog::check_master_version().
# in mysqlbinlog::check_master_version().
AM_INIT_AUTOMAKE
(
mysql, 5.1.3
3
)
AM_INIT_AUTOMAKE
(
mysql, 5.1.3
4
)
AM_CONFIG_HEADER
([
include/config.h:config.h.in]
)
AM_CONFIG_HEADER
([
include/config.h:config.h.in]
)
PROTOCOL_VERSION
=
10
PROTOCOL_VERSION
=
10
...
...
mysql-test/r/archive.result
View file @
e2ba86fb
...
@@ -12695,3 +12695,22 @@ a b
...
@@ -12695,3 +12695,22 @@ a b
1 NULL
1 NULL
2 NULL
2 NULL
DROP TABLE t1;
DROP TABLE t1;
#
# BUG#32880 - Repairing Archive table fails with internal error 144
#
# Test with an existing table which is corrupted
# Copy t1 from std_data
SHOW CREATE TABLE t1;
Table Create Table
t1 CREATE TABLE `t1` (
`a` int(11) DEFAULT NULL,
`b` blob
) ENGINE=ARCHIVE DEFAULT CHARSET=latin1
CHECK TABLE t1;
Table Op Msg_type Msg_text
test.t1 check error Corrupt
REPAIR TABLE t1;
Table Op Msg_type Msg_text
test.t1 repair error Corrupt
DROP TABLE t1;
mysql-test/std_data/bug32880.ARN
0 → 100644
View file @
e2ba86fb
File added
mysql-test/std_data/bug32880.ARZ
0 → 100644
View file @
e2ba86fb
File added
mysql-test/std_data/bug32880.frm
0 → 100644
View file @
e2ba86fb
This diff was suppressed by a .gitattributes entry.
mysql-test/suite/funcs_1/r/is_columns_is.result
View file @
e2ba86fb
...
@@ -166,7 +166,7 @@ NULL information_schema PROCESSLIST HOST 3 NO varchar 64 192 NULL NULL utf8 utf
...
@@ -166,7 +166,7 @@ NULL information_schema PROCESSLIST HOST 3 NO varchar 64 192 NULL NULL utf8 utf
NULL information_schema PROCESSLIST ID 1 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
NULL information_schema PROCESSLIST ID 1 0 NO bigint NULL NULL 19 0 NULL NULL bigint(4) select
NULL information_schema PROCESSLIST INFO 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
NULL information_schema PROCESSLIST INFO 8 NULL YES longtext 4294967295 4294967295 NULL NULL utf8 utf8_general_ci longtext select
NULL information_schema PROCESSLIST STATE 7 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
NULL information_schema PROCESSLIST STATE 7 NULL YES varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
NULL information_schema PROCESSLIST TIME 6 0 NO
bigint NULL NULL 19 0 NULL NULL big
int(7) select
NULL information_schema PROCESSLIST TIME 6 0 NO
int NULL NULL 10 0 NULL NULL
int(7) select
NULL information_schema PROCESSLIST USER 2 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
NULL information_schema PROCESSLIST USER 2 NO varchar 16 48 NULL NULL utf8 utf8_general_ci varchar(16) select
NULL information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
NULL information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_CATALOG 1 NULL YES varchar 512 1536 NULL NULL utf8 utf8_general_ci varchar(512) select
NULL information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
NULL information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_NAME 3 NO varchar 64 192 NULL NULL utf8 utf8_general_ci varchar(64) select
...
@@ -340,6 +340,7 @@ ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
...
@@ -340,6 +340,7 @@ ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
NULL bigint NULL NULL
NULL bigint NULL NULL
NULL datetime NULL NULL
NULL datetime NULL NULL
NULL int NULL NULL
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
--> CHAR(0) is allowed (see manual), and here both CHARACHTER_* values
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
--> are 0, which is intended behavior, and the result of 0 / 0 IS NULL
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
SELECT CHARACTER_OCTET_LENGTH / CHARACTER_MAXIMUM_LENGTH AS COL_CML,
...
@@ -519,7 +520,7 @@ NULL information_schema PROCESSLIST ID bigint NULL NULL NULL NULL bigint(4)
...
@@ -519,7 +520,7 @@ NULL information_schema PROCESSLIST ID bigint NULL NULL NULL NULL bigint(4)
3.0000 information_schema PROCESSLIST HOST varchar 64 192 utf8 utf8_general_ci varchar(64)
3.0000 information_schema PROCESSLIST HOST varchar 64 192 utf8 utf8_general_ci varchar(64)
3.0000 information_schema PROCESSLIST DB varchar 64 192 utf8 utf8_general_ci varchar(64)
3.0000 information_schema PROCESSLIST DB varchar 64 192 utf8 utf8_general_ci varchar(64)
3.0000 information_schema PROCESSLIST COMMAND varchar 16 48 utf8 utf8_general_ci varchar(16)
3.0000 information_schema PROCESSLIST COMMAND varchar 16 48 utf8 utf8_general_ci varchar(16)
NULL information_schema PROCESSLIST TIME
bigint NULL NULL NULL NULL big
int(7)
NULL information_schema PROCESSLIST TIME
int NULL NULL NULL NULL
int(7)
3.0000 information_schema PROCESSLIST STATE varchar 64 192 utf8 utf8_general_ci varchar(64)
3.0000 information_schema PROCESSLIST STATE varchar 64 192 utf8 utf8_general_ci varchar(64)
1.0000 information_schema PROCESSLIST INFO longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
1.0000 information_schema PROCESSLIST INFO longtext 4294967295 4294967295 utf8 utf8_general_ci longtext
3.0000 information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
3.0000 information_schema REFERENTIAL_CONSTRAINTS CONSTRAINT_CATALOG varchar 512 1536 utf8 utf8_general_ci varchar(512)
...
...
mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result
View file @
e2ba86fb
...
@@ -27,7 +27,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
...
@@ -27,7 +27,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
`HOST` varchar(64) NOT NULL DEFAULT '',
`HOST` varchar(64) NOT NULL DEFAULT '',
`DB` varchar(64) DEFAULT NULL,
`DB` varchar(64) DEFAULT NULL,
`COMMAND` varchar(16) NOT NULL DEFAULT '',
`COMMAND` varchar(16) NOT NULL DEFAULT '',
`TIME`
big
int(7) NOT NULL DEFAULT '0',
`TIME` int(7) NOT NULL DEFAULT '0',
`STATE` varchar(64) DEFAULT NULL,
`STATE` varchar(64) DEFAULT NULL,
`INFO` longtext
`INFO` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8
) ENGINE=MyISAM DEFAULT CHARSET=utf8
...
@@ -97,7 +97,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
...
@@ -97,7 +97,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
`HOST` varchar(64) NOT NULL DEFAULT '',
`HOST` varchar(64) NOT NULL DEFAULT '',
`DB` varchar(64) DEFAULT NULL,
`DB` varchar(64) DEFAULT NULL,
`COMMAND` varchar(16) NOT NULL DEFAULT '',
`COMMAND` varchar(16) NOT NULL DEFAULT '',
`TIME`
big
int(7) NOT NULL DEFAULT '0',
`TIME` int(7) NOT NULL DEFAULT '0',
`STATE` varchar(64) DEFAULT NULL,
`STATE` varchar(64) DEFAULT NULL,
`INFO` longtext
`INFO` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8
) ENGINE=MyISAM DEFAULT CHARSET=utf8
...
...
mysql-test/suite/funcs_1/r/processlist_val_no_prot.result
View file @
e2ba86fb
...
@@ -17,7 +17,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
...
@@ -17,7 +17,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
`HOST` varchar(64) NOT NULL DEFAULT '',
`HOST` varchar(64) NOT NULL DEFAULT '',
`DB` varchar(64) DEFAULT NULL,
`DB` varchar(64) DEFAULT NULL,
`COMMAND` varchar(16) NOT NULL DEFAULT '',
`COMMAND` varchar(16) NOT NULL DEFAULT '',
`TIME`
big
int(7) NOT NULL DEFAULT '0',
`TIME` int(7) NOT NULL DEFAULT '0',
`STATE` varchar(64) DEFAULT NULL,
`STATE` varchar(64) DEFAULT NULL,
`INFO` longtext
`INFO` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8
) ENGINE=MyISAM DEFAULT CHARSET=utf8
...
...
mysql-test/suite/rpl/r/rpl_do_grant.result
View file @
e2ba86fb
...
@@ -89,3 +89,81 @@ show grants for rpl_do_grant2@localhost;
...
@@ -89,3 +89,81 @@ show grants for rpl_do_grant2@localhost;
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
show grants for rpl_do_grant2@localhost;
show grants for rpl_do_grant2@localhost;
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
ERROR 42000: There is no such grant defined for user 'rpl_do_grant2' on host 'localhost'
DROP DATABASE IF EXISTS bug42217_db;
CREATE DATABASE bug42217_db;
GRANT CREATE ROUTINE ON bug42217_db.* TO 'create_rout_db'@'localhost'
IDENTIFIED BY 'create_rout_db' WITH GRANT OPTION;
USE bug42217_db;
CREATE FUNCTION upgrade_del_func() RETURNS CHAR(30)
BEGIN
RETURN "INSIDE upgrade_del_func()";
END//
USE bug42217_db;
SELECT * FROM mysql.procs_priv;
Host Db User Routine_name Routine_type Grantor Proc_priv Timestamp
localhost bug42217_db create_rout_db upgrade_del_func FUNCTION create_rout_db@localhost Execute,Alter Routine #
SELECT upgrade_del_func();
upgrade_del_func()
INSIDE upgrade_del_func()
SELECT * FROM mysql.procs_priv;
Host Db User Routine_name Routine_type Grantor Proc_priv Timestamp
localhost bug42217_db create_rout_db upgrade_del_func FUNCTION create_rout_db@localhost Execute,Alter Routine #
SHOW GRANTS FOR 'create_rout_db'@'localhost';
Grants for create_rout_db@localhost
GRANT USAGE ON *.* TO 'create_rout_db'@'localhost' IDENTIFIED BY PASSWORD '*08792480350CBA057BDE781B9DF183B263934601'
GRANT CREATE ROUTINE ON `bug42217_db`.* TO 'create_rout_db'@'localhost' WITH GRANT OPTION
GRANT EXECUTE, ALTER ROUTINE ON FUNCTION `bug42217_db`.`upgrade_del_func` TO 'create_rout_db'@'localhost'
USE bug42217_db;
SHOW CREATE FUNCTION upgrade_del_func;
Function sql_mode Create Function character_set_client collation_connection Database Collation
upgrade_del_func CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_del_func`() RETURNS char(30) CHARSET latin1
BEGIN
RETURN "INSIDE upgrade_del_func()";
END latin1 latin1_swedish_ci latin1_swedish_ci
SELECT upgrade_del_func();
upgrade_del_func()
INSIDE upgrade_del_func()
"Check whether the definer user will be able to execute the replicated routine on slave"
USE bug42217_db;
SHOW CREATE FUNCTION upgrade_del_func;
Function sql_mode Create Function character_set_client collation_connection Database Collation
upgrade_del_func CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_del_func`() RETURNS char(30) CHARSET latin1
BEGIN
RETURN "INSIDE upgrade_del_func()";
END latin1 latin1_swedish_ci latin1_swedish_ci
SELECT upgrade_del_func();
upgrade_del_func()
INSIDE upgrade_del_func()
DELETE FROM mysql.procs_priv;
FLUSH PRIVILEGES;
USE bug42217_db;
"Can't execute the replicated routine on slave like before after procs privilege is deleted "
SELECT upgrade_del_func();
ERROR 42000: execute command denied to user 'create_rout_db'@'localhost' for routine 'bug42217_db.upgrade_del_func'
"Test the user who creates a function on master doesn't exist on slave."
"Hence SQL thread ACL_GLOBAL privilege jumps in and no mysql.procs_priv is inserted"
DROP USER 'create_rout_db'@'localhost';
CREATE FUNCTION upgrade_alter_func() RETURNS CHAR(30)
BEGIN
RETURN "INSIDE upgrade_alter_func()";
END//
SELECT upgrade_alter_func();
upgrade_alter_func()
INSIDE upgrade_alter_func()
SHOW CREATE FUNCTION upgrade_alter_func;
Function sql_mode Create Function character_set_client collation_connection Database Collation
upgrade_alter_func CREATE DEFINER=`create_rout_db`@`localhost` FUNCTION `upgrade_alter_func`() RETURNS char(30) CHARSET latin1
BEGIN
RETURN "INSIDE upgrade_alter_func()";
END latin1 latin1_swedish_ci latin1_swedish_ci
"Should no privilege record for upgrade_alter_func in mysql.procs_priv"
SELECT * FROM mysql.procs_priv;
Host Db User Routine_name Routine_type Grantor Proc_priv Timestamp
SELECT upgrade_alter_func();
ERROR HY000: The user specified as a definer ('create_rout_db'@'localhost') does not exist
USE bug42217_db;
DROP FUNCTION upgrade_del_func;
DROP FUNCTION upgrade_alter_func;
DROP DATABASE bug42217_db;
DROP USER 'create_rout_db'@'localhost';
"End of test"
mysql-test/suite/rpl/r/rpl_rotate_logs.result
View file @
e2ba86fb
...
@@ -87,9 +87,7 @@ show binary logs;
...
@@ -87,9 +87,7 @@ show binary logs;
Log_name File_size
Log_name File_size
master-bin.000002 #
master-bin.000002 #
master-bin.000003 #
master-bin.000003 #
select @time_for_purge:=DATE_ADD(UPDATE_TIME, INTERVAL 1 SECOND)
SELECT @time_for_purge:=DATE_ADD('tmpval', INTERVAL 1 SECOND);
from information_schema.tables
where TABLE_SCHEMA="test" and TABLE_NAME="t2";
purge master logs before (@time_for_purge);
purge master logs before (@time_for_purge);
show binary logs;
show binary logs;
Log_name File_size
Log_name File_size
...
...
mysql-test/suite/rpl/t/rpl_do_grant.test
View file @
e2ba86fb
...
@@ -112,3 +112,100 @@ show grants for rpl_do_grant2@localhost;
...
@@ -112,3 +112,100 @@ show grants for rpl_do_grant2@localhost;
sync_slave_with_master
;
sync_slave_with_master
;
--
error
1141
--
error
1141
show
grants
for
rpl_do_grant2
@
localhost
;
show
grants
for
rpl_do_grant2
@
localhost
;
#####################################################
# Purpose
# Test whether mysql.procs_priv get replicated
# Related bugs:
# BUG42217 mysql.procs_priv does not get replicated
#####################################################
connection
master
;
--
disable_warnings
DROP
DATABASE
IF
EXISTS
bug42217_db
;
--
enable_warnings
CREATE
DATABASE
bug42217_db
;
GRANT
CREATE
ROUTINE
ON
bug42217_db
.*
TO
'create_rout_db'
@
'localhost'
IDENTIFIED
BY
'create_rout_db'
WITH
GRANT
OPTION
;
connect
(
create_rout_db_master
,
localhost
,
create_rout_db
,
create_rout_db
,
bug42217_db
,
$MASTER_MYPORT
,);
connect
(
create_rout_db_slave
,
localhost
,
create_rout_db
,
create_rout_db
,
bug42217_db
,
$SLAVE_MYPORT
,);
connection
create_rout_db_master
;
USE
bug42217_db
;
DELIMITER
//;
CREATE
FUNCTION
upgrade_del_func
()
RETURNS
CHAR
(
30
)
BEGIN
RETURN
"INSIDE upgrade_del_func()"
;
END
//
DELIMITER
;
//
connection
master
;
USE
bug42217_db
;
--
replace_column
8
#
SELECT
*
FROM
mysql
.
procs_priv
;
SELECT
upgrade_del_func
();
sync_slave_with_master
;
--
replace_column
8
#
SELECT
*
FROM
mysql
.
procs_priv
;
SHOW
GRANTS
FOR
'create_rout_db'
@
'localhost'
;
USE
bug42217_db
;
SHOW
CREATE
FUNCTION
upgrade_del_func
;
SELECT
upgrade_del_func
();
--
echo
"Check whether the definer user will be able to execute the replicated routine on slave"
connection
create_rout_db_slave
;
USE
bug42217_db
;
SHOW
CREATE
FUNCTION
upgrade_del_func
;
SELECT
upgrade_del_func
();
connection
slave
;
DELETE
FROM
mysql
.
procs_priv
;
FLUSH
PRIVILEGES
;
USE
bug42217_db
;
--
echo
"Can't execute the replicated routine on slave like before after procs privilege is deleted "
--
error
1370
SELECT
upgrade_del_func
();
--
echo
"Test the user who creates a function on master doesn't exist on slave."
--
echo
"Hence SQL thread ACL_GLOBAL privilege jumps in and no mysql.procs_priv is inserted"
DROP
USER
'create_rout_db'
@
'localhost'
;
connection
create_rout_db_master
;
DELIMITER
//;
CREATE
FUNCTION
upgrade_alter_func
()
RETURNS
CHAR
(
30
)
BEGIN
RETURN
"INSIDE upgrade_alter_func()"
;
END
//
DELIMITER
;
//
connection
master
;
SELECT
upgrade_alter_func
();
sync_slave_with_master
;
SHOW
CREATE
FUNCTION
upgrade_alter_func
;
--
echo
"Should no privilege record for upgrade_alter_func in mysql.procs_priv"
--
replace_column
8
#
SELECT
*
FROM
mysql
.
procs_priv
;
--
error
1449
SELECT
upgrade_alter_func
();
###### CLEAN UP SECTION ##############
disconnect
create_rout_db_master
;
disconnect
create_rout_db_slave
;
connection
master
;
USE
bug42217_db
;
DROP
FUNCTION
upgrade_del_func
;
DROP
FUNCTION
upgrade_alter_func
;
DROP
DATABASE
bug42217_db
;
DROP
USER
'create_rout_db'
@
'localhost'
;
--
echo
"End of test"
mysql-test/suite/rpl/t/rpl_rotate_logs.test
View file @
e2ba86fb
...
@@ -112,14 +112,24 @@ source include/show_master_logs.inc;
...
@@ -112,14 +112,24 @@ source include/show_master_logs.inc;
purge
binary
logs
to
'master-bin.000002'
;
purge
binary
logs
to
'master-bin.000002'
;
source
include
/
show_binary_logs
.
inc
;
source
include
/
show_binary_logs
.
inc
;
# Calculate time to use in "purge master logs before" by taking
# Set the purge time 1 second after the last modify time of master-bin.000002.
# last modification time of t2 and adding 1 second
perl
;
# This is donw in order to handle the case where file system
open
F
,
">>"
.
$ENV
{
'MYSQLTEST_VARDIR'
}
.
'/tmp/rpl_rotate_logs.tmp'
or
die
"Tmp file rpl_rotate_logs.tmp not found"
;
# time differs from mysqld's time
my
$binlogpath
=
$ENV
{
'MYSQLTEST_VARDIR'
}
.
'/mysqld.1/data/master-bin.000002'
;
my
@
array
=
stat
(
$binlogpath
);
my
$filemodifytime
=
$array
[
9
];
my
@
t
=
localtime
$filemodifytime
;
my
$modifytime
=
sprintf
"%04u-%02u-%02u %02u:%02u:%02u"
,
$t
[
5
]
+
1900
,
$t
[
4
]
+
1
,
$t
[
3
],
$t
[
2
],
$t
[
1
],
$t
[
0
];
printf
F
(
"let
\$
tmpval = %s;"
,
$modifytime
);
close
F
;
EOF
--
source
$MYSQLTEST_VARDIR
/
tmp
/
rpl_rotate_logs
.
tmp
remove_file
$MYSQLTEST_VARDIR
/
tmp
/
rpl_rotate_logs
.
tmp
;
--
disable_result_log
--
disable_result_log
select
@
time_for_purge
:=
DATE_ADD
(
UPDATE_TIME
,
INTERVAL
1
SECOND
)
--
replace_result
$tmpval
tmpval
from
information_schema
.
tables
--
eval
SELECT
@
time_for_purge
:=
DATE_ADD
(
'$tmpval'
,
INTERVAL
1
SECOND
)
where
TABLE_SCHEMA
=
"test"
and
TABLE_NAME
=
"t2"
;
--
enable_result_log
--
enable_result_log
purge
master
logs
before
(
@
time_for_purge
);
purge
master
logs
before
(
@
time_for_purge
);
...
...
mysql-test/t/archive.test
View file @
e2ba86fb
...
@@ -1599,3 +1599,18 @@ INSERT INTO t1 VALUES (NULL, NULL),(NULL, NULL);
...
@@ -1599,3 +1599,18 @@ INSERT INTO t1 VALUES (NULL, NULL),(NULL, NULL);
FLUSH
TABLE
t1
;
FLUSH
TABLE
t1
;
SELECT
*
FROM
t1
ORDER
BY
a
;
SELECT
*
FROM
t1
ORDER
BY
a
;
DROP
TABLE
t1
;
DROP
TABLE
t1
;
--
echo
#
--
echo
# BUG#32880 - Repairing Archive table fails with internal error 144
--
echo
#
--
echo
--
echo
# Test with an existing table which is corrupted
--
echo
# Copy t1 from std_data
let
$MYSQLD_DATADIR
=
`select @@datadir`
;
copy_file
std_data
/
bug32880
.
frm
$MYSQLD_DATADIR
/
test
/
t1
.
frm
;
copy_file
std_data
/
bug32880
.
ARZ
$MYSQLD_DATADIR
/
test
/
t1
.
ARZ
;
copy_file
std_data
/
bug32880
.
ARN
$MYSQLD_DATADIR
/
test
/
t1
.
ARN
;
SHOW
CREATE
TABLE
t1
;
CHECK
TABLE
t1
;
REPAIR
TABLE
t1
;
DROP
TABLE
t1
;
sql/sql_parse.cc
View file @
e2ba86fb
...
@@ -4129,9 +4129,32 @@ mysql_execute_command(THD *thd)
...
@@ -4129,9 +4129,32 @@ mysql_execute_command(THD *thd)
res
=
(
sp_result
=
lex
->
sphead
->
create
(
thd
));
res
=
(
sp_result
=
lex
->
sphead
->
create
(
thd
));
switch
(
sp_result
)
{
switch
(
sp_result
)
{
case
SP_OK
:
case
SP_OK
:
{
#ifndef NO_EMBEDDED_ACCESS_CHECKS
#ifndef NO_EMBEDDED_ACCESS_CHECKS
/* only add privileges if really neccessary */
/* only add privileges if really neccessary */
Security_context
security_context
;
bool
restore_backup_context
=
false
;
Security_context
*
backup
=
NULL
;
LEX_USER
*
definer
=
thd
->
lex
->
definer
;
/*
Check if the definer exists on slave,
then use definer privilege to insert routine privileges to mysql.procs_priv.
For current user of SQL thread has GLOBAL_ACL privilege,
which doesn't any check routine privileges,
so no routine privilege record will insert into mysql.procs_priv.
*/
if
(
thd
->
slave_thread
&&
is_acl_user
(
definer
->
host
.
str
,
definer
->
user
.
str
))
{
security_context
.
change_security_context
(
thd
,
&
thd
->
lex
->
definer
->
user
,
&
thd
->
lex
->
definer
->
host
,
&
thd
->
lex
->
sphead
->
m_db
,
&
backup
);
restore_backup_context
=
true
;
}
if
(
sp_automatic_privileges
&&
!
opt_noacl
&&
if
(
sp_automatic_privileges
&&
!
opt_noacl
&&
check_routine_access
(
thd
,
DEFAULT_CREATE_PROC_ACLS
,
check_routine_access
(
thd
,
DEFAULT_CREATE_PROC_ACLS
,
lex
->
sphead
->
m_db
.
str
,
name
,
lex
->
sphead
->
m_db
.
str
,
name
,
...
@@ -4143,8 +4166,19 @@ mysql_execute_command(THD *thd)
...
@@ -4143,8 +4166,19 @@ mysql_execute_command(THD *thd)
ER_PROC_AUTO_GRANT_FAIL
,
ER_PROC_AUTO_GRANT_FAIL
,
ER
(
ER_PROC_AUTO_GRANT_FAIL
));
ER
(
ER_PROC_AUTO_GRANT_FAIL
));
}
}
/*
Restore current user with GLOBAL_ACL privilege of SQL thread
*/
if
(
restore_backup_context
)
{
DBUG_ASSERT
(
thd
->
slave_thread
==
1
);
thd
->
security_ctx
->
restore_security_context
(
thd
,
backup
);
}
#endif
#endif
break
;
break
;
}
case
SP_WRITE_ROW_FAILED
:
case
SP_WRITE_ROW_FAILED
:
my_error
(
ER_SP_ALREADY_EXISTS
,
MYF
(
0
),
SP_TYPE_STRING
(
lex
),
name
);
my_error
(
ER_SP_ALREADY_EXISTS
,
MYF
(
0
),
SP_TYPE_STRING
(
lex
),
name
);
break
;
break
;
...
...
storage/archive/ha_archive.cc
View file @
e2ba86fb
...
@@ -1076,11 +1076,9 @@ int ha_archive::unpack_row(azio_stream *file_to_read, uchar *record)
...
@@ -1076,11 +1076,9 @@ int ha_archive::unpack_row(azio_stream *file_to_read, uchar *record)
read
=
azread
(
file_to_read
,
record_buffer
->
buffer
,
row_len
,
&
error
);
read
=
azread
(
file_to_read
,
record_buffer
->
buffer
,
row_len
,
&
error
);
DBUG_ASSERT
(
row_len
==
read
);
if
(
read
!=
row_len
||
error
)
if
(
read
!=
row_len
||
error
)
{
{
DBUG_RETURN
(
-
1
);
DBUG_RETURN
(
HA_ERR_CRASHED_ON_USAGE
);
}
}
/* Copy null bits */
/* Copy null bits */
...
@@ -1257,7 +1255,7 @@ int ha_archive::repair(THD* thd, HA_CHECK_OPT* check_opt)
...
@@ -1257,7 +1255,7 @@ int ha_archive::repair(THD* thd, HA_CHECK_OPT* check_opt)
int
rc
=
optimize
(
thd
,
check_opt
);
int
rc
=
optimize
(
thd
,
check_opt
);
if
(
rc
)
if
(
rc
)
DBUG_RETURN
(
HA_
ERR_CRASHED_ON_REPAIR
);
DBUG_RETURN
(
HA_
ADMIN_CORRUPT
);
share
->
crashed
=
FALSE
;
share
->
crashed
=
FALSE
;
DBUG_RETURN
(
0
);
DBUG_RETURN
(
0
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment