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
00b902b0
Commit
00b902b0
authored
Dec 02, 2005
by
evgen@moonbone.local
Browse files
Options
Browse Files
Download
Plain Diff
Manually merged
parents
035c24be
15135053
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
105 additions
and
13 deletions
+105
-13
mysql-test/r/query_cache.result
mysql-test/r/query_cache.result
+25
-0
mysql-test/r/update.result
mysql-test/r/update.result
+13
-0
mysql-test/t/query_cache.test
mysql-test/t/query_cache.test
+14
-0
mysql-test/t/update.test
mysql-test/t/update.test
+17
-0
ndb/src/kernel/blocks/backup/Backup.cpp
ndb/src/kernel/blocks/backup/Backup.cpp
+10
-5
sql/sql_cache.cc
sql/sql_cache.cc
+19
-2
sql/sql_update.cc
sql/sql_update.cc
+7
-6
No files found.
mysql-test/r/query_cache.result
View file @
00b902b0
...
@@ -1287,3 +1287,28 @@ Variable_name Value
...
@@ -1287,3 +1287,28 @@ Variable_name Value
Last_query_cost 0.000000
Last_query_cost 0.000000
drop table t1;
drop table t1;
SET GLOBAL query_cache_size=0;
SET GLOBAL query_cache_size=0;
create table t1 (a int);
flush status;
(select a from t1) union (select a from t1);
a
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
show status like "Qcache_inserts";
Variable_name Value
Qcache_inserts 1
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 0
(select a from t1) union (select a from t1);
a
show status like "Qcache_queries_in_cache";
Variable_name Value
Qcache_queries_in_cache 1
show status like "Qcache_inserts";
Variable_name Value
Qcache_inserts 1
show status like "Qcache_hits";
Variable_name Value
Qcache_hits 1
drop table t1;
mysql-test/r/update.result
View file @
00b902b0
...
@@ -345,3 +345,16 @@ f1
...
@@ -345,3 +345,16 @@ f1
2000-01-01
2000-01-01
2002-02-02
2002-02-02
drop table t1;
drop table t1;
create table t1 (f1 int);
create table t2 (f2 int);
insert into t1 values(1),(2);
insert into t2 values(1),(1);
update t1,t2 set f1=3,f2=3 where f1=f2 and f1=1;
affected rows: 3
info: Rows matched: 3 Changed: 3 Warnings: 0
update t2 set f2=1;
update t1 set f1=1 where f1=3;
update t2,t1 set f1=3,f2=3 where f1=f2 and f1=1;
affected rows: 3
info: Rows matched: 3 Changed: 3 Warnings: 0
drop table t1,t2;
mysql-test/t/query_cache.test
View file @
00b902b0
...
@@ -743,6 +743,20 @@ show status like "Qcache_hits";
...
@@ -743,6 +743,20 @@ show status like "Qcache_hits";
drop
table
t1
;
drop
table
t1
;
#
#
# BUG#14652: Queries with leading '(' characters.
#
create
table
t1
(
a
int
);
flush
status
;
(
select
a
from
t1
)
union
(
select
a
from
t1
);
show
status
like
"Qcache_queries_in_cache"
;
show
status
like
"Qcache_inserts"
;
show
status
like
"Qcache_hits"
;
(
select
a
from
t1
)
union
(
select
a
from
t1
);
show
status
like
"Qcache_queries_in_cache"
;
show
status
like
"Qcache_inserts"
;
show
status
like
"Qcache_hits"
;
drop
table
t1
;
# SP cursors and selects with query cache (BUG#9715)
# SP cursors and selects with query cache (BUG#9715)
#
#
create
table
t1
(
a
int
);
create
table
t1
(
a
int
);
...
...
mysql-test/t/update.test
View file @
00b902b0
...
@@ -270,4 +270,21 @@ insert into t1 values('2000-01-01'),('0000-00-00');
...
@@ -270,4 +270,21 @@ insert into t1 values('2000-01-01'),('0000-00-00');
update
t1
set
f1
=
'2002-02-02'
where
f1
is
null
;
update
t1
set
f1
=
'2002-02-02'
where
f1
is
null
;
select
*
from
t1
;
select
*
from
t1
;
drop
table
t1
;
drop
table
t1
;
#
# Bug#15028 Multitable update returns different numbers of matched rows
# depending on table order
create
table
t1
(
f1
int
);
create
table
t2
(
f2
int
);
insert
into
t1
values
(
1
),(
2
);
insert
into
t2
values
(
1
),(
1
);
--
enable_info
update
t1
,
t2
set
f1
=
3
,
f2
=
3
where
f1
=
f2
and
f1
=
1
;
--
disable_info
update
t2
set
f2
=
1
;
update
t1
set
f1
=
1
where
f1
=
3
;
--
enable_info
update
t2
,
t1
set
f1
=
3
,
f2
=
3
where
f1
=
f2
and
f1
=
1
;
--
disable_info
drop
table
t1
,
t2
;
# End of 4.1 tests
# End of 4.1 tests
ndb/src/kernel/blocks/backup/Backup.cpp
View file @
00b902b0
...
@@ -886,13 +886,17 @@ Backup::checkNodeFail(Signal* signal,
...
@@ -886,13 +886,17 @@ Backup::checkNodeFail(Signal* signal,
pos
=
&
ref
->
nodeId
-
signal
->
getDataPtr
();
pos
=
&
ref
->
nodeId
-
signal
->
getDataPtr
();
break
;
break
;
}
}
case
GSN_WAIT_GCP_REQ
:
case
GSN_DROP_TRIG_REQ
:
case
GSN_CREATE_TRIG_REQ
:
case
GSN_CREATE_TRIG_REQ
:
case
GSN_ALTER_TRIG_REQ
:
case
GSN_ALTER_TRIG_REQ
:
case
GSN_WAIT_GCP_REQ
:
ptr
.
p
->
setErrorCode
(
AbortBackupOrd
::
BackupFailureDueToNodeFail
);
return
;
case
GSN_UTIL_SEQUENCE_REQ
:
case
GSN_UTIL_SEQUENCE_REQ
:
case
GSN_UTIL_LOCK_REQ
:
case
GSN_UTIL_LOCK_REQ
:
case
GSN_DROP_TRIG_REQ
:
return
;
return
;
default:
ndbrequire
(
false
);
}
}
for
(
Uint32
i
=
0
;
(
i
=
mask
.
find
(
i
+
1
))
!=
NdbNodeBitmask
::
NotFound
;
)
for
(
Uint32
i
=
0
;
(
i
=
mask
.
find
(
i
+
1
))
!=
NdbNodeBitmask
::
NotFound
;
)
...
@@ -1980,7 +1984,7 @@ Backup::execBACKUP_FRAGMENT_REF(Signal* signal)
...
@@ -1980,7 +1984,7 @@ Backup::execBACKUP_FRAGMENT_REF(Signal* signal)
}
}
}
}
}
}
ndbrequire
(
false
)
;
goto
err
;
done:
done:
ptr
.
p
->
masterData
.
sendCounter
--
;
ptr
.
p
->
masterData
.
sendCounter
--
;
...
@@ -1993,6 +1997,7 @@ done:
...
@@ -1993,6 +1997,7 @@ done:
return
;
return
;
}
//if
}
//if
err:
AbortBackupOrd
*
ord
=
(
AbortBackupOrd
*
)
signal
->
getDataPtrSend
();
AbortBackupOrd
*
ord
=
(
AbortBackupOrd
*
)
signal
->
getDataPtrSend
();
ord
->
backupId
=
ptr
.
p
->
backupId
;
ord
->
backupId
=
ptr
.
p
->
backupId
;
ord
->
backupPtr
=
ptr
.
i
;
ord
->
backupPtr
=
ptr
.
i
;
...
...
sql/sql_cache.cc
View file @
00b902b0
...
@@ -989,10 +989,27 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
...
@@ -989,10 +989,27 @@ Query_cache::send_result_to_client(THD *thd, char *sql, uint query_length)
my_toupper
(
system_charset_info
,
sql
[
1
])
!=
'E'
||
my_toupper
(
system_charset_info
,
sql
[
1
])
!=
'E'
||
my_toupper
(
system_charset_info
,
sql
[
2
])
!=
'L'
)
&&
my_toupper
(
system_charset_info
,
sql
[
2
])
!=
'L'
)
&&
sql
[
0
]
!=
'/'
)
sql
[
0
]
!=
'/'
)
{
uint
i
=
0
;
/*
Skip '(' characters in queries like following:
(select a from t1) union (select a from t1);
*/
while
(
sql
[
i
]
==
'('
)
i
++
;
/*
Test if the query is a SELECT
(pre-space is removed in dispatch_command)
*/
if
(
my_toupper
(
system_charset_info
,
sql
[
i
])
!=
'S'
||
my_toupper
(
system_charset_info
,
sql
[
i
+
1
])
!=
'E'
||
my_toupper
(
system_charset_info
,
sql
[
i
+
2
])
!=
'L'
)
{
{
DBUG_PRINT
(
"qcache"
,
(
"The statement is not a SELECT; Not cached"
));
DBUG_PRINT
(
"qcache"
,
(
"The statement is not a SELECT; Not cached"
));
goto
err
;
goto
err
;
}
}
}
STRUCT_LOCK
(
&
structure_guard_mutex
);
STRUCT_LOCK
(
&
structure_guard_mutex
);
if
(
query_cache_size
==
0
)
if
(
query_cache_size
==
0
)
...
...
sql/sql_update.cc
View file @
00b902b0
...
@@ -1290,22 +1290,23 @@ bool multi_update::send_data(List<Item> ¬_used_values)
...
@@ -1290,22 +1290,23 @@ bool multi_update::send_data(List<Item> ¬_used_values)
int
error
;
int
error
;
TABLE
*
tmp_table
=
tmp_tables
[
offset
];
TABLE
*
tmp_table
=
tmp_tables
[
offset
];
fill_record
(
thd
,
tmp_table
->
field
+
1
,
*
values_for_table
[
offset
],
1
);
fill_record
(
thd
,
tmp_table
->
field
+
1
,
*
values_for_table
[
offset
],
1
);
found
++
;
/* Store pointer to row */
/* Store pointer to row */
memcpy
((
char
*
)
tmp_table
->
field
[
0
]
->
ptr
,
memcpy
((
char
*
)
tmp_table
->
field
[
0
]
->
ptr
,
(
char
*
)
table
->
file
->
ref
,
table
->
file
->
ref_length
);
(
char
*
)
table
->
file
->
ref
,
table
->
file
->
ref_length
);
/* Write row, ignoring duplicated updates to a row */
/* Write row, ignoring duplicated updates to a row */
if
((
error
=
tmp_table
->
file
->
write_row
(
tmp_table
->
record
[
0
]))
&&
if
(
error
=
tmp_table
->
file
->
write_row
(
tmp_table
->
record
[
0
]))
(
error
!=
HA_ERR_FOUND_DUPP_KEY
&&
error
!=
HA_ERR_FOUND_DUPP_UNIQUE
))
{
{
if
(
create_myisam_from_heap
(
thd
,
tmp_table
,
tmp_table_param
+
offset
,
if
(
error
!=
HA_ERR_FOUND_DUPP_KEY
&&
error
,
1
))
error
!=
HA_ERR_FOUND_DUPP_UNIQUE
&&
create_myisam_from_heap
(
thd
,
tmp_table
,
tmp_table_param
+
offset
,
error
,
1
))
{
{
do_update
=
0
;
do_update
=
0
;
DBUG_RETURN
(
1
);
// Not a table_is_full error
DBUG_RETURN
(
1
);
// Not a table_is_full error
}
}
}
}
else
found
++
;
}
}
}
}
DBUG_RETURN
(
0
);
DBUG_RETURN
(
0
);
...
...
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