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
3e262237
Commit
3e262237
authored
Jun 14, 2005
by
ndbdev@dl145b.mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge tulin@bk-internal.mysql.com:/home/bk/mysql-5.0
into dl145b.mysql.com:/home/ndbdev/tomas/mysql-5.1
parents
0257d41d
be1177c1
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
105 additions
and
18 deletions
+105
-18
mysql-test/r/func_if.result
mysql-test/r/func_if.result
+13
-0
mysql-test/t/func_if.test
mysql-test/t/func_if.test
+12
-0
sql/item_cmpfunc.cc
sql/item_cmpfunc.cc
+1
-3
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
+10
-6
storage/ndb/test/ndbapi/testTimeout.cpp
storage/ndb/test/ndbapi/testTimeout.cpp
+69
-9
No files found.
mysql-test/r/func_if.result
View file @
3e262237
...
...
@@ -108,3 +108,16 @@ id date_ord text
2 16-03-2005 Day 2
1 05-03-2005 Day 1
DROP TABLE t1;
CREATE TABLE t1 (a CHAR(10));
INSERT INTO t1 VALUES ('aaa'), (NULL), (''), ('bbb');
SELECT a, NULLIF(a,'') FROM t1;
a NULLIF(a,'')
aaa aaa
NULL NULL
NULL
bbb bbb
SELECT a, NULLIF(a,'') FROM t1 WHERE NULLIF(a,'') IS NULL;
a NULLIF(a,'')
NULL NULL
NULL
DROP TABLE t1;
mysql-test/t/func_if.test
View file @
3e262237
...
...
@@ -75,3 +75,15 @@ SELECT id, IF(date IS NULL, '-', FROM_UNIXTIME(date, '%d-%m-%Y')) AS date_ord, t
SELECT
id
,
IF
(
date
IS
NULL
,
'-'
,
FROM_UNIXTIME
(
date
,
'%d-%m-%Y'
))
AS
date_ord
,
text
FROM
t1
ORDER
BY
date_ord
DESC
;
DROP
TABLE
t1
;
#
# Test for bug #11142: evaluation of NULLIF when the first argument is NULL
#
CREATE
TABLE
t1
(
a
CHAR
(
10
));
INSERT
INTO
t1
VALUES
(
'aaa'
),
(
NULL
),
(
''
),
(
'bbb'
);
SELECT
a
,
NULLIF
(
a
,
''
)
FROM
t1
;
SELECT
a
,
NULLIF
(
a
,
''
)
FROM
t1
WHERE
NULLIF
(
a
,
''
)
IS
NULL
;
DROP
TABLE
t1
;
sql/item_cmpfunc.cc
View file @
3e262237
...
...
@@ -1406,9 +1406,7 @@ Item_func_nullif::val_decimal(my_decimal * decimal_value)
bool
Item_func_nullif
::
is_null
()
{
if
(
!
cmp
.
compare
())
return
(
null_value
=
1
);
return
0
;
return
(
null_value
=
(
!
cmp
.
compare
()
?
1
:
args
[
0
]
->
null_value
));
}
/*
...
...
storage/ndb/src/kernel/blocks/dbtc/DbtcMain.cpp
View file @
3e262237
...
...
@@ -763,11 +763,14 @@ Dbtc::set_timeout_value(Uint32 timeOut)
void
Dbtc
::
set_appl_timeout_value
(
Uint32
timeOut
)
{
if
(
timeOut
)
{
timeOut
/=
10
;
if
(
timeOut
<
ctimeOutValue
)
{
jam
();
c_appl_timeout_value
=
ctimeOutValue
;
}
//if
}
c_appl_timeout_value
=
timeOut
;
}
...
...
@@ -6286,7 +6289,8 @@ void Dbtc::timeOutFoundLab(Signal* signal, Uint32 TapiConPtr)
particular state we will use the application timeout parameter rather
than the shorter Deadlock detection timeout.
*/
if
((
ctcTimer
-
getApiConTimer
(
apiConnectptr
.
i
))
<=
c_appl_timeout_value
)
{
if
(
c_appl_timeout_value
==
0
||
(
ctcTimer
-
getApiConTimer
(
apiConnectptr
.
i
))
<=
c_appl_timeout_value
)
{
jam
();
return
;
}
//if
...
...
storage/ndb/test/ndbapi/testTimeout.cpp
View file @
3e262237
...
...
@@ -22,13 +22,13 @@
#include <NdbConfig.hpp>
#include <signaldata/DumpStateOrd.hpp>
#define TIMEOUT 3000
#define TIMEOUT (Uint32)3000
Uint32
g_org_timeout
=
3000
;
int
setTransactionTimeout
(
NDBT_Context
*
ctx
,
NDBT_Step
*
step
){
NdbRestarter
restarter
;
int
timeout
=
ctx
->
getProperty
(
"TransactionInactiveTimeout"
,
TIMEOUT
);
NdbConfig
conf
(
GETNDB
(
step
)
->
getNodeId
()
+
1
);
unsigned
int
nodeId
=
conf
.
getMasterNodeId
();
...
...
@@ -39,7 +39,7 @@ setTransactionTimeout(NDBT_Context* ctx, NDBT_Step* step){
return
NDBT_FAILED
;
}
int
val
[]
=
{
DumpStateOrd
::
TcSetApplTransactionTimeout
,
TIMEOUT
};
int
val
[]
=
{
DumpStateOrd
::
TcSetApplTransactionTimeout
,
timeout
};
if
(
restarter
.
dumpStateAllNodes
(
val
,
2
)
!=
0
){
return
NDBT_FAILED
;
}
...
...
@@ -95,8 +95,10 @@ int runTimeoutTrans2(NDBT_Context* ctx, NDBT_Step* step){
int
mul2
=
ctx
->
getProperty
(
"Op2"
,
(
Uint32
)
0
);
int
records
=
ctx
->
getNumRecords
();
int
minSleep
=
(
int
)(
TIMEOUT
*
1.5
);
int
maxSleep
=
TIMEOUT
*
2
;
int
timeout
=
ctx
->
getProperty
(
"TransactionInactiveTimeout"
,
TIMEOUT
);
int
minSleep
=
(
int
)(
timeout
*
1.5
);
int
maxSleep
=
timeout
*
2
;
HugoOperations
hugoOps
(
*
ctx
->
getTab
());
Ndb
*
pNdb
=
GETNDB
(
step
);
...
...
@@ -109,7 +111,7 @@ int runTimeoutTrans2(NDBT_Context* ctx, NDBT_Step* step){
op1
=
(
op1
%
5
);
op2
=
(
op2
%
5
);
ndbout
<<
stepNo
<<
": TransactionInactiveTimeout="
<<
TIMEOUT
ndbout
<<
stepNo
<<
": TransactionInactiveTimeout="
<<
timeout
<<
", minSleep="
<<
minSleep
<<
", maxSleep="
<<
maxSleep
<<
", op1="
<<
op1
...
...
@@ -211,8 +213,10 @@ int runDontTimeoutTrans(NDBT_Context* ctx, NDBT_Step* step){
int
loops
=
ctx
->
getNumLoops
();
int
stepNo
=
step
->
getStepNo
();
int
maxSleep
=
(
int
)(
TIMEOUT
*
0.5
);
ndbout
<<
"TransactionInactiveTimeout="
<<
TIMEOUT
int
timeout
=
ctx
->
getProperty
(
"TransactionInactiveTimeout"
,
TIMEOUT
);
int
maxSleep
=
(
int
)(
timeout
*
0.5
);
ndbout
<<
"TransactionInactiveTimeout="
<<
timeout
<<
", maxSleep="
<<
maxSleep
<<
endl
;
...
...
@@ -242,6 +246,51 @@ int runDontTimeoutTrans(NDBT_Context* ctx, NDBT_Step* step){
return
result
;
}
int
runDeadlockTimeoutTrans
(
NDBT_Context
*
ctx
,
NDBT_Step
*
step
){
int
result
=
NDBT_OK
;
int
loops
=
ctx
->
getNumLoops
();
int
stepNo
=
step
->
getStepNo
();
Uint32
deadlock_timeout
;
NdbConfig
conf
(
GETNDB
(
step
)
->
getNodeId
()
+
1
);
unsigned
int
nodeId
=
conf
.
getMasterNodeId
();
if
(
!
conf
.
getProperty
(
nodeId
,
NODE_TYPE_DB
,
CFG_DB_TRANSACTION_DEADLOCK_TIMEOUT
,
&
deadlock_timeout
)){
return
NDBT_FAILED
;
}
int
do_sleep
=
(
int
)(
deadlock_timeout
*
0.5
);
HugoOperations
hugoOps
(
*
ctx
->
getTab
());
Ndb
*
pNdb
=
GETNDB
(
step
);
for
(
int
l
=
0
;
l
<
loops
&&
result
==
NDBT_OK
;
l
++
){
do
{
// Commit transaction
CHECK
(
hugoOps
.
startTransaction
(
pNdb
)
==
0
);
CHECK
(
hugoOps
.
pkReadRecord
(
pNdb
,
stepNo
)
==
0
);
CHECK
(
hugoOps
.
execute_NoCommit
(
pNdb
)
==
0
);
int
sleep
=
deadlock_timeout
*
1.5
+
myRandom48
(
do_sleep
);
ndbout
<<
"Sleeping for "
<<
sleep
<<
" milliseconds"
<<
endl
;
NdbSleep_MilliSleep
(
sleep
);
// Expect that transaction has NOT timed-out
CHECK
(
hugoOps
.
execute_Commit
(
pNdb
)
==
0
);
}
while
(
false
);
hugoOps
.
closeTransaction
(
pNdb
);
}
return
result
;
}
int
runBuddyTransNoTimeout
(
NDBT_Context
*
ctx
,
NDBT_Step
*
step
){
int
result
=
NDBT_OK
;
int
loops
=
ctx
->
getNumLoops
();
...
...
@@ -295,6 +344,17 @@ TESTCASE("DontTimeoutTransaction",
FINALIZER
(
resetTransactionTimeout
);
FINALIZER
(
runClearTable
);
}
TESTCASE
(
"Bug11290"
,
"Setting TransactionInactiveTimeout to 0(zero) "
\
"should result in infinite timeout, and not as "
\
"was the bug, a timeout that is equal to the deadlock timeout"
){
TC_PROPERTY
(
"TransactionInactiveTimeout"
,(
Uint32
)
0
);
INITIALIZER
(
runLoadTable
);
INITIALIZER
(
setTransactionTimeout
);
STEPS
(
runDeadlockTimeoutTrans
,
1
);
FINALIZER
(
resetTransactionTimeout
);
FINALIZER
(
runClearTable
);
}
TESTCASE
(
"DontTimeoutTransaction5"
,
"Test that the transaction does not timeout "
\
"if we sleep during the transaction. Use a sleep "
\
...
...
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