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
9f8d47d8
Commit
9f8d47d8
authored
Oct 20, 2004
by
monty@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge bk-internal.mysql.com:/home/bk/mysql-4.0
into mysql.com:/home/my/mysql-4.0
parents
20ac420e
1f8b3d0f
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
91 additions
and
25 deletions
+91
-25
libmysql/libmysql.c
libmysql/libmysql.c
+4
-6
myisam/myisampack.c
myisam/myisampack.c
+5
-7
mysql-test/r/innodb-lock.result
mysql-test/r/innodb-lock.result
+26
-0
mysql-test/t/innodb-lock.test
mysql-test/t/innodb-lock.test
+45
-1
sql/ha_innodb.cc
sql/ha_innodb.cc
+1
-1
sql/mysqld.cc
sql/mysqld.cc
+5
-5
sql/set_var.cc
sql/set_var.cc
+4
-4
sql/sql_class.h
sql/sql_class.h
+1
-1
No files found.
libmysql/libmysql.c
View file @
9f8d47d8
...
...
@@ -3173,20 +3173,18 @@ void my_net_local_init(NET *net)
trailing '. The caller must supply whichever of those is desired.
*/
unsigned
long
mysql_hex_string
(
char
*
to
,
const
char
*
from
,
unsigned
long
length
)
ulong
mysql_hex_string
(
char
*
to
,
const
char
*
from
,
ulong
length
)
{
char
*
to0
=
to
;
const
char
*
end
;
static
char
hex
[]
=
"0123456789ABCDEF"
;
for
(
end
=
from
+
length
;
from
<
end
;
from
++
)
{
*
to
++=
hex
[((
unsigned
char
)
*
from
)
>>
4
];
*
to
++=
hex
[((
unsigned
char
)
*
from
)
&
0x0F
];
*
to
++=
_dig_vec
[((
unsigned
char
)
*
from
)
>>
4
];
*
to
++=
_dig_vec
[((
unsigned
char
)
*
from
)
&
0x0F
];
}
*
to
=
'\0'
;
return
to
-
to0
;
return
(
ulong
)
(
to
-
to0
)
;
}
/*
...
...
myisam/myisampack.c
View file @
9f8d47d8
...
...
@@ -418,14 +418,12 @@ static bool open_isam_files(PACK_MRG_INFO *mrg,char **names,uint count)
mrg
->
src_file_has_indexes_disabled
=
0
;
for
(
i
=
0
;
i
<
count
;
i
++
)
{
if
((
mrg
->
file
[
i
]
=
open_isam_file
(
names
[
i
],
O_RDONLY
)))
{
mrg
->
src_file_has_indexes_disabled
|=
(
mrg
->
file
[
i
]
->
s
->
state
.
key_map
!=
(
1ULL
<<
mrg
->
file
[
i
]
->
s
->
base
.
keys
)
-
1
);
}
else
if
(
!
(
mrg
->
file
[
i
]
=
open_isam_file
(
names
[
i
],
O_RDONLY
)))
goto
error
;
mrg
->
src_file_has_indexes_disabled
|=
((
mrg
->
file
[
i
]
->
s
->
state
.
key_map
!=
(((
ulonglong
)
1
)
<<
mrg
->
file
[
i
]
->
s
->
base
.
keys
)
-
1
));
}
/* Check that files are identical */
for
(
j
=
0
;
j
<
count
-
1
;
j
++
)
...
...
mysql-test/r/innodb-lock.result
View file @
9f8d47d8
drop table if exists t1;
select @@innodb_table_locks;
@@innodb_table_locks
0
set @@innodb_table_locks=1;
create table t1 (id integer, x integer) engine=INNODB;
insert into t1 values(0, 0);
set autocommit=0;
SELECT * from t1 where id = 0 FOR UPDATE;
id x
0 0
set autocommit=0;
lock table t1 write;
update t1 set x=1 where id = 0;
select * from t1;
id x
0 1
commit;
update t1 set x=2 where id = 0;
commit;
unlock tables;
select * from t1;
id x
0 2
commit;
drop table t1;
set @@innodb_table_locks=0;
create table t1 (id integer, x integer) engine=INNODB;
insert into t1 values(0, 0);
set autocommit=0;
...
...
mysql-test/t/innodb-lock.test
View file @
9f8d47d8
...
...
@@ -5,10 +5,54 @@ connect (con2,localhost,root,,);
drop
table
if
exists
t1
;
#
#
Testing of explicit table locks
#
Check and select innodb lock type
#
select
@@
innodb_table_locks
;
#
# Testing of explicit table locks with enforced table locks
#
set
@@
innodb_table_locks
=
1
;
connection
con1
;
create
table
t1
(
id
integer
,
x
integer
)
engine
=
INNODB
;
insert
into
t1
values
(
0
,
0
);
set
autocommit
=
0
;
SELECT
*
from
t1
where
id
=
0
FOR
UPDATE
;
connection
con2
;
set
autocommit
=
0
;
# The following statement should hang because con1 is locking the page
--
send
lock
table
t1
write
;
--
sleep
2
;
connection
con1
;
update
t1
set
x
=
1
where
id
=
0
;
select
*
from
t1
;
commit
;
connection
con2
;
reap
;
update
t1
set
x
=
2
where
id
=
0
;
commit
;
unlock
tables
;
connection
con1
;
select
*
from
t1
;
commit
;
drop
table
t1
;
#
# Try with old lock method (where LOCK TABLE is ignored)
#
set
@@
innodb_table_locks
=
0
;
create
table
t1
(
id
integer
,
x
integer
)
engine
=
INNODB
;
insert
into
t1
values
(
0
,
0
);
set
autocommit
=
0
;
...
...
sql/ha_innodb.cc
View file @
9f8d47d8
...
...
@@ -4694,7 +4694,7 @@ ha_innobase::external_lock(
if
(
prebuilt
->
select_lock_type
!=
LOCK_NONE
)
{
if
(
thd
->
in_lock_tables
&&
!
thd
->
variables
.
innodb_table_locks_old_behavior
)
{
thd
->
variables
.
innodb_table_locks
)
{
ulint
error
;
error
=
row_lock_table_for_mysql
(
prebuilt
);
...
...
sql/mysqld.cc
View file @
9f8d47d8
...
...
@@ -3526,7 +3526,7 @@ enum options_mysqld {
OPT_INNODB_FORCE_RECOVERY
,
OPT_INNODB_STATUS_FILE
,
OPT_INNODB_MAX_DIRTY_PAGES_PCT
,
OPT_INNODB_TABLE_LOCKS
_OLD_BEHAVIOR
,
OPT_INNODB_TABLE_LOCKS
,
OPT_BDB_CACHE_SIZE
,
OPT_BDB_LOG_BUFFER_SIZE
,
OPT_BDB_MAX_LOCK
,
...
...
@@ -3700,10 +3700,10 @@ struct my_option my_long_options[] =
{
"innodb_max_dirty_pages_pct"
,
OPT_INNODB_MAX_DIRTY_PAGES_PCT
,
"Percentage of dirty pages allowed in bufferpool"
,
(
gptr
*
)
&
srv_max_buf_pool_modified_pct
,
(
gptr
*
)
&
srv_max_buf_pool_modified_pct
,
0
,
GET_ULONG
,
REQUIRED_ARG
,
90
,
0
,
100
,
0
,
0
,
0
},
{
"innodb_table_locks
_old_behavior"
,
OPT_INNODB_TABLE_LOCKS_OLD_BEHAVIOR
,
"
Disable InnoDB locking in LOCK TABLES
"
,
(
gptr
*
)
&
global_system_variables
.
innodb_table_locks
_old_behavior
,
(
gptr
*
)
&
global_system_variables
.
innodb_table_locks
_old_behavior
,
{
"innodb_table_locks
"
,
OPT_INNODB_TABLE_LOCKS
,
"
If Innodb should enforce LOCK TABLE
"
,
(
gptr
*
)
&
global_system_variables
.
innodb_table_locks
,
(
gptr
*
)
&
global_system_variables
.
innodb_table_locks
,
0
,
GET_BOOL
,
OPT_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
#endif
/* End HAVE_INNOBASE_DB */
{
"help"
,
'?'
,
"Display this help and exit"
,
0
,
0
,
0
,
GET_NO_ARG
,
NO_ARG
,
0
,
...
...
sql/set_var.cc
View file @
9f8d47d8
...
...
@@ -263,8 +263,8 @@ sys_var_thd_ulong sys_net_wait_timeout("wait_timeout",
#ifdef HAVE_INNOBASE_DB
sys_var_long_ptr
sys_innodb_max_dirty_pages_pct
(
"innodb_max_dirty_pages_pct"
,
&
srv_max_buf_pool_modified_pct
);
sys_var_thd_bool
sys_innodb_table_locks
_old_behavior
(
"innodb_table_locks_old_behavior
"
,
&
SV
::
innodb_table_locks_old_behavior
);
sys_var_thd_bool
sys_innodb_table_locks
(
"innodb_table_locks
"
,
&
SV
::
innodb_table_locks
);
#endif
...
...
@@ -451,7 +451,7 @@ sys_var *sys_variables[]=
&
sys_os
,
#ifdef HAVE_INNOBASE_DB
&
sys_innodb_max_dirty_pages_pct
,
&
sys_innodb_table_locks
_old_behavior
,
&
sys_innodb_table_locks
,
#endif
&
sys_unique_checks
};
...
...
@@ -523,7 +523,7 @@ struct show_var_st init_vars[]= {
{
"innodb_log_group_home_dir"
,
(
char
*
)
&
innobase_log_group_home_dir
,
SHOW_CHAR_PTR
},
{
"innodb_mirrored_log_groups"
,
(
char
*
)
&
innobase_mirrored_log_groups
,
SHOW_LONG
},
{
sys_innodb_max_dirty_pages_pct
.
name
,
(
char
*
)
&
sys_innodb_max_dirty_pages_pct
,
SHOW_SYS
},
{
sys_innodb_table_locks
_old_behavior
.
name
,
(
char
*
)
&
sys_innodb_table_locks_old_behavior
,
SHOW_SYS
},
{
sys_innodb_table_locks
.
name
,
(
char
*
)
&
sys_innodb_table_locks
,
SHOW_SYS
},
#endif
{
sys_interactive_timeout
.
name
,(
char
*
)
&
sys_interactive_timeout
,
SHOW_SYS
},
{
sys_join_buffer_size
.
name
,
(
char
*
)
&
sys_join_buffer_size
,
SHOW_SYS
},
...
...
sql/sql_class.h
View file @
9f8d47d8
...
...
@@ -339,7 +339,7 @@ struct system_variables
my_bool
new_mode
;
my_bool
query_cache_wlock_invalidate
;
#ifdef HAVE_INNOBASE_DB
my_bool
innodb_table_locks
_old_behavior
;
my_bool
innodb_table_locks
;
#endif
/* HAVE_INNOBASE_DB */
CONVERT
*
convert_set
;
...
...
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