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
2e8bec03
Commit
2e8bec03
authored
Mar 21, 2007
by
pekka@clam.ndb.mysql.com/clam.(none)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb - bug#24028 in 5.0
proper fix exists only in version >= 5.1
parent
9ce7ad94
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
46 additions
and
17 deletions
+46
-17
mysql-test/r/ndb_blob.result
mysql-test/r/ndb_blob.result
+2
-0
mysql-test/t/ndb_blob.test
mysql-test/t/ndb_blob.test
+5
-0
ndb/src/ndbapi/NdbBlob.cpp
ndb/src/ndbapi/NdbBlob.cpp
+6
-0
ndb/test/ndbapi/testBlobs.cpp
ndb/test/ndbapi/testBlobs.cpp
+33
-17
No files found.
mysql-test/r/ndb_blob.result
View file @
2e8bec03
...
...
@@ -76,6 +76,8 @@ commit;
select a from t1 where d is null;
a
1
delete from t1 where a=45567;
commit;
delete from t1 where a=1;
delete from t1 where a=2;
commit;
...
...
mysql-test/t/ndb_blob.test
View file @
2e8bec03
...
...
@@ -96,6 +96,11 @@ update t1 set d=null where a=1;
commit
;
select
a
from
t1
where
d
is
null
;
# bug#24028 - does not occur on MySQL level
# bug#17986 - not seen by us anymore but could show as warning here
delete
from
t1
where
a
=
45567
;
commit
;
# pk delete
delete
from
t1
where
a
=
1
;
delete
from
t1
where
a
=
2
;
...
...
ndb/src/ndbapi/NdbBlob.cpp
View file @
2e8bec03
...
...
@@ -407,6 +407,12 @@ NdbBlob::getHeadInlineValue(NdbOperation* anOp)
setErrorCode
(
anOp
);
DBUG_RETURN
(
-
1
);
}
/*
* If we get no data from this op then the operation is aborted
* one way or other. Following hack in 5.0 makes sure we don't read
* garbage. The proper fix exists only in version >= 5.1.
*/
theHead
->
length
=
0
;
DBUG_RETURN
(
0
);
}
...
...
ndb/test/ndbapi/testBlobs.cpp
View file @
2e8bec03
...
...
@@ -123,24 +123,24 @@ printusage()
<<
"metadata"
<<
endl
<<
" -pk2len N length of PK2 ["
<<
d
.
m_pk2len
<<
"/"
<<
g_max_pk2len
<<
"]"
<<
endl
<<
" -oneblob only 1 blob attribute [default 2]"
<<
endl
<<
"testcases for test/skip"
<<
endl
<<
"test
cases for test/skip"
<<
endl
<<
" k primary key ops"
<<
endl
<<
" i hash index ops"
<<
endl
<<
" s table scans"
<<
endl
<<
" r ordered index scans"
<<
endl
<<
" p performance test"
<<
endl
<<
"
additional flag
s for test/skip"
<<
endl
<<
"
operation
s for test/skip"
<<
endl
<<
" u update existing blob value"
<<
endl
<<
" n normal insert and update"
<<
endl
<<
" w insert and update using writeTuple"
<<
endl
<<
"blob operation styles for test/skip"
<<
endl
<<
" 0 getValue / setValue"
<<
endl
<<
" 1 setActiveHook"
<<
endl
<<
" 2 readData / writeData"
<<
endl
<<
"bug tests (no blob test)"
<<
endl
<<
"example: -test kn0 (need all 3 parts)"
<<
endl
<<
"bug tests"
<<
endl
<<
" -bug 4088 ndb api hang with mixed ops on index table"
<<
endl
<<
" -bug 27018 middle partial part write clobbers rest of part"
<<
endl
<<
" -bug nnnn delete + write gives 626"
<<
endl
<<
" -bug nnnn acc crash on delete and long key"
<<
endl
;
}
...
...
@@ -1028,6 +1028,32 @@ deletePk()
return
0
;
}
static
int
deleteNoPk
()
{
DBG
(
"--- deleteNoPk ---"
);
Tup
no_tup
;
// bug#24028
no_tup
.
m_pk1
=
0xb1ffb1ff
;
sprintf
(
no_tup
.
m_pk2
,
"%-*.*s"
,
g_opt
.
m_pk2len
,
g_opt
.
m_pk2len
,
"b1ffb1ff"
);
CHK
((
g_con
=
g_ndb
->
startTransaction
())
!=
0
);
Tup
&
tup
=
no_tup
;
DBG
(
"deletePk pk1="
<<
hex
<<
tup
.
m_pk1
);
CHK
((
g_opr
=
g_con
->
getNdbOperation
(
g_opt
.
m_tname
))
!=
0
);
CHK
(
g_opr
->
deleteTuple
()
==
0
);
CHK
(
g_opr
->
equal
(
"PK1"
,
tup
.
m_pk1
)
==
0
);
if
(
g_opt
.
m_pk2len
!=
0
)
CHK
(
g_opr
->
equal
(
"PK2"
,
tup
.
m_pk2
)
==
0
);
CHK
(
g_con
->
execute
(
Commit
)
==
-
1
);
// fail
// BUG: error should be on op but is on con now
DBG
(
"con: "
<<
g_con
->
getNdbError
());
DBG
(
"opr: "
<<
g_opr
->
getNdbError
());
CHK
(
g_con
->
getNdbError
().
code
==
626
||
g_opr
->
getNdbError
().
code
==
626
);
g_ndb
->
closeTransaction
(
g_con
);
g_opr
=
0
;
g_con
=
0
;
return
0
;
}
// hash index ops
static
int
...
...
@@ -1383,6 +1409,7 @@ testmain()
CHK
(
readPk
(
style
)
==
0
);
}
CHK
(
deletePk
()
==
0
);
CHK
(
deleteNoPk
()
==
0
);
CHK
(
verifyBlob
()
==
0
);
}
if
(
testcase
(
'w'
))
{
...
...
@@ -1397,6 +1424,7 @@ testmain()
CHK
(
readPk
(
style
)
==
0
);
}
CHK
(
deletePk
()
==
0
);
CHK
(
deleteNoPk
()
==
0
);
CHK
(
verifyBlob
()
==
0
);
}
}
...
...
@@ -1857,18 +1885,6 @@ bugtest_27018()
return
0
;
}
static
int
bugtest_2222
()
{
return
0
;
}
static
int
bugtest_3333
()
{
return
0
;
}
static
struct
{
int
m_bug
;
int
(
*
m_test
)();
...
...
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