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
a5011de0
Commit
a5011de0
authored
Jun 04, 2007
by
igor@olga.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge olga.mysql.com:/home/igor/mysql-5.0-opt
into olga.mysql.com:/home/igor/mysql-5.1-opt-merge
parents
31c57a1e
d9fcc304
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
152 additions
and
9 deletions
+152
-9
include/thr_lock.h
include/thr_lock.h
+5
-0
mysql-test/mysql-test-run.pl
mysql-test/mysql-test-run.pl
+11
-0
mysql-test/r/subselect.result
mysql-test/r/subselect.result
+10
-0
mysql-test/r/trigger.result
mysql-test/r/trigger.result
+24
-0
mysql-test/t/subselect.test
mysql-test/t/subselect.test
+14
-0
mysql-test/t/trigger.test
mysql-test/t/trigger.test
+55
-0
sql/set_var.cc
sql/set_var.cc
+5
-1
sql/sql_base.cc
sql/sql_base.cc
+7
-0
sql/sql_select.cc
sql/sql_select.cc
+11
-0
sql/sql_view.cc
sql/sql_view.cc
+2
-1
sql/sql_yacc.yy
sql/sql_yacc.yy
+6
-6
sql/udf_example.c
sql/udf_example.c
+2
-1
No files found.
include/thr_lock.h
View file @
a5011de0
...
@@ -54,6 +54,11 @@ enum thr_lock_type { TL_IGNORE=-1,
...
@@ -54,6 +54,11 @@ enum thr_lock_type { TL_IGNORE=-1,
TL_WRITE_CONCURRENT_INSERT
,
TL_WRITE_CONCURRENT_INSERT
,
/* Write used by INSERT DELAYED. Allows READ locks */
/* Write used by INSERT DELAYED. Allows READ locks */
TL_WRITE_DELAYED
,
TL_WRITE_DELAYED
,
/*
parser only! Late bound low_priority flag.
At open_tables() becomes thd->update_lock_default.
*/
TL_WRITE_DEFAULT
,
/* WRITE lock that has lower priority than TL_READ */
/* WRITE lock that has lower priority than TL_READ */
TL_WRITE_LOW_PRIORITY
,
TL_WRITE_LOW_PRIORITY
,
/* Normal WRITE lock */
/* Normal WRITE lock */
...
...
mysql-test/mysql-test-run.pl
View file @
a5011de0
...
@@ -1796,6 +1796,17 @@ sub environment_setup () {
...
@@ -1796,6 +1796,17 @@ sub environment_setup () {
split
('
:
',
$ENV
{'
DYLD_LIBRARY_PATH
'})
:
());
split
('
:
',
$ENV
{'
DYLD_LIBRARY_PATH
'})
:
());
mtr_debug
("
DYLD_LIBRARY_PATH:
$ENV
{'DYLD_LIBRARY_PATH'}
");
mtr_debug
("
DYLD_LIBRARY_PATH:
$ENV
{'DYLD_LIBRARY_PATH'}
");
# The environment variable used for shared libs on AIX
$ENV
{'
SHLIB_PATH
'}
=
join
("
:
",
@ld_library_paths
,
$ENV
{'
SHLIB_PATH
'}
?
split
('
:
',
$ENV
{'
SHLIB_PATH
'})
:
());
mtr_debug
("
SHLIB_PATH:
$ENV
{'SHLIB_PATH'}
");
# The environment variable used for shared libs on hp-ux
$ENV
{'
LIBPATH
'}
=
join
("
:
",
@ld_library_paths
,
$ENV
{'
LIBPATH
'}
?
split
('
:
',
$ENV
{'
LIBPATH
'})
:
());
mtr_debug
("
LIBPATH:
$ENV
{'LIBPATH'}
");
# --------------------------------------------------------------------------
# --------------------------------------------------------------------------
# Also command lines in .opt files may contain env vars
# Also command lines in .opt files may contain env vars
...
...
mysql-test/r/subselect.result
View file @
a5011de0
...
@@ -4071,6 +4071,16 @@ id st
...
@@ -4071,6 +4071,16 @@ id st
2 GA
2 GA
4 FL
4 FL
DROP TABLE t1,t2;
DROP TABLE t1,t2;
CREATE TABLE t1 (a int);
INSERT INTO t1 VALUES (1), (2);
EXPLAIN EXTENDED
SELECT * FROM (SELECT count(*) FROM t1 GROUP BY a) as res;
id select_type table type possible_keys key key_len ref rows Extra
1 PRIMARY <derived2> ALL NULL NULL NULL NULL 2
2 DERIVED t1 ALL NULL NULL NULL NULL 2 Using temporary; Using filesort
Warnings:
Note 1003 select `res`.`count(*)` AS `count(*)` from (select count(0) AS `count(*)` from `test`.`t1` group by `test`.`t1`.`a`) `res`
DROP TABLE t1;
End of 5.0 tests.
End of 5.0 tests.
CREATE TABLE t1 (a int, b int);
CREATE TABLE t1 (a int, b int);
INSERT INTO t1 VALUES (2,22),(1,11),(2,22);
INSERT INTO t1 VALUES (2,22),(1,11),(2,22);
...
...
mysql-test/r/trigger.result
View file @
a5011de0
...
@@ -1449,4 +1449,28 @@ isave
...
@@ -1449,4 +1449,28 @@ isave
1
1
2
2
drop table t1, t2, t3;
drop table t1, t2, t3;
CREATE TABLE t1 (id INTEGER);
CREATE TABLE t2 (id INTEGER);
INSERT INTO t2 VALUES (1),(2);
CREATE TRIGGER t1_test AFTER INSERT ON t1 FOR EACH ROW
INSERT INTO t2 VALUES (new.id);
SELECT GET_LOCK('B26162',20);
GET_LOCK('B26162',20)
1
SELECT 'rl_acquirer', GET_LOCK('B26162',5), id FROM t2 WHERE id = 1;
SET SESSION LOW_PRIORITY_UPDATES=1;
SET GLOBAL LOW_PRIORITY_UPDATES=1;
INSERT INTO t1 VALUES (5);
SELECT 'rl_contender', id FROM t2 WHERE id > 1;
SELECT RELEASE_LOCK('B26162');
RELEASE_LOCK('B26162')
0
rl_acquirer GET_LOCK('B26162',5) id
rl_acquirer 0 1
rl_contender id
rl_contender 2
DROP TRIGGER t1_test;
DROP TABLE t1,t2;
SET SESSION LOW_PRIORITY_UPDATES=DEFAULT;
SET GLOBAL LOW_PRIORITY_UPDATES=DEFAULT;
End of 5.0 tests
End of 5.0 tests
mysql-test/t/subselect.test
View file @
a5011de0
...
@@ -2906,6 +2906,20 @@ SELECT id, st FROM t1
...
@@ -2906,6 +2906,20 @@ SELECT id, st FROM t1
DROP
TABLE
t1
,
t2
;
DROP
TABLE
t1
,
t2
;
#
# Bug #28728: crash with EXPLAIN EXTENDED for a query with a derived table
# over a grouping subselect
#
CREATE
TABLE
t1
(
a
int
);
INSERT
INTO
t1
VALUES
(
1
),
(
2
);
EXPLAIN
EXTENDED
SELECT
*
FROM
(
SELECT
count
(
*
)
FROM
t1
GROUP
BY
a
)
as
res
;
DROP
TABLE
t1
;
--
echo
End
of
5.0
tests
.
--
echo
End
of
5.0
tests
.
#
#
...
...
mysql-test/t/trigger.test
View file @
a5011de0
...
@@ -1763,4 +1763,59 @@ select * from t1;
...
@@ -1763,4 +1763,59 @@ select * from t1;
select
*
from
t3
;
select
*
from
t3
;
drop
table
t1
,
t2
,
t3
;
drop
table
t1
,
t2
,
t3
;
#
# Bug #26162: Trigger DML ignores low_priority_updates setting
#
CREATE
TABLE
t1
(
id
INTEGER
);
CREATE
TABLE
t2
(
id
INTEGER
);
INSERT
INTO
t2
VALUES
(
1
),(
2
);
# trigger that produces the high priority insert, but should be low, adding
# LOW_PRIORITY fixes this
CREATE
TRIGGER
t1_test
AFTER
INSERT
ON
t1
FOR
EACH
ROW
INSERT
INTO
t2
VALUES
(
new
.
id
);
CONNECT
(
rl_acquirer
,
localhost
,
root
,,);
CONNECT
(
wl_acquirer
,
localhost
,
root
,,);
CONNECT
(
rl_contender
,
localhost
,
root
,,);
SELECT
GET_LOCK
(
'B26162'
,
20
);
CONNECTION
rl_acquirer
;
--
send
SELECT
'rl_acquirer'
,
GET_LOCK
(
'B26162'
,
5
),
id
FROM
t2
WHERE
id
=
1
;
CONNECTION
wl_acquirer
;
SET
SESSION
LOW_PRIORITY_UPDATES
=
1
;
SET
GLOBAL
LOW_PRIORITY_UPDATES
=
1
;
--
send
INSERT
INTO
t1
VALUES
(
5
);
CONNECTION
rl_contender
;
# must not "see" the row inserted by the INSERT (as it must run before the
# INSERT)
--
send
SELECT
'rl_contender'
,
id
FROM
t2
WHERE
id
>
1
;
CONNECTION
default
;
SELECT
RELEASE_LOCK
(
'B26162'
);
CONNECTION
wl_acquirer
;
--
reap
CONNECTION
rl_acquirer
;
--
reap
CONNECTION
rl_contender
;
--
reap
CONNECTION
default
;
DISCONNECT
rl_acquirer
;
DISCONNECT
wl_acquirer
;
DISCONNECT
rl_contender
;
DROP
TRIGGER
t1_test
;
DROP
TABLE
t1
,
t2
;
SET
SESSION
LOW_PRIORITY_UPDATES
=
DEFAULT
;
SET
GLOBAL
LOW_PRIORITY_UPDATES
=
DEFAULT
;
--
echo
End
of
5.0
tests
--
echo
End
of
5.0
tests
sql/set_var.cc
View file @
a5011de0
...
@@ -824,7 +824,11 @@ static void sys_default_ftb_syntax(THD *thd, enum_var_type type)
...
@@ -824,7 +824,11 @@ static void sys_default_ftb_syntax(THD *thd, enum_var_type type)
static
void
fix_low_priority_updates
(
THD
*
thd
,
enum_var_type
type
)
static
void
fix_low_priority_updates
(
THD
*
thd
,
enum_var_type
type
)
{
{
if
(
type
!=
OPT_GLOBAL
)
if
(
type
==
OPT_GLOBAL
)
thr_upgraded_concurrent_insert_lock
=
(
global_system_variables
.
low_priority_updates
?
TL_WRITE_LOW_PRIORITY
:
TL_WRITE
);
else
thd
->
update_lock_default
=
(
thd
->
variables
.
low_priority_updates
?
thd
->
update_lock_default
=
(
thd
->
variables
.
low_priority_updates
?
TL_WRITE_LOW_PRIORITY
:
TL_WRITE
);
TL_WRITE_LOW_PRIORITY
:
TL_WRITE
);
}
}
...
...
sql/sql_base.cc
View file @
a5011de0
...
@@ -2226,6 +2226,7 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root,
...
@@ -2226,6 +2226,7 @@ TABLE *open_table(THD *thd, TABLE_LIST *table_list, MEM_ROOT *mem_root,
HASH_SEARCH_STATE
state
;
HASH_SEARCH_STATE
state
;
DBUG_ENTER
(
"open_table"
);
DBUG_ENTER
(
"open_table"
);
DBUG_ASSERT
(
table_list
->
lock_type
!=
TL_WRITE_DEFAULT
);
/* find a unused table in the open table cache */
/* find a unused table in the open table cache */
if
(
refresh
)
if
(
refresh
)
*
refresh
=
0
;
*
refresh
=
0
;
...
@@ -3531,6 +3532,12 @@ int open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags)
...
@@ -3531,6 +3532,12 @@ int open_tables(THD *thd, TABLE_LIST **start, uint *counter, uint flags)
for
(
tables
=
*
start
;
tables
;
tables
=
tables
->
next_global
)
for
(
tables
=
*
start
;
tables
;
tables
=
tables
->
next_global
)
{
{
safe_to_ignore_table
=
FALSE
;
// 'FALSE', as per coding style
safe_to_ignore_table
=
FALSE
;
// 'FALSE', as per coding style
if
(
tables
->
lock_type
==
TL_WRITE_DEFAULT
)
{
tables
->
lock_type
=
thd
->
update_lock_default
;
DBUG_ASSERT
(
tables
->
lock_type
>=
TL_WRITE_ALLOW_WRITE
);
}
/*
/*
Ignore placeholders for derived tables. After derived tables
Ignore placeholders for derived tables. After derived tables
processing, link to created temporary table will be put here.
processing, link to created temporary table will be put here.
...
...
sql/sql_select.cc
View file @
a5011de0
...
@@ -2104,6 +2104,17 @@ JOIN::exec()
...
@@ -2104,6 +2104,17 @@ JOIN::exec()
thd
->
examined_row_count
+=
curr_join
->
examined_rows
;
thd
->
examined_row_count
+=
curr_join
->
examined_rows
;
DBUG_PRINT
(
"counts"
,
(
"thd->examined_row_count: %lu"
,
DBUG_PRINT
(
"counts"
,
(
"thd->examined_row_count: %lu"
,
(
ulong
)
thd
->
examined_row_count
));
(
ulong
)
thd
->
examined_row_count
));
/*
With EXPLAIN EXTENDED we have to restore original ref_array
for a derived table which is always materialized.
Otherwise we would not be able to print the query correctly.
*/
if
(
items0
&&
(
thd
->
lex
->
describe
&
DESCRIBE_EXTENDED
)
&&
select_lex
->
linkage
==
DERIVED_TABLE_TYPE
)
set_items_ref_array
(
items0
);
DBUG_VOID_RETURN
;
DBUG_VOID_RETURN
;
}
}
...
...
sql/sql_view.cc
View file @
a5011de0
...
@@ -816,7 +816,7 @@ loop_out:
...
@@ -816,7 +816,7 @@ loop_out:
}
}
}
}
else
else
{
{
if
(
mode
==
VIEW_ALTER
)
if
(
mode
==
VIEW_ALTER
)
{
{
my_error
(
ER_NO_SUCH_TABLE
,
MYF
(
0
),
view
->
db
,
view
->
alias
);
my_error
(
ER_NO_SUCH_TABLE
,
MYF
(
0
),
view
->
db
,
view
->
alias
);
...
@@ -825,6 +825,7 @@ loop_out:
...
@@ -825,6 +825,7 @@ loop_out:
}
}
}
}
}
}
/*
/*
Check that table of main select do not used in subqueries.
Check that table of main select do not used in subqueries.
...
...
sql/sql_yacc.yy
View file @
a5011de0
...
@@ -8295,7 +8295,7 @@ insert_lock_option:
...
@@ -8295,7 +8295,7 @@ insert_lock_option:
insert visible only after the table unlocking but everyone can
insert visible only after the table unlocking but everyone can
read table.
read table.
*/
*/
$$= (Lex->sphead ? TL_WRITE
:
TL_WRITE_CONCURRENT_INSERT);
$$= (Lex->sphead ? TL_WRITE
_DEFAULT :
TL_WRITE_CONCURRENT_INSERT);
#else
#else
$$= TL_WRITE_CONCURRENT_INSERT;
$$= TL_WRITE_CONCURRENT_INSERT;
#endif
#endif
...
@@ -8473,7 +8473,7 @@ insert_update_elem:
...
@@ -8473,7 +8473,7 @@ insert_update_elem:
};
};
opt_low_priority:
opt_low_priority:
/* empty */ { $$=
YYTHD->update_lock_default
; }
/* empty */ { $$=
TL_WRITE_DEFAULT
; }
| LOW_PRIORITY { $$= TL_WRITE_LOW_PRIORITY; };
| LOW_PRIORITY { $$= TL_WRITE_LOW_PRIORITY; };
/* Delete rows from a table */
/* Delete rows from a table */
...
@@ -8484,7 +8484,7 @@ delete:
...
@@ -8484,7 +8484,7 @@ delete:
LEX *lex= Lex;
LEX *lex= Lex;
lex->sql_command= SQLCOM_DELETE;
lex->sql_command= SQLCOM_DELETE;
mysql_init_select(lex);
mysql_init_select(lex);
lex->lock_option=
lex->thd->update_lock_default
;
lex->lock_option=
TL_WRITE_DEFAULT
;
lex->ignore= 0;
lex->ignore= 0;
lex->select_lex.init_order();
lex->select_lex.init_order();
}
}
...
@@ -9176,7 +9176,7 @@ opt_local:
...
@@ -9176,7 +9176,7 @@ opt_local:
| LOCAL_SYM { $$=1;};
| LOCAL_SYM { $$=1;};
load_data_lock:
load_data_lock:
/* empty */ { $$=
YYTHD->update_lock_default
; }
/* empty */ { $$=
TL_WRITE_DEFAULT
; }
| CONCURRENT
| CONCURRENT
{
{
#ifdef HAVE_QUERY_CACHE
#ifdef HAVE_QUERY_CACHE
...
@@ -9184,7 +9184,7 @@ load_data_lock:
...
@@ -9184,7 +9184,7 @@ load_data_lock:
Ignore this option in SP to avoid problem with query cache
Ignore this option in SP to avoid problem with query cache
*/
*/
if (Lex->sphead != 0)
if (Lex->sphead != 0)
$$=
YYTHD->update_lock_default
;
$$=
TL_WRITE_DEFAULT
;
else
else
#endif
#endif
$$= TL_WRITE_CONCURRENT_INSERT;
$$= TL_WRITE_CONCURRENT_INSERT;
...
@@ -10546,7 +10546,7 @@ table_lock:
...
@@ -10546,7 +10546,7 @@ table_lock:
lock_option:
lock_option:
READ_SYM { $$=TL_READ_NO_INSERT; }
READ_SYM { $$=TL_READ_NO_INSERT; }
| WRITE_SYM { $$=
YYTHD->update_lock_default
; }
| WRITE_SYM { $$=
TL_WRITE_DEFAULT
; }
| LOW_PRIORITY WRITE_SYM { $$=TL_WRITE_LOW_PRIORITY; }
| LOW_PRIORITY WRITE_SYM { $$=TL_WRITE_LOW_PRIORITY; }
| READ_SYM LOCAL_SYM { $$= TL_READ; }
| READ_SYM LOCAL_SYM { $$= TL_READ; }
;
;
...
...
sql/udf_example.c
View file @
a5011de0
...
@@ -130,7 +130,8 @@ typedef long long longlong;
...
@@ -130,7 +130,8 @@ typedef long long longlong;
#include <m_string.h>
/* To get strmov() */
#include <m_string.h>
/* To get strmov() */
#else
#else
/* when compiled as standalone */
/* when compiled as standalone */
#define strmov(a,b) strcpy(a,b)
#include <string.h>
#define strmov(a,b) stpcpy(a,b)
#define bzero(a,b) memset(a,0,b)
#define bzero(a,b) memset(a,0,b)
#define memcpy_fixed(a,b,c) memcpy(a,b,c)
#define memcpy_fixed(a,b,c) memcpy(a,b,c)
#endif
#endif
...
...
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