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
b9ec6803
Commit
b9ec6803
authored
Nov 03, 2004
by
pekka@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
NDB blobs - try to handle insert-update-delete under autocommit=0
parent
424ff974
Changes
7
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
50 additions
and
4 deletions
+50
-4
mysql-test/r/ndb_blob.result
mysql-test/r/ndb_blob.result
+8
-1
mysql-test/t/ndb_blob.test
mysql-test/t/ndb_blob.test
+7
-1
ndb/src/ndbapi/NdbBlob.cpp
ndb/src/ndbapi/NdbBlob.cpp
+12
-0
ndb/src/ndbapi/NdbConnection.cpp
ndb/src/ndbapi/NdbConnection.cpp
+5
-0
ndb/src/ndbapi/NdbOperationExec.cpp
ndb/src/ndbapi/NdbOperationExec.cpp
+1
-1
ndb/src/ndbapi/ndberror.c
ndb/src/ndbapi/ndberror.c
+1
-1
ndb/test/ndbapi/testBlobs.cpp
ndb/test/ndbapi/testBlobs.cpp
+16
-0
No files found.
mysql-test/r/ndb_blob.result
View file @
b9ec6803
...
@@ -414,6 +414,7 @@ a b c d
...
@@ -414,6 +414,7 @@ a b c d
9 b9 999 dd9
9 b9 999 dd9
drop table t1;
drop table t1;
drop database test2;
drop database test2;
set autocommit=0;
create table t1 (
create table t1 (
a int not null primary key,
a int not null primary key,
b tinytext
b tinytext
...
@@ -422,9 +423,13 @@ insert into t1 values(1, 'x');
...
@@ -422,9 +423,13 @@ insert into t1 values(1, 'x');
update t1 set b = 'y';
update t1 set b = 'y';
select * from t1;
select * from t1;
a b
a b
1
x
1
y
delete from t1;
delete from t1;
select * from t1;
a b
commit;
drop table t1;
drop table t1;
set autocommit=0;
create table t1 (
create table t1 (
a int not null primary key,
a int not null primary key,
b text not null
b text not null
...
@@ -433,6 +438,7 @@ insert into t1 values(1, '');
...
@@ -433,6 +438,7 @@ insert into t1 values(1, '');
select * from t1;
select * from t1;
a b
a b
1
1
commit;
drop table t1;
drop table t1;
set autocommit=1;
set autocommit=1;
use test;
use test;
...
@@ -454,6 +460,7 @@ select * from t1 order by a;
...
@@ -454,6 +460,7 @@ select * from t1 order by a;
a b
a b
1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
1 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
2 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
2 BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
set autocommit=1;
alter table t1 engine=myisam;
alter table t1 engine=myisam;
select * from t1 order by a;
select * from t1 order by a;
a b
a b
...
...
mysql-test/t/ndb_blob.test
View file @
b9ec6803
...
@@ -337,8 +337,9 @@ select * from t1 order by a;
...
@@ -337,8 +337,9 @@ select * from t1 order by a;
drop
table
t1
;
drop
table
t1
;
drop
database
test2
;
drop
database
test2
;
# -- bug-5252 tinytext crashes --
# -- bug-5252 tinytext crashes
plus no-commit result
--
set
autocommit
=
0
;
create
table
t1
(
create
table
t1
(
a
int
not
null
primary
key
,
a
int
not
null
primary
key
,
b
tinytext
b
tinytext
...
@@ -348,10 +349,13 @@ insert into t1 values(1, 'x');
...
@@ -348,10 +349,13 @@ insert into t1 values(1, 'x');
update
t1
set
b
=
'y'
;
update
t1
set
b
=
'y'
;
select
*
from
t1
;
select
*
from
t1
;
delete
from
t1
;
delete
from
t1
;
select
*
from
t1
;
commit
;
drop
table
t1
;
drop
table
t1
;
# -- bug-5013 insert empty string to text --
# -- bug-5013 insert empty string to text --
set
autocommit
=
0
;
create
table
t1
(
create
table
t1
(
a
int
not
null
primary
key
,
a
int
not
null
primary
key
,
b
text
not
null
b
text
not
null
...
@@ -359,6 +363,7 @@ create table t1 (
...
@@ -359,6 +363,7 @@ create table t1 (
insert
into
t1
values
(
1
,
''
);
insert
into
t1
values
(
1
,
''
);
select
*
from
t1
;
select
*
from
t1
;
commit
;
drop
table
t1
;
drop
table
t1
;
# -- bug #5349 --
# -- bug #5349 --
...
@@ -380,6 +385,7 @@ alter table t1 engine=ndb;
...
@@ -380,6 +385,7 @@ alter table t1 engine=ndb;
select
*
from
t1
order
by
a
;
select
*
from
t1
order
by
a
;
# -- bug #5872 --
# -- bug #5872 --
set
autocommit
=
1
;
alter
table
t1
engine
=
myisam
;
alter
table
t1
engine
=
myisam
;
select
*
from
t1
order
by
a
;
select
*
from
t1
order
by
a
;
drop
table
t1
;
drop
table
t1
;
ndb/src/ndbapi/NdbBlob.cpp
View file @
b9ec6803
...
@@ -1428,6 +1428,18 @@ NdbBlob::postExecute(ExecType anExecType)
...
@@ -1428,6 +1428,18 @@ NdbBlob::postExecute(ExecType anExecType)
if
(
invokeActiveHook
()
==
-
1
)
if
(
invokeActiveHook
()
==
-
1
)
return
-
1
;
return
-
1
;
}
}
if
(
anExecType
==
NoCommit
&&
theHeadInlineUpdateFlag
)
{
NdbOperation
*
tOp
=
theNdbCon
->
getNdbOperation
(
theTable
);
if
(
tOp
==
NULL
||
tOp
->
updateTuple
()
==
-
1
||
setTableKeyValue
(
tOp
)
==
-
1
||
setHeadInlineValue
(
tOp
)
==
-
1
)
{
setErrorCode
(
ErrAbort
);
return
-
1
;
}
tOp
->
m_abortOption
=
AbortOnError
;
DBG
(
"added op to update head+inline"
);
}
DBG
(
"postExecute [out]"
);
DBG
(
"postExecute [out]"
);
return
0
;
return
0
;
}
}
...
...
ndb/src/ndbapi/NdbConnection.cpp
View file @
b9ec6803
...
@@ -340,7 +340,12 @@ NdbConnection::execute(ExecType aTypeOfExec,
...
@@ -340,7 +340,12 @@ NdbConnection::execute(ExecType aTypeOfExec,
if
(
executeNoBlobs
(
tExecType
,
abortOption
,
forceSend
)
==
-
1
)
if
(
executeNoBlobs
(
tExecType
,
abortOption
,
forceSend
)
==
-
1
)
ret
=
-
1
;
ret
=
-
1
;
#ifndef VM_TRACE
// can happen in complex abort cases
theFirstOpInList
=
theLastOpInList
=
NULL
;
#else
assert
(
theFirstOpInList
==
NULL
&&
theLastOpInList
==
NULL
);
assert
(
theFirstOpInList
==
NULL
&&
theLastOpInList
==
NULL
);
#endif
{
{
NdbOperation
*
tOp
=
theCompletedFirstOp
;
NdbOperation
*
tOp
=
theCompletedFirstOp
;
...
...
ndb/src/ndbapi/NdbOperationExec.cpp
View file @
b9ec6803
...
@@ -552,7 +552,7 @@ NdbOperation::receiveTCKEYREF( NdbApiSignal* aSignal)
...
@@ -552,7 +552,7 @@ NdbOperation::receiveTCKEYREF( NdbApiSignal* aSignal)
theNdbCon
->
theReturnStatus
=
NdbConnection
::
ReturnFailure
;
theNdbCon
->
theReturnStatus
=
NdbConnection
::
ReturnFailure
;
theError
.
code
=
aSignal
->
readData
(
4
);
theError
.
code
=
aSignal
->
readData
(
4
);
theNdbCon
->
setOperationErrorCodeAbort
(
aSignal
->
readData
(
4
),
ao
);
theNdbCon
->
setOperationErrorCodeAbort
(
aSignal
->
readData
(
4
),
m_abortOption
);
if
(
theOperationType
!=
ReadRequest
||
!
theSimpleIndicator
)
// not simple read
if
(
theOperationType
!=
ReadRequest
||
!
theSimpleIndicator
)
// not simple read
return
theNdbCon
->
OpCompleteFailure
(
ao
,
m_abortOption
!=
IgnoreError
);
return
theNdbCon
->
OpCompleteFailure
(
ao
,
m_abortOption
!=
IgnoreError
);
...
...
ndb/src/ndbapi/ndberror.c
View file @
b9ec6803
...
@@ -150,7 +150,7 @@ ErrorBundle ErrorCodes[] = {
...
@@ -150,7 +150,7 @@ ErrorBundle ErrorCodes[] = {
{
623
,
IS
,
"623"
},
{
623
,
IS
,
"623"
},
{
624
,
IS
,
"624"
},
{
624
,
IS
,
"624"
},
{
625
,
IS
,
"Out of memory in Ndb Kernel, index part"
},
{
625
,
IS
,
"Out of memory in Ndb Kernel, index part"
},
{
826
,
IS
,
"
826
"
},
{
826
,
IS
,
"
Too many tables and attributes (increase MaxNoOfAttributes)
"
},
{
827
,
IS
,
"Out of memory in Ndb Kernel, data part"
},
{
827
,
IS
,
"Out of memory in Ndb Kernel, data part"
},
{
832
,
IS
,
"832"
},
{
832
,
IS
,
"832"
},
...
...
ndb/test/ndbapi/testBlobs.cpp
View file @
b9ec6803
...
@@ -42,6 +42,7 @@ struct Opt {
...
@@ -42,6 +42,7 @@ struct Opt {
bool
m_core
;
bool
m_core
;
bool
m_dbg
;
bool
m_dbg
;
bool
m_dbgall
;
bool
m_dbgall
;
const
char
*
m_dbug
;
bool
m_full
;
bool
m_full
;
unsigned
m_loop
;
unsigned
m_loop
;
unsigned
m_parts
;
unsigned
m_parts
;
...
@@ -66,6 +67,7 @@ struct Opt {
...
@@ -66,6 +67,7 @@ struct Opt {
m_core
(
false
),
m_core
(
false
),
m_dbg
(
false
),
m_dbg
(
false
),
m_dbgall
(
false
),
m_dbgall
(
false
),
m_dbug
(
0
),
m_full
(
false
),
m_full
(
false
),
m_loop
(
1
),
m_loop
(
1
),
m_parts
(
10
),
m_parts
(
10
),
...
@@ -100,6 +102,7 @@ printusage()
...
@@ -100,6 +102,7 @@ printusage()
<<
" -core dump core on error"
<<
endl
<<
" -core dump core on error"
<<
endl
<<
" -dbg print debug"
<<
endl
<<
" -dbg print debug"
<<
endl
<<
" -dbgall print also NDB API debug (if compiled in)"
<<
endl
<<
" -dbgall print also NDB API debug (if compiled in)"
<<
endl
<<
" -dbug opt dbug options"
<<
endl
<<
" -full read/write only full blob values"
<<
endl
<<
" -full read/write only full blob values"
<<
endl
<<
" -loop N loop N times 0=forever ["
<<
d
.
m_loop
<<
"]"
<<
endl
<<
" -loop N loop N times 0=forever ["
<<
d
.
m_loop
<<
"]"
<<
endl
<<
" -parts N max parts in blob value ["
<<
d
.
m_parts
<<
"]"
<<
endl
<<
" -parts N max parts in blob value ["
<<
d
.
m_parts
<<
"]"
<<
endl
...
@@ -1046,8 +1049,12 @@ writeIdx(int style)
...
@@ -1046,8 +1049,12 @@ writeIdx(int style)
if
(
style
==
0
)
{
if
(
style
==
0
)
{
CHK
(
setBlobValue
(
tup
)
==
0
);
CHK
(
setBlobValue
(
tup
)
==
0
);
}
else
if
(
style
==
1
)
{
}
else
if
(
style
==
1
)
{
// non-nullable must be set
CHK
(
g_bh1
->
setValue
(
""
,
0
)
==
0
);
CHK
(
setBlobWriteHook
(
tup
)
==
0
);
CHK
(
setBlobWriteHook
(
tup
)
==
0
);
}
else
{
}
else
{
// non-nullable must be set
CHK
(
g_bh1
->
setValue
(
""
,
0
)
==
0
);
CHK
(
g_con
->
execute
(
NoCommit
)
==
0
);
CHK
(
g_con
->
execute
(
NoCommit
)
==
0
);
CHK
(
writeBlobData
(
tup
)
==
0
);
CHK
(
writeBlobData
(
tup
)
==
0
);
}
}
...
@@ -1463,6 +1470,12 @@ NDB_COMMAND(testOdbcDriver, "testBlobs", "testBlobs", "testBlobs", 65535)
...
@@ -1463,6 +1470,12 @@ NDB_COMMAND(testOdbcDriver, "testBlobs", "testBlobs", "testBlobs", 65535)
putenv
(
strdup
(
"NDB_BLOB_DEBUG=1"
));
putenv
(
strdup
(
"NDB_BLOB_DEBUG=1"
));
continue
;
continue
;
}
}
if
(
strcmp
(
arg
,
"-dbug"
)
==
0
)
{
if
(
++
argv
,
--
argc
>
0
)
{
g_opt
.
m_dbug
=
strdup
(
argv
[
0
]);
continue
;
}
}
if
(
strcmp
(
arg
,
"-full"
)
==
0
)
{
if
(
strcmp
(
arg
,
"-full"
)
==
0
)
{
g_opt
.
m_full
=
true
;
g_opt
.
m_full
=
true
;
continue
;
continue
;
...
@@ -1533,6 +1546,9 @@ NDB_COMMAND(testOdbcDriver, "testBlobs", "testBlobs", "testBlobs", 65535)
...
@@ -1533,6 +1546,9 @@ NDB_COMMAND(testOdbcDriver, "testBlobs", "testBlobs", "testBlobs", 65535)
printusage
();
printusage
();
return
NDBT_ProgramExit
(
NDBT_WRONGARGS
);
return
NDBT_ProgramExit
(
NDBT_WRONGARGS
);
}
}
if
(
g_opt
.
m_dbug
!=
0
)
{
DBUG_PUSH
(
g_opt
.
m_dbug
);
}
if
(
g_opt
.
m_pk2len
==
0
)
{
if
(
g_opt
.
m_pk2len
==
0
)
{
char
b
[
100
];
char
b
[
100
];
b
[
0
]
=
0
;
b
[
0
]
=
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