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
5f55424c
Commit
5f55424c
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
5f4ad7f2
8b1c352a
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 @
5f55424c
...
...
@@ -47,3 +47,13 @@ unlock tables;
lock tables t1 write, t1 as t1_alias read;
insert into t1 select index1,nr from t1 as t1_alias;
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 @
5f55424c
...
...
@@ -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 434 Query 1 510 use `test`; drop table t1
show binary logs;
Log_name
master-bin.000001
master-bin.000002
Log_name File_size
master-bin.000001 0
master-bin.000002 510
Warnings:
Error 29 File 'master-bin.000001' not found (Errcode: 2)
start slave;
show binary logs;
Log_name
slave-bin.000001
slave-bin.000002
Log_name File_size
slave-bin.000001 0
slave-bin.000002 348
Warnings:
Error 29 File 'slave-bin.000001' not found (Errcode: 2)
show binlog events in 'slave-bin.000001' from 4;
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
...
...
mysql-test/r/rpl_rotate_logs.result
View file @
5f55424c
...
...
@@ -26,10 +26,13 @@ create table t2(m int not null auto_increment primary key);
insert into t2 values (34),(67),(123);
flush logs;
show binary logs;
Log_name
master-bin.000001
master-bin.000002
master-bin.000003
Log_name File_size
master-bin.000001 0
master-bin.000002 0
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;
select * from t3;
a
...
...
@@ -42,18 +45,22 @@ set global sql_slave_skip_counter=1;
start slave;
purge master logs to 'master-bin.000002';
show master logs;
Log_name
master-bin.000002
master-bin.000003
Log_name File_size
master-bin.000002 0
master-bin.000003 407
Warnings:
Error 29 File 'master-bin.000002' not found (Errcode: 2)
purge binary logs to 'master-bin.000002';
show binary logs;
Log_name
master-bin.000002
master-bin.000003
Log_name File_size
master-bin.000002 0
master-bin.000003 407
Warnings:
Error 29 File 'master-bin.000002' not found (Errcode: 2)
purge master logs before now();
show binary logs;
Log_name
master-bin.000003
Log_name
File_size
master-bin.000003
407
insert into t2 values (65);
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
...
...
@@ -73,10 +80,13 @@ count(*)
100
create table t4 select * from temp_table;
show binary logs;
Log_name
master-bin.000003
master-bin.000004
master-bin.000005
Log_name File_size
master-bin.000003 0
master-bin.000004 0
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;
File Position Binlog_Do_DB Binlog_Ignore_DB
master-bin.000005 2032
...
...
mysql-test/t/lock.test
View file @
5f55424c
...
...
@@ -59,3 +59,17 @@ unlock tables;
lock
tables
t1
write
,
t1
as
t1_alias
read
;
insert
into
t1
select
index1
,
nr
from
t1
as
t1_alias
;
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 @
5f55424c
...
...
@@ -2326,6 +2326,10 @@ mysql_execute_command(THD *thd)
}
#endif
/* !HAVE_REPLICATION */
/*
When option readonly is set deny operations which change tables.
Except for the replication thread and the 'super' users.
...
...
@@ -5198,6 +5202,7 @@ void mysql_init_multi_delete(LEX *lex)
lex
->
select_lex
.
select_limit
=
lex
->
unit
.
select_limit_cnt
=
HA_POS_ERROR
;
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_last
=
&
lex
->
query_tables
;
}
...
...
@@ -6776,6 +6781,14 @@ bool multi_delete_precheck(THD *thd, TABLE_LIST *tables, uint *table_count)
}
walk
->
lock_type
=
target_tbl
->
lock_type
;
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
);
}
...
...
sql/sql_repl.cc
View file @
5f55424c
...
...
@@ -1478,6 +1478,11 @@ bool show_binlog_info(THD* thd)
bool
show_binlogs
(
THD
*
thd
)
{
IO_CACHE
*
index_file
;
LOG_INFO
cur
;
IO_CACHE
log
;
File
file
;
const
char
*
errmsg
=
0
;
MY_STAT
stat_area
;
char
fname
[
FN_REFLEN
];
List
<
Item
>
field_list
;
uint
length
;
...
...
@@ -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_return_int
(
"File_size"
,
20
,
MYSQL_TYPE_LONGLONG
));
if
(
protocol
->
send_fields
(
&
field_list
,
Protocol
::
SEND_NUM_ROWS
|
Protocol
::
SEND_EOF
))
DBUG_RETURN
(
TRUE
);
mysql_bin_log
.
lock_index
();
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
);
/* The file ends with EOF or empty line */
while
((
length
=
my_b_gets
(
index_file
,
fname
,
sizeof
(
fname
)))
>
1
)
{
fname
[
--
length
]
=
'\0'
;
/* remove the newline */
protocol
->
prepare_for_resend
();
int
dir_len
=
dirname_length
(
fname
);
/* The -1 is for removing newline from fname */
protocol
->
store
(
fname
+
dir_len
,
length
-
1
-
dir_len
,
&
my_charset_bin
);
protocol
->
store
(
fname
+
dir_len
,
length
-
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
())
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