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
9ae42419
Commit
9ae42419
authored
May 24, 2005
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge acurtis@bk-internal.mysql.com:/home/bk/mysql-5.0
into xiphis.org:/usr/home/antony/work2/p3-bug7241.6
parents
424e4ee1
e35bd059
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
103 additions
and
25 deletions
+103
-25
mysql-test/r/lock.result
mysql-test/r/lock.result
+10
-0
mysql-test/r/rpl_log.result
mysql-test/r/rpl_log.result
+10
-6
mysql-test/r/rpl_rotate_logs.result
mysql-test/r/rpl_rotate_logs.result
+26
-16
mysql-test/t/lock.test
mysql-test/t/lock.test
+14
-0
sql/sql_parse.cc
sql/sql_parse.cc
+13
-0
sql/sql_repl.cc
sql/sql_repl.cc
+30
-3
No files found.
mysql-test/r/lock.result
View file @
9ae42419
...
@@ -47,3 +47,13 @@ unlock tables;
...
@@ -47,3 +47,13 @@ unlock tables;
lock tables t1 write, t1 as t1_alias read;
lock tables t1 write, t1 as t1_alias read;
insert into t1 select index1,nr from t1 as t1_alias;
insert into t1 select index1,nr from t1 as t1_alias;
drop table t1,t2;
drop table t1,t2;
create table t1 ( a int(11) not null auto_increment, primary key(a));
create table t2 ( a int(11) not null auto_increment, primary key(a));
lock tables t1 write, t2 read;
delete from t1 using t1,t2 where t1.a=t2.a;
delete t1 from t1,t2 where t1.a=t2.a;
delete from t2 using t1,t2 where t1.a=t2.a;
ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
delete t2 from t1,t2 where t1.a=t2.a;
ERROR HY000: Table 't2' was locked with a READ lock and can't be updated
drop table t1,t2;
mysql-test/r/rpl_log.result
View file @
9ae42419
...
@@ -68,14 +68,18 @@ master-bin.000002 260 Query 1 346 use `test`; create table t1 (n int)
...
@@ -68,14 +68,18 @@ master-bin.000002 260 Query 1 346 use `test`; create table t1 (n int)
master-bin.000002 346 Query 1 434 use `test`; insert into t1 values (1)
master-bin.000002 346 Query 1 434 use `test`; insert into t1 values (1)
master-bin.000002 434 Query 1 510 use `test`; drop table t1
master-bin.000002 434 Query 1 510 use `test`; drop table t1
show binary logs;
show binary logs;
Log_name
Log_name File_size
master-bin.000001
master-bin.000001 0
master-bin.000002
master-bin.000002 510
Warnings:
Error 29 File 'master-bin.000001' not found (Errcode: 2)
start slave;
start slave;
show binary logs;
show binary logs;
Log_name
Log_name File_size
slave-bin.000001
slave-bin.000001 0
slave-bin.000002
slave-bin.000002 348
Warnings:
Error 29 File 'slave-bin.000001' not found (Errcode: 2)
show binlog events in 'slave-bin.000001' from 4;
show binlog events in 'slave-bin.000001' from 4;
Log_name Pos Event_type Server_id End_log_pos Info
Log_name Pos Event_type Server_id End_log_pos Info
slave-bin.000001 4 Format_desc 2 98 Server ver: VERSION, Binlog ver: 4
slave-bin.000001 4 Format_desc 2 98 Server ver: VERSION, Binlog ver: 4
...
...
mysql-test/r/rpl_rotate_logs.result
View file @
9ae42419
...
@@ -26,10 +26,13 @@ create table t2(m int not null auto_increment primary key);
...
@@ -26,10 +26,13 @@ create table t2(m int not null auto_increment primary key);
insert into t2 values (34),(67),(123);
insert into t2 values (34),(67),(123);
flush logs;
flush logs;
show binary logs;
show binary logs;
Log_name
Log_name File_size
master-bin.000001
master-bin.000001 0
master-bin.000002
master-bin.000002 0
master-bin.000003
master-bin.000003 98
Warnings:
Error 29 File 'master-bin.000001' not found (Errcode: 2)
Error 29 File 'master-bin.000002' not found (Errcode: 2)
create table t3 select * from temp_table;
create table t3 select * from temp_table;
select * from t3;
select * from t3;
a
a
...
@@ -42,18 +45,22 @@ set global sql_slave_skip_counter=1;
...
@@ -42,18 +45,22 @@ set global sql_slave_skip_counter=1;
start slave;
start slave;
purge master logs to 'master-bin.000002';
purge master logs to 'master-bin.000002';
show master logs;
show master logs;
Log_name
Log_name File_size
master-bin.000002
master-bin.000002 0
master-bin.000003
master-bin.000003 407
Warnings:
Error 29 File 'master-bin.000002' not found (Errcode: 2)
purge binary logs to 'master-bin.000002';
purge binary logs to 'master-bin.000002';
show binary logs;
show binary logs;
Log_name
Log_name File_size
master-bin.000002
master-bin.000002 0
master-bin.000003
master-bin.000003 407
Warnings:
Error 29 File 'master-bin.000002' not found (Errcode: 2)
purge master logs before now();
purge master logs before now();
show binary logs;
show binary logs;
Log_name
Log_name
File_size
master-bin.000003
master-bin.000003
407
insert into t2 values (65);
insert into t2 values (65);
show slave status;
show slave status;
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
Slave_IO_State Master_Host Master_User Master_Port Connect_Retry Master_Log_File Read_Master_Log_Pos Relay_Log_File Relay_Log_Pos Relay_Master_Log_File Slave_IO_Running Slave_SQL_Running Replicate_Do_DB Replicate_Ignore_DB Replicate_Do_Table Replicate_Ignore_Table Replicate_Wild_Do_Table Replicate_Wild_Ignore_Table Last_Errno Last_Error Skip_Counter Exec_Master_Log_Pos Relay_Log_Space Until_Condition Until_Log_File Until_Log_Pos Master_SSL_Allowed Master_SSL_CA_File Master_SSL_CA_Path Master_SSL_Cert Master_SSL_Cipher Master_SSL_Key Seconds_Behind_Master
...
@@ -73,10 +80,13 @@ count(*)
...
@@ -73,10 +80,13 @@ count(*)
100
100
create table t4 select * from temp_table;
create table t4 select * from temp_table;
show binary logs;
show binary logs;
Log_name
Log_name File_size
master-bin.000003
master-bin.000003 0
master-bin.000004
master-bin.000004 0
master-bin.000005
master-bin.000005 2032
Warnings:
Error 29 File 'master-bin.000003' not found (Errcode: 2)
Error 29 File 'master-bin.000004' not found (Errcode: 2)
show master status;
show master status;
File Position Binlog_Do_DB Binlog_Ignore_DB
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000005 2032
master-bin.000005 2032
...
...
mysql-test/t/lock.test
View file @
9ae42419
...
@@ -59,3 +59,17 @@ unlock tables;
...
@@ -59,3 +59,17 @@ unlock tables;
lock
tables
t1
write
,
t1
as
t1_alias
read
;
lock
tables
t1
write
,
t1
as
t1_alias
read
;
insert
into
t1
select
index1
,
nr
from
t1
as
t1_alias
;
insert
into
t1
select
index1
,
nr
from
t1
as
t1_alias
;
drop
table
t1
,
t2
;
drop
table
t1
,
t2
;
#
# Bug7241 - Invalid response when DELETE .. USING and LOCK TABLES used.
#
create
table
t1
(
a
int
(
11
)
not
null
auto_increment
,
primary
key
(
a
));
create
table
t2
(
a
int
(
11
)
not
null
auto_increment
,
primary
key
(
a
));
lock
tables
t1
write
,
t2
read
;
delete
from
t1
using
t1
,
t2
where
t1
.
a
=
t2
.
a
;
delete
t1
from
t1
,
t2
where
t1
.
a
=
t2
.
a
;
--
error
1099
delete
from
t2
using
t1
,
t2
where
t1
.
a
=
t2
.
a
;
--
error
1099
delete
t2
from
t1
,
t2
where
t1
.
a
=
t2
.
a
;
drop
table
t1
,
t2
;
sql/sql_parse.cc
View file @
9ae42419
...
@@ -2326,6 +2326,10 @@ mysql_execute_command(THD *thd)
...
@@ -2326,6 +2326,10 @@ mysql_execute_command(THD *thd)
}
}
#endif
/* !HAVE_REPLICATION */
#endif
/* !HAVE_REPLICATION */
/*
/*
When option readonly is set deny operations which change tables.
When option readonly is set deny operations which change tables.
Except for the replication thread and the 'super' users.
Except for the replication thread and the 'super' users.
...
@@ -5198,6 +5202,7 @@ void mysql_init_multi_delete(LEX *lex)
...
@@ -5198,6 +5202,7 @@ void mysql_init_multi_delete(LEX *lex)
lex
->
select_lex
.
select_limit
=
lex
->
unit
.
select_limit_cnt
=
lex
->
select_lex
.
select_limit
=
lex
->
unit
.
select_limit_cnt
=
HA_POS_ERROR
;
HA_POS_ERROR
;
lex
->
select_lex
.
table_list
.
save_and_clear
(
&
lex
->
auxilliary_table_list
);
lex
->
select_lex
.
table_list
.
save_and_clear
(
&
lex
->
auxilliary_table_list
);
lex
->
lock_option
=
using_update_log
?
TL_READ_NO_INSERT
:
TL_READ
;
lex
->
query_tables
=
0
;
lex
->
query_tables
=
0
;
lex
->
query_tables_last
=
&
lex
->
query_tables
;
lex
->
query_tables_last
=
&
lex
->
query_tables
;
}
}
...
@@ -6776,6 +6781,14 @@ bool multi_delete_precheck(THD *thd, TABLE_LIST *tables, uint *table_count)
...
@@ -6776,6 +6781,14 @@ bool multi_delete_precheck(THD *thd, TABLE_LIST *tables, uint *table_count)
}
}
walk
->
lock_type
=
target_tbl
->
lock_type
;
walk
->
lock_type
=
target_tbl
->
lock_type
;
target_tbl
->
correspondent_table
=
walk
;
// Remember corresponding table
target_tbl
->
correspondent_table
=
walk
;
// Remember corresponding table
/* in case of subselects, we need to set lock_type in
* corresponding table in list of all tables */
if
(
walk
->
correspondent_table
)
{
target_tbl
->
correspondent_table
=
walk
->
correspondent_table
;
walk
->
correspondent_table
->
lock_type
=
walk
->
lock_type
;
}
}
}
DBUG_RETURN
(
FALSE
);
DBUG_RETURN
(
FALSE
);
}
}
...
...
sql/sql_repl.cc
View file @
9ae42419
...
@@ -1478,6 +1478,11 @@ bool show_binlog_info(THD* thd)
...
@@ -1478,6 +1478,11 @@ bool show_binlog_info(THD* thd)
bool
show_binlogs
(
THD
*
thd
)
bool
show_binlogs
(
THD
*
thd
)
{
{
IO_CACHE
*
index_file
;
IO_CACHE
*
index_file
;
LOG_INFO
cur
;
IO_CACHE
log
;
File
file
;
const
char
*
errmsg
=
0
;
MY_STAT
stat_area
;
char
fname
[
FN_REFLEN
];
char
fname
[
FN_REFLEN
];
List
<
Item
>
field_list
;
List
<
Item
>
field_list
;
uint
length
;
uint
length
;
...
@@ -1491,21 +1496,43 @@ bool show_binlogs(THD* thd)
...
@@ -1491,21 +1496,43 @@ bool show_binlogs(THD* thd)
}
}
field_list
.
push_back
(
new
Item_empty_string
(
"Log_name"
,
255
));
field_list
.
push_back
(
new
Item_empty_string
(
"Log_name"
,
255
));
field_list
.
push_back
(
new
Item_return_int
(
"File_size"
,
20
,
MYSQL_TYPE_LONGLONG
));
if
(
protocol
->
send_fields
(
&
field_list
,
if
(
protocol
->
send_fields
(
&
field_list
,
Protocol
::
SEND_NUM_ROWS
|
Protocol
::
SEND_EOF
))
Protocol
::
SEND_NUM_ROWS
|
Protocol
::
SEND_EOF
))
DBUG_RETURN
(
TRUE
);
DBUG_RETURN
(
TRUE
);
mysql_bin_log
.
lock_index
();
mysql_bin_log
.
lock_index
();
index_file
=
mysql_bin_log
.
get_index_file
();
index_file
=
mysql_bin_log
.
get_index_file
();
mysql_bin_log
.
get_current_log
(
&
cur
);
int
cur_dir_len
=
dirname_length
(
cur
.
log_file_name
);
reinit_io_cache
(
index_file
,
READ_CACHE
,
(
my_off_t
)
0
,
0
,
0
);
reinit_io_cache
(
index_file
,
READ_CACHE
,
(
my_off_t
)
0
,
0
,
0
);
/* The file ends with EOF or empty line */
/* The file ends with EOF or empty line */
while
((
length
=
my_b_gets
(
index_file
,
fname
,
sizeof
(
fname
)))
>
1
)
while
((
length
=
my_b_gets
(
index_file
,
fname
,
sizeof
(
fname
)))
>
1
)
{
{
fname
[
--
length
]
=
'\0'
;
/* remove the newline */
protocol
->
prepare_for_resend
();
protocol
->
prepare_for_resend
();
int
dir_len
=
dirname_length
(
fname
);
int
dir_len
=
dirname_length
(
fname
);
/* The -1 is for removing newline from fname */
protocol
->
store
(
fname
+
dir_len
,
length
-
dir_len
,
&
my_charset_bin
);
protocol
->
store
(
fname
+
dir_len
,
length
-
1
-
dir_len
,
&
my_charset_bin
);
if
(
!
(
strncmp
(
fname
+
dir_len
,
cur
.
log_file_name
+
cur_dir_len
,
length
-
dir_len
)))
{
/* this is the active log, use the active position */
protocol
->
store
((
ulonglong
)
cur
.
pos
);
}
else
{
/* this is an old log, open it and find the size */
if
((
file
=
open_binlog
(
&
log
,
fname
+
dir_len
,
&
errmsg
))
>=
0
)
{
protocol
->
store
((
ulonglong
)
my_b_filelength
(
&
log
));
end_io_cache
(
&
log
);
my_close
(
file
,
MYF
(
0
));
}
else
{
/* the file wasn't openable, but 0 is an invalid value anyway */
protocol
->
store
((
ulonglong
)
0
);
}
}
if
(
protocol
->
write
())
if
(
protocol
->
write
())
goto
err
;
goto
err
;
}
}
...
...
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