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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
52698263
Commit
52698263
authored
Oct 13, 2005
by
konstantin@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/opt/local/work/mysql-5.0-12736
parents
f6899b07
77430169
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
589 additions
and
1 deletion
+589
-1
mysql-test/r/cast.result
mysql-test/r/cast.result
+3
-0
mysql-test/r/func_crypt.result
mysql-test/r/func_crypt.result
+3
-0
mysql-test/r/rpl_ddl.result
mysql-test/r/rpl_ddl.result
+434
-0
mysql-test/t/cast.test
mysql-test/t/cast.test
+5
-0
mysql-test/t/func_crypt.test
mysql-test/t/func_crypt.test
+6
-0
mysql-test/t/kill.test
mysql-test/t/kill.test
+1
-0
mysql-test/t/rpl_ddl.test
mysql-test/t/rpl_ddl.test
+107
-0
sql/item.h
sql/item.h
+8
-0
sql/item_strfunc.cc
sql/item_strfunc.cc
+7
-1
sql/sql_parse.cc
sql/sql_parse.cc
+15
-0
No files found.
mysql-test/r/cast.result
View file @
52698263
...
...
@@ -367,3 +367,6 @@ DROP TABLE t1;
select cast(NULL as decimal(6)) as t1;
t1
NULL
select cast(1.0e+300 as signed int);
cast(1.0e+300 as signed int)
9223372036854775807
mysql-test/r/func_crypt.result
View file @
52698263
...
...
@@ -92,3 +92,6 @@ id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL No tables used
Warnings:
Note 1003 select password(_latin1'idkfa ') AS `password('idkfa ')`,old_password(_latin1'idkfa') AS `old_password('idkfa')`
select encrypt('1234','_.');
encrypt('1234','_.')
#
mysql-test/r/rpl_ddl.result
View file @
52698263
...
...
@@ -1254,6 +1254,440 @@ flush logs;
SHOW PROCEDURE STATUS LIKE 'p1';
-------- switch to slave -------
SHOW PROCEDURE STATUS LIKE 'p1';
######## CREATE OR REPLACE VIEW v1 as select * from t1 ########
-------- switch to master -------
INSERT INTO t1 SET f1= 18 + 1;
SELECT MAX(f1) FROM t1;
MAX(f1)
19
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
18
-------- switch to master -------
CREATE OR REPLACE VIEW v1 as select * from t1;
SELECT MAX(f1) FROM t1;
MAX(f1)
19
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
19
-------- switch to master -------
ROLLBACK;
SELECT MAX(f1) FROM t1;
MAX(f1)
19
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
19
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
-------- switch to master -------
flush logs;
-------- switch to slave --------
flush logs;
-------- switch to master -------
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
-------- switch to slave -------
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
######## ALTER VIEW v1 AS select f1 from t1 ########
-------- switch to master -------
INSERT INTO t1 SET f1= 19 + 1;
SELECT MAX(f1) FROM t1;
MAX(f1)
20
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
19
-------- switch to master -------
ALTER VIEW v1 AS select f1 from t1;
SELECT MAX(f1) FROM t1;
MAX(f1)
20
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
20
-------- switch to master -------
ROLLBACK;
SELECT MAX(f1) FROM t1;
MAX(f1)
20
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
20
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
-------- switch to master -------
flush logs;
-------- switch to slave --------
flush logs;
-------- switch to master -------
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
-------- switch to slave -------
SHOW CREATE VIEW v1;
View Create View
v1 CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `v1` AS select `t1`.`f1` AS `f1` from `t1`
######## DROP VIEW IF EXISTS v1 ########
-------- switch to master -------
INSERT INTO t1 SET f1= 20 + 1;
SELECT MAX(f1) FROM t1;
MAX(f1)
21
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
20
-------- switch to master -------
DROP VIEW IF EXISTS v1;
SELECT MAX(f1) FROM t1;
MAX(f1)
21
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
21
-------- switch to master -------
ROLLBACK;
SELECT MAX(f1) FROM t1;
MAX(f1)
21
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
21
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
-------- switch to master -------
flush logs;
-------- switch to slave --------
flush logs;
-------- switch to master -------
SHOW CREATE VIEW v1;
ERROR 42S02: Table 'mysqltest1.v1' doesn't exist
-------- switch to slave -------
SHOW CREATE VIEW v1;
ERROR 42S02: Table 'mysqltest1.v1' doesn't exist
######## CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1 ########
-------- switch to master -------
INSERT INTO t1 SET f1= 21 + 1;
SELECT MAX(f1) FROM t1;
MAX(f1)
22
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
21
-------- switch to master -------
CREATE TRIGGER trg1 BEFORE INSERT ON t1 FOR EACH ROW SET @a:=1;
SELECT MAX(f1) FROM t1;
MAX(f1)
22
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
22
-------- switch to master -------
ROLLBACK;
SELECT MAX(f1) FROM t1;
MAX(f1)
22
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
22
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
-------- switch to master -------
flush logs;
-------- switch to slave --------
flush logs;
-------- switch to master -------
SHOW TRIGGERS;
Trigger Event Table Statement Timing Created sql_mode
trg1 INSERT t1 SET @a:=1 BEFORE NULL
-------- switch to slave -------
SHOW TRIGGERS;
Trigger Event Table Statement Timing Created sql_mode
trg1 INSERT t1 SET @a:=1 BEFORE NULL
######## DROP TRIGGER trg1 ########
-------- switch to master -------
INSERT INTO t1 SET f1= 22 + 1;
SELECT MAX(f1) FROM t1;
MAX(f1)
23
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
22
-------- switch to master -------
DROP TRIGGER trg1;
SELECT MAX(f1) FROM t1;
MAX(f1)
23
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
23
-------- switch to master -------
ROLLBACK;
SELECT MAX(f1) FROM t1;
MAX(f1)
23
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
23
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
-------- switch to master -------
flush logs;
-------- switch to slave --------
flush logs;
-------- switch to master -------
SHOW TRIGGERS;
Trigger Event Table Statement Timing Created sql_mode
-------- switch to slave -------
SHOW TRIGGERS;
Trigger Event Table Statement Timing Created sql_mode
######## CREATE USER user1@localhost ########
-------- switch to master -------
INSERT INTO t1 SET f1= 23 + 1;
SELECT MAX(f1) FROM t1;
MAX(f1)
24
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
23
-------- switch to master -------
CREATE USER user1@localhost;
SELECT MAX(f1) FROM t1;
MAX(f1)
24
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
24
-------- switch to master -------
ROLLBACK;
SELECT MAX(f1) FROM t1;
MAX(f1)
24
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
24
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
-------- switch to master -------
flush logs;
-------- switch to slave --------
flush logs;
-------- switch to master -------
SELECT user FROM mysql.user WHERE user = 'user1';
user
user1
-------- switch to slave -------
SELECT user FROM mysql.user WHERE user = 'user1';
user
user1
######## RENAME USER user1@localhost TO rename1@localhost ########
-------- switch to master -------
INSERT INTO t1 SET f1= 24 + 1;
SELECT MAX(f1) FROM t1;
MAX(f1)
25
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
24
-------- switch to master -------
RENAME USER user1@localhost TO rename1@localhost;
SELECT MAX(f1) FROM t1;
MAX(f1)
25
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
25
-------- switch to master -------
ROLLBACK;
SELECT MAX(f1) FROM t1;
MAX(f1)
25
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
25
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
-------- switch to master -------
flush logs;
-------- switch to slave --------
flush logs;
-------- switch to master -------
SELECT user FROM mysql.user WHERE user = 'rename1';
user
rename1
-------- switch to slave -------
SELECT user FROM mysql.user WHERE user = 'rename1';
user
rename1
######## DROP USER rename1@localhost ########
-------- switch to master -------
INSERT INTO t1 SET f1= 25 + 1;
SELECT MAX(f1) FROM t1;
MAX(f1)
26
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
25
-------- switch to master -------
DROP USER rename1@localhost;
SELECT MAX(f1) FROM t1;
MAX(f1)
26
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
26
-------- switch to master -------
ROLLBACK;
SELECT MAX(f1) FROM t1;
MAX(f1)
26
TEST-INFO: MASTER: The INSERT is committed (Succeeded)
-------- switch to slave --------
SELECT MAX(f1) FROM t1;
MAX(f1)
26
TEST-INFO: SLAVE: The INSERT is committed (Succeeded)
-------- switch to master -------
flush logs;
-------- switch to slave --------
flush logs;
-------- switch to master -------
SELECT user FROM mysql.user WHERE user = 'rename1';
user
-------- switch to slave -------
SELECT user FROM mysql.user WHERE user = 'rename1';
user
DROP DATABASE IF EXISTS mysqltest1;
DROP DATABASE IF EXISTS mysqltest2;
DROP DATABASE IF EXISTS mysqltest3;
mysql-test/t/cast.test
View file @
52698263
...
...
@@ -160,6 +160,11 @@ select cast(concat('184467440','73709551615') as signed);
select
cast
(
repeat
(
'1'
,
20
)
as
unsigned
);
select
cast
(
repeat
(
'1'
,
20
)
as
signed
);
#
# Bug #13344: cast of large decimal to signed int not handled correctly
#
select
cast
(
1.0e+300
as
signed
int
);
# End of 4.1 tests
...
...
mysql-test/t/func_crypt.test
View file @
52698263
...
...
@@ -49,4 +49,10 @@ select old_password(' i d k f a ');
explain
extended
select
password
(
'idkfa '
),
old_password
(
'idkfa'
);
#
# Bug #13619: Crash on FreeBSD with salt like '_.'
#
--
replace_column
1
#
select
encrypt
(
'1234'
,
'_.'
);
# End of 4.1 tests
mysql-test/t/kill.test
View file @
52698263
...
...
@@ -25,6 +25,7 @@ select ((@id := kill_id) - kill_id) from t1;
kill
@
id
;
connection
con1
;
--
sleep
1
# this statement should fail
--
error
2006
,
2013
...
...
mysql-test/t/rpl_ddl.test
View file @
52698263
...
...
@@ -391,6 +391,113 @@ SHOW PROCEDURE STATUS LIKE 'p1';
connection
master
;
--
horizontal_results
###############################################################
# Cases with VIEWs
###############################################################
let
$my_stmt
=
CREATE
OR
REPLACE
VIEW
v1
as
select
*
from
t1
;
let
$my_master_commit
=
true
;
let
$my_slave_commit
=
true
;
--
source
include
/
rpl_stmt_seq
.
inc
SHOW
CREATE
VIEW
v1
;
--
disable_query_log
SELECT
'-------- switch to slave -------'
as
""
;
--
enable_query_log
connection
slave
;
SHOW
CREATE
VIEW
v1
;
connection
master
;
let
$my_stmt
=
ALTER
VIEW
v1
AS
select
f1
from
t1
;
let
$my_master_commit
=
true
;
let
$my_slave_commit
=
true
;
--
source
include
/
rpl_stmt_seq
.
inc
SHOW
CREATE
VIEW
v1
;
--
disable_query_log
SELECT
'-------- switch to slave -------'
as
""
;
--
enable_query_log
connection
slave
;
SHOW
CREATE
VIEW
v1
;
connection
master
;
let
$my_stmt
=
DROP
VIEW
IF
EXISTS
v1
;
let
$my_master_commit
=
true
;
let
$my_slave_commit
=
true
;
--
source
include
/
rpl_stmt_seq
.
inc
--
error
1146
SHOW
CREATE
VIEW
v1
;
--
disable_query_log
SELECT
'-------- switch to slave -------'
as
""
;
--
enable_query_log
connection
slave
;
--
error
1146
SHOW
CREATE
VIEW
v1
;
connection
master
;
###############################################################
# Cases with TRIGGERs
###############################################################
let
$my_stmt
=
CREATE
TRIGGER
trg1
BEFORE
INSERT
ON
t1
FOR
EACH
ROW
SET
@
a
:=
1
;
let
$my_master_commit
=
true
;
let
$my_slave_commit
=
true
;
--
source
include
/
rpl_stmt_seq
.
inc
SHOW
TRIGGERS
;
--
disable_query_log
SELECT
'-------- switch to slave -------'
as
""
;
--
enable_query_log
connection
slave
;
SHOW
TRIGGERS
;
connection
master
;
let
$my_stmt
=
DROP
TRIGGER
trg1
;
let
$my_master_commit
=
true
;
let
$my_slave_commit
=
true
;
--
source
include
/
rpl_stmt_seq
.
inc
SHOW
TRIGGERS
;
--
disable_query_log
SELECT
'-------- switch to slave -------'
as
""
;
--
enable_query_log
connection
slave
;
SHOW
TRIGGERS
;
connection
master
;
###############################################################
# Cases with USERs
###############################################################
let
$my_stmt
=
CREATE
USER
user1
@
localhost
;
let
$my_master_commit
=
true
;
let
$my_slave_commit
=
true
;
--
source
include
/
rpl_stmt_seq
.
inc
SELECT
user
FROM
mysql
.
user
WHERE
user
=
'user1'
;
--
disable_query_log
SELECT
'-------- switch to slave -------'
as
""
;
--
enable_query_log
connection
slave
;
SELECT
user
FROM
mysql
.
user
WHERE
user
=
'user1'
;
connection
master
;
let
$my_stmt
=
RENAME
USER
user1
@
localhost
TO
rename1
@
localhost
;
let
$my_master_commit
=
true
;
let
$my_slave_commit
=
true
;
--
source
include
/
rpl_stmt_seq
.
inc
SELECT
user
FROM
mysql
.
user
WHERE
user
=
'rename1'
;
--
disable_query_log
SELECT
'-------- switch to slave -------'
as
""
;
--
enable_query_log
connection
slave
;
SELECT
user
FROM
mysql
.
user
WHERE
user
=
'rename1'
;
connection
master
;
let
$my_stmt
=
DROP
USER
rename1
@
localhost
;
let
$my_master_commit
=
true
;
let
$my_slave_commit
=
true
;
--
source
include
/
rpl_stmt_seq
.
inc
SELECT
user
FROM
mysql
.
user
WHERE
user
=
'rename1'
;
--
disable_query_log
SELECT
'-------- switch to slave -------'
as
""
;
--
enable_query_log
connection
slave
;
SELECT
user
FROM
mysql
.
user
WHERE
user
=
'rename1'
;
connection
master
;
###############################################################
# Cleanup
###############################################################
...
...
sql/item.h
View file @
52698263
...
...
@@ -1331,6 +1331,14 @@ public:
longlong
val_int
()
{
DBUG_ASSERT
(
fixed
==
1
);
if
(
value
<=
(
double
)
LONGLONG_MIN
)
{
return
LONGLONG_MIN
;
}
else
if
(
value
>=
(
double
)
(
ulonglong
)
LONGLONG_MAX
)
{
return
LONGLONG_MAX
;
}
return
(
longlong
)
(
value
+
(
value
>
0
?
0.5
:
-
0.5
));
}
String
*
val_str
(
String
*
);
...
...
sql/item_strfunc.cc
View file @
52698263
...
...
@@ -1504,7 +1504,13 @@ String *Item_func_encrypt::val_str(String *str)
salt_ptr
=
salt_str
->
c_ptr
();
}
pthread_mutex_lock
(
&
LOCK_crypt
);
char
*
tmp
=
crypt
(
res
->
c_ptr
(),
salt_ptr
);
char
*
tmp
=
crypt
(
res
->
c_ptr
(),
salt_ptr
);
if
(
!
tmp
)
{
pthread_mutex_unlock
(
&
LOCK_crypt
);
null_value
=
1
;
return
0
;
}
str
->
set
(
tmp
,(
uint
)
strlen
(
tmp
),
res
->
charset
());
str
->
copy
();
pthread_mutex_unlock
(
&
LOCK_crypt
);
...
...
sql/sql_parse.cc
View file @
52698263
...
...
@@ -3684,6 +3684,8 @@ end_with_restore_list:
if
(
check_access
(
thd
,
INSERT_ACL
,
"mysql"
,
0
,
1
,
1
,
0
)
&&
check_global_access
(
thd
,
CREATE_USER_ACL
))
break
;
if
(
end_active_trans
(
thd
))
goto
error
;
if
(
!
(
res
=
mysql_create_user
(
thd
,
lex
->
users_list
)))
{
if
(
mysql_bin_log
.
is_open
())
...
...
@@ -3700,6 +3702,8 @@ end_with_restore_list:
if
(
check_access
(
thd
,
DELETE_ACL
,
"mysql"
,
0
,
1
,
1
,
0
)
&&
check_global_access
(
thd
,
CREATE_USER_ACL
))
break
;
if
(
end_active_trans
(
thd
))
goto
error
;
if
(
!
(
res
=
mysql_drop_user
(
thd
,
lex
->
users_list
)))
{
if
(
mysql_bin_log
.
is_open
())
...
...
@@ -3716,6 +3720,8 @@ end_with_restore_list:
if
(
check_access
(
thd
,
UPDATE_ACL
,
"mysql"
,
0
,
1
,
1
,
0
)
&&
check_global_access
(
thd
,
CREATE_USER_ACL
))
break
;
if
(
end_active_trans
(
thd
))
goto
error
;
if
(
!
(
res
=
mysql_rename_user
(
thd
,
lex
->
users_list
)))
{
if
(
mysql_bin_log
.
is_open
())
...
...
@@ -4510,6 +4516,9 @@ end_with_restore_list:
}
case
SQLCOM_CREATE_VIEW
:
{
if
(
end_active_trans
(
thd
))
goto
error
;
if
(
!
(
res
=
mysql_create_view
(
thd
,
thd
->
lex
->
create_view_mode
))
&&
mysql_bin_log
.
is_open
())
{
...
...
@@ -4557,6 +4566,9 @@ end_with_restore_list:
}
case
SQLCOM_CREATE_TRIGGER
:
{
if
(
end_active_trans
(
thd
))
goto
error
;
res
=
mysql_create_or_drop_trigger
(
thd
,
all_tables
,
1
);
/* We don't care about trigger body after this point */
...
...
@@ -4566,6 +4578,9 @@ end_with_restore_list:
}
case
SQLCOM_DROP_TRIGGER
:
{
if
(
end_active_trans
(
thd
))
goto
error
;
res
=
mysql_create_or_drop_trigger
(
thd
,
all_tables
,
0
);
break
;
}
...
...
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