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
c7505147
Commit
c7505147
authored
Mar 18, 2009
by
Horst Hunger
Browse files
Options
Browse Files
Download
Plain Diff
due to merge (pull)
parents
09c1a26b
f060a5fc
Changes
24
Hide whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
300 additions
and
33 deletions
+300
-33
configure.in
configure.in
+1
-1
libmysqld/CMakeLists.txt
libmysqld/CMakeLists.txt
+1
-1
libmysqld/examples/CMakeLists.txt
libmysqld/examples/CMakeLists.txt
+3
-3
mysql-test/r/archive.result
mysql-test/r/archive.result
+19
-0
mysql-test/r/create.result
mysql-test/r/create.result
+2
-2
mysql-test/r/information_schema.result
mysql-test/r/information_schema.result
+5
-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
mysql-test/t/information_schema.test
mysql-test/t/information_schema.test
+9
-0
mysys/my_getopt.c
mysys/my_getopt.c
+1
-1
sql/sql_parse.cc
sql/sql_parse.cc
+35
-1
sql/sql_select.cc
sql/sql_select.cc
+1
-0
sql/sql_show.cc
sql/sql_show.cc
+6
-5
sql/table.cc
sql/table.cc
+1
-0
storage/archive/ha_archive.cc
storage/archive/ha_archive.cc
+2
-4
No files found.
configure.in
View file @
c7505147
...
...
@@ -10,7 +10,7 @@ AC_CANONICAL_SYSTEM
#
# When changing major version number please also check switch statement
# 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]
)
PROTOCOL_VERSION
=
10
...
...
libmysqld/CMakeLists.txt
View file @
c7505147
...
...
@@ -201,6 +201,6 @@ ADD_LIBRARY(mysqlserver STATIC ${LIBMYSQLD_SOURCES})
ADD_DEPENDENCIES
(
mysqlserver GenServerSource GenError
)
TARGET_LINK_LIBRARIES
(
mysqlserver
)
ADD_LIBRARY
(
libmysqld
MODULE
cmake_dummy.c libmysqld.def
)
ADD_LIBRARY
(
libmysqld
SHARED
cmake_dummy.c libmysqld.def
)
ADD_DEPENDENCIES
(
libmysqld mysqlserver
)
TARGET_LINK_LIBRARIES
(
libmysqld mysqlserver wsock32
)
libmysqld/examples/CMakeLists.txt
View file @
c7505147
...
...
@@ -30,12 +30,12 @@ ADD_EXECUTABLE(mysql_embedded ../../client/completion_hash.cc
../../client/mysql.cc ../../client/readline.cc
../../client/sql_string.cc
)
TARGET_LINK_LIBRARIES
(
mysql_embedded debug dbug strings mysys vio yassl taocrypt regex ws2_32
)
ADD_DEPENDENC
IES
(
mysql_embedded libmysqld
)
TARGET_LINK_LIBRAR
IES
(
mysql_embedded libmysqld
)
ADD_EXECUTABLE
(
mysqltest_embedded ../../client/mysqltest.cc
)
TARGET_LINK_LIBRARIES
(
mysqltest_embedded debug dbug strings mysys vio yassl taocrypt regex ws2_32
)
ADD_DEPENDENC
IES
(
mysqltest_embedded libmysqld
)
TARGET_LINK_LIBRAR
IES
(
mysqltest_embedded libmysqld
)
ADD_EXECUTABLE
(
mysql_client_test_embedded ../../tests/mysql_client_test.c
)
TARGET_LINK_LIBRARIES
(
mysql_client_test_embedded debug dbug strings mysys vio yassl taocrypt regex ws2_32
)
ADD_DEPENDENC
IES
(
mysql_client_test_embedded libmysqld
)
TARGET_LINK_LIBRAR
IES
(
mysql_client_test_embedded libmysqld
)
mysql-test/r/archive.result
View file @
c7505147
...
...
@@ -12695,3 +12695,22 @@ a b
1 NULL
2 NULL
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/r/create.result
View file @
c7505147
...
...
@@ -1731,7 +1731,7 @@ t1 CREATE TABLE `t1` (
`HOST` varchar(64) NOT NULL DEFAULT '',
`DB` varchar(64) DEFAULT NULL,
`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,
`INFO` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8
...
...
@@ -1745,7 +1745,7 @@ t1 CREATE TEMPORARY TABLE `t1` (
`HOST` varchar(64) NOT NULL DEFAULT '',
`DB` varchar(64) DEFAULT NULL,
`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,
`INFO` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8
...
...
mysql-test/r/information_schema.result
View file @
c7505147
...
...
@@ -1720,4 +1720,9 @@ SELECT CREATE_OPTIONS FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME='t1';
CREATE_OPTIONS
KEY_BLOCK_SIZE=1
DROP TABLE t1;
SET TIMESTAMP=@@TIMESTAMP + 10000000;
SELECT 'OK' AS TEST_RESULT FROM INFORMATION_SCHEMA.PROCESSLIST WHERE time < 0;
TEST_RESULT
OK
SET TIMESTAMP=DEFAULT;
End of 5.1 tests.
mysql-test/std_data/bug32880.ARN
0 → 100644
View file @
c7505147
File added
mysql-test/std_data/bug32880.ARZ
0 → 100644
View file @
c7505147
File added
mysql-test/std_data/bug32880.frm
0 → 100644
View file @
c7505147
This diff was suppressed by a .gitattributes entry.
mysql-test/suite/funcs_1/r/is_columns_is.result
View file @
c7505147
...
...
@@ -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 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 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 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
...
...
@@ -340,6 +340,7 @@ ORDER BY CHARACTER_SET_NAME, COLLATION_NAME, COL_CML;
COL_CML DATA_TYPE CHARACTER_SET_NAME COLLATION_NAME
NULL bigint NULL NULL
NULL datetime NULL NULL
NULL int NULL NULL
--> 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
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)
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 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)
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)
...
...
mysql-test/suite/funcs_1/r/processlist_priv_no_prot.result
View file @
c7505147
...
...
@@ -27,7 +27,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
`HOST` varchar(64) NOT NULL DEFAULT '',
`DB` varchar(64) DEFAULT NULL,
`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,
`INFO` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8
...
...
@@ -97,7 +97,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
`HOST` varchar(64) NOT NULL DEFAULT '',
`DB` varchar(64) DEFAULT NULL,
`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,
`INFO` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8
...
...
mysql-test/suite/funcs_1/r/processlist_val_no_prot.result
View file @
c7505147
...
...
@@ -17,7 +17,7 @@ PROCESSLIST CREATE TEMPORARY TABLE `PROCESSLIST` (
`HOST` varchar(64) NOT NULL DEFAULT '',
`DB` varchar(64) DEFAULT NULL,
`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,
`INFO` longtext
) ENGINE=MyISAM DEFAULT CHARSET=utf8
...
...
mysql-test/suite/rpl/r/rpl_do_grant.result
View file @
c7505147
...
...
@@ -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'
show grants for rpl_do_grant2@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 @
c7505147
...
...
@@ -87,9 +87,7 @@ show binary logs;
Log_name File_size
master-bin.000002 #
master-bin.000003 #
select @time_for_purge:=DATE_ADD(UPDATE_TIME, INTERVAL 1 SECOND)
from information_schema.tables
where TABLE_SCHEMA="test" and TABLE_NAME="t2";
SELECT @time_for_purge:=DATE_ADD('tmpval', INTERVAL 1 SECOND);
purge master logs before (@time_for_purge);
show binary logs;
Log_name File_size
...
...
mysql-test/suite/rpl/t/rpl_do_grant.test
View file @
c7505147
...
...
@@ -112,3 +112,100 @@ show grants for rpl_do_grant2@localhost;
sync_slave_with_master
;
--
error
1141
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 @
c7505147
...
...
@@ -112,14 +112,24 @@ source include/show_master_logs.inc;
purge
binary
logs
to
'master-bin.000002'
;
source
include
/
show_binary_logs
.
inc
;
# Calculate time to use in "purge master logs before" by taking
# last modification time of t2 and adding 1 second
# This is donw in order to handle the case where file system
# time differs from mysqld's time
# Set the purge time 1 second after the last modify time of master-bin.000002.
perl
;
open
F
,
">>"
.
$ENV
{
'MYSQLTEST_VARDIR'
}
.
'/tmp/rpl_rotate_logs.tmp'
or
die
"Tmp file rpl_rotate_logs.tmp not found"
;
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
select
@
time_for_purge
:=
DATE_ADD
(
UPDATE_TIME
,
INTERVAL
1
SECOND
)
from
information_schema
.
tables
where
TABLE_SCHEMA
=
"test"
and
TABLE_NAME
=
"t2"
;
--
replace_result
$tmpval
tmpval
--
eval
SELECT
@
time_for_purge
:=
DATE_ADD
(
'$tmpval'
,
INTERVAL
1
SECOND
)
--
enable_result_log
purge
master
logs
before
(
@
time_for_purge
);
...
...
mysql-test/t/archive.test
View file @
c7505147
...
...
@@ -1599,3 +1599,18 @@ INSERT INTO t1 VALUES (NULL, NULL),(NULL, NULL);
FLUSH
TABLE
t1
;
SELECT
*
FROM
t1
ORDER
BY
a
;
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
;
mysql-test/t/information_schema.test
View file @
c7505147
...
...
@@ -1410,6 +1410,15 @@ CREATE TABLE t1(a INT) KEY_BLOCK_SIZE=1;
SELECT
CREATE_OPTIONS
FROM
INFORMATION_SCHEMA
.
TABLES
WHERE
TABLE_NAME
=
't1'
;
DROP
TABLE
t1
;
#
# Bug #22047: Time in SHOW PROCESSLIST for SQL thread in replication seems
# to become negative
#
SET
TIMESTAMP
=@@
TIMESTAMP
+
10000000
;
SELECT
'OK'
AS
TEST_RESULT
FROM
INFORMATION_SCHEMA
.
PROCESSLIST
WHERE
time
<
0
;
SET
TIMESTAMP
=
DEFAULT
;
--
echo
End
of
5.1
tests
.
# Wait till all disconnects are completed
...
...
mysys/my_getopt.c
View file @
c7505147
...
...
@@ -918,7 +918,7 @@ ulonglong getopt_ull_limit_value(ulonglong num, const struct my_option *optp,
if
(
num
<
(
ulonglong
)
optp
->
min_value
)
{
num
=
(
ulonglong
)
optp
->
min_value
;
if
(
old
<
optp
->
min_value
)
if
(
old
<
(
ulonglong
)
optp
->
min_value
)
adjusted
=
TRUE
;
}
...
...
sql/sql_parse.cc
View file @
c7505147
...
...
@@ -4129,9 +4129,32 @@ mysql_execute_command(THD *thd)
res
=
(
sp_result
=
lex
->
sphead
->
create
(
thd
));
switch
(
sp_result
)
{
case
SP_OK
:
case
SP_OK
:
{
#ifndef NO_EMBEDDED_ACCESS_CHECKS
/* 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
&&
check_routine_access
(
thd
,
DEFAULT_CREATE_PROC_ACLS
,
lex
->
sphead
->
m_db
.
str
,
name
,
...
...
@@ -4143,8 +4166,19 @@ mysql_execute_command(THD *thd)
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
break
;
}
case
SP_WRITE_ROW_FAILED
:
my_error
(
ER_SP_ALREADY_EXISTS
,
MYF
(
0
),
SP_TYPE_STRING
(
lex
),
name
);
break
;
...
...
sql/sql_select.cc
View file @
c7505147
...
...
@@ -9797,6 +9797,7 @@ create_tmp_table(THD *thd,TMP_TABLE_PARAM *param,List<Item> &fields,
table
->
in_use
=
thd
;
table
->
quick_keys
.
init
();
table
->
covering_keys
.
init
();
table
->
merge_keys
.
init
();
table
->
keys_in_use_for_query
.
init
();
table
->
s
=
share
;
...
...
sql/sql_show.cc
View file @
c7505147
...
...
@@ -1704,7 +1704,8 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
field_list
.
push_back
(
field
=
new
Item_empty_string
(
"db"
,
NAME_CHAR_LEN
));
field
->
maybe_null
=
1
;
field_list
.
push_back
(
new
Item_empty_string
(
"Command"
,
16
));
field_list
.
push_back
(
new
Item_return_int
(
"Time"
,
7
,
MYSQL_TYPE_LONG
));
field_list
.
push_back
(
field
=
new
Item_return_int
(
"Time"
,
7
,
MYSQL_TYPE_LONG
));
field
->
unsigned_flag
=
0
;
field_list
.
push_back
(
field
=
new
Item_empty_string
(
"State"
,
30
));
field
->
maybe_null
=
1
;
field_list
.
push_back
(
field
=
new
Item_empty_string
(
"Info"
,
max_query_length
));
...
...
@@ -1797,7 +1798,7 @@ void mysqld_list_processes(THD *thd,const char *user, bool verbose)
else
protocol
->
store
(
command_name
[
thd_info
->
command
].
str
,
system_charset_info
);
if
(
thd_info
->
start_time
)
protocol
->
store
((
uint32
)
(
now
-
thd_info
->
start_time
));
protocol
->
store
_long
((
longlong
)
(
now
-
thd_info
->
start_time
));
else
protocol
->
store_null
();
protocol
->
store
(
thd_info
->
state_info
,
system_charset_info
);
...
...
@@ -1872,8 +1873,8 @@ int fill_schema_processlist(THD* thd, TABLE_LIST* tables, COND* cond)
table
->
field
[
4
]
->
store
(
command_name
[
tmp
->
command
].
str
,
command_name
[
tmp
->
command
].
length
,
cs
);
/* MYSQL_TIME */
table
->
field
[
5
]
->
store
((
uint32
)(
tmp
->
start_time
?
now
-
tmp
->
start_time
:
0
),
TRU
E
);
table
->
field
[
5
]
->
store
((
longlong
)(
tmp
->
start_time
?
now
-
tmp
->
start_time
:
0
),
FALS
E
);
/* STATE */
#ifndef EMBEDDED_LIBRARY
val
=
(
char
*
)
(
tmp
->
locked
?
"Locked"
:
...
...
@@ -6558,7 +6559,7 @@ ST_FIELD_INFO processlist_fields_info[]=
SKIP_OPEN_TABLE
},
{
"DB"
,
NAME_CHAR_LEN
,
MYSQL_TYPE_STRING
,
0
,
1
,
"Db"
,
SKIP_OPEN_TABLE
},
{
"COMMAND"
,
16
,
MYSQL_TYPE_STRING
,
0
,
0
,
"Command"
,
SKIP_OPEN_TABLE
},
{
"TIME"
,
7
,
MYSQL_TYPE_LONG
LONG
,
0
,
0
,
"Time"
,
SKIP_OPEN_TABLE
},
{
"TIME"
,
7
,
MYSQL_TYPE_LONG
,
0
,
0
,
"Time"
,
SKIP_OPEN_TABLE
},
{
"STATE"
,
64
,
MYSQL_TYPE_STRING
,
0
,
1
,
"State"
,
SKIP_OPEN_TABLE
},
{
"INFO"
,
PROCESS_LIST_INFO_WIDTH
,
MYSQL_TYPE_STRING
,
0
,
1
,
"Info"
,
SKIP_OPEN_TABLE
},
...
...
sql/table.cc
View file @
c7505147
...
...
@@ -1652,6 +1652,7 @@ int open_table_from_share(THD *thd, TABLE_SHARE *share, const char *alias,
goto
err
;
outparam
->
quick_keys
.
init
();
outparam
->
covering_keys
.
init
();
outparam
->
merge_keys
.
init
();
outparam
->
keys_in_use_for_query
.
init
();
/* Allocate handler */
...
...
storage/archive/ha_archive.cc
View file @
c7505147
...
...
@@ -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
);
DBUG_ASSERT
(
row_len
==
read
);
if
(
read
!=
row_len
||
error
)
{
DBUG_RETURN
(
-
1
);
DBUG_RETURN
(
HA_ERR_CRASHED_ON_USAGE
);
}
/* Copy null bits */
...
...
@@ -1257,7 +1255,7 @@ int ha_archive::repair(THD* thd, HA_CHECK_OPT* check_opt)
int
rc
=
optimize
(
thd
,
check_opt
);
if
(
rc
)
DBUG_RETURN
(
HA_
ERR_CRASHED_ON_REPAIR
);
DBUG_RETURN
(
HA_
ADMIN_CORRUPT
);
share
->
crashed
=
FALSE
;
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