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
15783e44
Commit
15783e44
authored
Jul 19, 2006
by
pekka@orca.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb - bug#14935 fix
parent
3d442310
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
41 additions
and
3 deletions
+41
-3
storage/ndb/src/kernel/blocks/ERROR_codes.txt
storage/ndb/src/kernel/blocks/ERROR_codes.txt
+4
-1
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp
+3
-0
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp
+9
-2
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
+11
-0
storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp
storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp
+14
-0
No files found.
storage/ndb/src/kernel/blocks/ERROR_codes.txt
View file @
15783e44
...
...
@@ -2,7 +2,7 @@ Next QMGR 1
Next NDBCNTR 1000
Next NDBFS 2000
Next DBACC 3002
Next DBTUP 40
13
Next DBTUP 40
24
Next DBLQH 5043
Next DBDICT 6007
Next DBDIH 7177
...
...
@@ -484,3 +484,6 @@ Dbtup:
4019 - handleInsert - Alloc rowid error
4020 - handleInsert - Size change error
4021 - handleInsert - Out of disk space
4022 - addTuxEntries - fail before add of first entry
4023 - addTuxEntries - fail add of last entry (the entry for last index)
storage/ndb/src/kernel/blocks/dbtup/Dbtup.hpp
View file @
15783e44
...
...
@@ -2156,6 +2156,9 @@ private:
//------------------------------------------------------------------
void
tupkeyErrorLab
(
Signal
*
signal
);
// need flag to skip TUX indexes
void
do_tup_abortreq
(
Signal
*
,
Uint32
flags
);
//------------------------------------------------------------------
//------------------------------------------------------------------
// Methods to handle execution of TUP_COMMITREQ + TUP_ABORTREQ.
...
...
storage/ndb/src/kernel/blocks/dbtup/DbtupAbort.cpp
View file @
15783e44
...
...
@@ -62,6 +62,11 @@ void Dbtup::freeAttrinbufrec(Uint32 anAttrBuf)
* Abort abort this operation and all after (nextActiveOp's)
*/
void
Dbtup
::
execTUP_ABORTREQ
(
Signal
*
signal
)
{
do_tup_abortreq
(
signal
,
0
);
}
void
Dbtup
::
do_tup_abortreq
(
Signal
*
signal
,
Uint32
flags
)
{
OperationrecPtr
regOperPtr
;
FragrecordPtr
regFragPtr
;
...
...
@@ -91,7 +96,8 @@ void Dbtup::execTUP_ABORTREQ(Signal* signal)
if
(
get_tuple_state
(
regOperPtr
.
p
)
==
TUPLE_PREPARED
)
{
ljam
();
if
(
!
regTabPtr
.
p
->
tuxCustomTriggers
.
isEmpty
())
if
(
!
regTabPtr
.
p
->
tuxCustomTriggers
.
isEmpty
()
&&
(
flags
&
0x1
)
==
0
)
executeTuxAbortTriggers
(
signal
,
regOperPtr
.
p
,
regFragPtr
.
p
,
...
...
@@ -103,7 +109,8 @@ void Dbtup::execTUP_ABORTREQ(Signal* signal)
ljam
();
c_operation_pool
.
getPtr
(
loopOpPtr
);
if
(
get_tuple_state
(
loopOpPtr
.
p
)
!=
TUPLE_ALREADY_ABORTED
&&
!
regTabPtr
.
p
->
tuxCustomTriggers
.
isEmpty
())
{
!
regTabPtr
.
p
->
tuxCustomTriggers
.
isEmpty
()
&&
(
flags
&
0x1
)
==
0
)
{
ljam
();
executeTuxAbortTriggers
(
signal
,
loopOpPtr
.
p
,
...
...
storage/ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
View file @
15783e44
...
...
@@ -747,6 +747,12 @@ void Dbtup::execTUPKEYREQ(Signal* signal)
regFragPtr
,
regTabPtr
)
!=
0
)
{
jam
();
/*
* undo the change before tupkeyErrorLab resets the op
* assume no timeslicing can occur even with diskdata
*/
signal
->
theData
[
0
]
=
operPtr
.
i
;
do_tup_abortreq
(
signal
,
0x1
);
tupkeyErrorLab
(
signal
);
return
;
}
...
...
@@ -775,6 +781,11 @@ void Dbtup::execTUPKEYREQ(Signal* signal)
regFragPtr
,
regTabPtr
)
!=
0
)
{
jam
();
/*
* see insert case
*/
signal
->
theData
[
0
]
=
operPtr
.
i
;
do_tup_abortreq
(
signal
,
0x1
);
tupkeyErrorLab
(
signal
);
return
;
}
...
...
storage/ndb/src/kernel/blocks/dbtup/DbtupTrigger.cpp
View file @
15783e44
...
...
@@ -1111,6 +1111,12 @@ Dbtup::addTuxEntries(Signal* signal,
Operationrec
*
regOperPtr
,
Tablerec
*
regTabPtr
)
{
if
(
ERROR_INSERTED
(
4022
))
{
ljam
();
CLEAR_ERROR_INSERT_VALUE
;
terrorCode
=
9999
;
return
-
1
;
}
TuxMaintReq
*
const
req
=
(
TuxMaintReq
*
)
signal
->
getDataPtrSend
();
const
DLList
<
TupTriggerData
>&
triggerList
=
regTabPtr
->
tuxCustomTriggers
;
TriggerPtr
triggerPtr
;
...
...
@@ -1120,6 +1126,14 @@ Dbtup::addTuxEntries(Signal* signal,
ljam
();
req
->
indexId
=
triggerPtr
.
p
->
indexId
;
req
->
errorCode
=
RNIL
;
if
(
ERROR_INSERTED
(
4023
)
&&
!
triggerList
.
hasNext
(
triggerPtr
))
{
ljam
();
CLEAR_ERROR_INSERT_VALUE
;
terrorCode
=
9999
;
failPtrI
=
triggerPtr
.
i
;
goto
fail
;
}
EXECUTE_DIRECT
(
DBTUX
,
GSN_TUX_MAINT_REQ
,
signal
,
TuxMaintReq
::
SignalLength
);
ljamEntry
();
...
...
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