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
ac91a4a8
Commit
ac91a4a8
authored
Mar 14, 2007
by
kent@kent-amd64.(none)
Browse files
Options
Browse Files
Download
Plain Diff
Merge mysql.com:/home/kent/bk/tmp/mysql-5.0-build
into mysql.com:/home/kent/bk/tmp/mysql-5.1-build
parents
52ef6aa5
201e58d1
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
59 additions
and
2 deletions
+59
-2
configure.in
configure.in
+3
-0
storage/ndb/src/ndbapi/NdbBlob.cpp
storage/ndb/src/ndbapi/NdbBlob.cpp
+3
-1
storage/ndb/test/ndbapi/testBlobs.cpp
storage/ndb/test/ndbapi/testBlobs.cpp
+53
-1
No files found.
configure.in
View file @
ac91a4a8
...
...
@@ -739,6 +739,9 @@ AC_CHECK_FUNC(bind, , AC_CHECK_LIB(bind, bind))
# Check if crypt() exists in libc or libcrypt, sets LIBS if needed
AC_SEARCH_LIBS
(
crypt, crypt, AC_DEFINE
(
HAVE_CRYPT, 1,
[
crypt]
))
# For the sched_yield() function on Solaris
AC_CHECK_FUNC
(
sched_yield, , AC_CHECK_LIB
(
posix4, sched_yield
))
MYSQL_CHECK_ZLIB_WITH_COMPRESS
# For large pages support
...
...
storage/ndb/src/ndbapi/NdbBlob.cpp
View file @
ac91a4a8
...
...
@@ -1031,7 +1031,9 @@ NdbBlob::writeDataPrivate(const char* buf, Uint32 bytes)
DBUG_RETURN
(
-
1
);
Uint32
n
=
thePartSize
-
off
;
if
(
n
>
len
)
{
memset
(
thePartBuf
.
data
+
off
+
len
,
theFillChar
,
n
-
len
);
/* If we are adding data at the end, fill rest of part. */
if
(
pos
+
len
>=
theLength
)
memset
(
thePartBuf
.
data
+
off
+
len
,
theFillChar
,
n
-
len
);
n
=
len
;
}
memcpy
(
thePartBuf
.
data
+
off
,
buf
,
n
);
...
...
storage/ndb/test/ndbapi/testBlobs.cpp
View file @
ac91a4a8
...
...
@@ -138,6 +138,7 @@ printusage()
<<
" 2 readData / writeData"
<<
endl
<<
"bug tests (no blob test)"
<<
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
;
...
...
@@ -1807,6 +1808,56 @@ bugtest_4088()
return
0
;
}
static
int
bugtest_27018
()
{
DBG
(
"bug test 27018 - middle partial part write clobbers rest of part"
);
// insert rows
calcTups
(
false
);
CHK
(
insertPk
(
false
)
==
0
);
// new trans
for
(
unsigned
k
=
0
;
k
<
g_opt
.
m_rows
;
k
++
)
{
Tup
&
tup
=
g_tups
[
k
];
CHK
((
g_con
=
g_ndb
->
startTransaction
())
!=
0
);
CHK
((
g_opr
=
g_con
->
getNdbOperation
(
g_opt
.
m_tname
))
!=
0
);
CHK
(
g_opr
->
updateTuple
()
==
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
(
getBlobHandles
(
g_opr
)
==
0
);
CHK
(
g_con
->
execute
(
NoCommit
)
==
0
);
/* Update one byte in random position. */
Uint32
offset
=
urandom
(
tup
.
m_blob1
.
m_len
);
tup
.
m_blob1
.
m_buf
[
0
]
=
0xff
^
tup
.
m_blob1
.
m_val
[
offset
];
CHK
(
g_bh1
->
setPos
(
offset
)
==
0
);
CHK
(
g_bh1
->
writeData
(
&
(
tup
.
m_blob1
.
m_buf
[
0
]),
1
)
==
0
);
CHK
(
g_con
->
execute
(
Commit
)
==
0
);
g_ndb
->
closeTransaction
(
g_con
);
CHK
((
g_con
=
g_ndb
->
startTransaction
())
!=
0
);
CHK
((
g_opr
=
g_con
->
getNdbOperation
(
g_opt
.
m_tname
))
!=
0
);
CHK
(
g_opr
->
readTuple
()
==
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
(
getBlobHandles
(
g_opr
)
==
0
);
CHK
(
g_bh1
->
getValue
(
tup
.
m_blob1
.
m_buf
,
tup
.
m_blob1
.
m_len
)
==
0
);
CHK
(
g_con
->
execute
(
Commit
)
==
0
);
Uint64
len
=
~
0
;
CHK
(
g_bh1
->
getLength
(
len
)
==
0
&&
len
==
tup
.
m_blob1
.
m_len
);
tup
.
m_blob1
.
m_buf
[
offset
]
^=
0xff
;
CHK
(
memcmp
(
tup
.
m_blob1
.
m_buf
,
tup
.
m_blob1
.
m_val
,
tup
.
m_blob1
.
m_len
)
==
0
);
g_ndb
->
closeTransaction
(
g_con
);
}
return
0
;
}
static
int
bugtest_2222
()
{
...
...
@@ -1823,7 +1874,8 @@ static struct {
int
m_bug
;
int
(
*
m_test
)();
}
g_bugtest
[]
=
{
{
4088
,
bugtest_4088
}
{
4088
,
bugtest_4088
},
{
27018
,
bugtest_27018
}
};
NDB_COMMAND
(
testOdbcDriver
,
"testBlobs"
,
"testBlobs"
,
"testBlobs"
,
65535
)
...
...
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