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
ccb79bb8
Commit
ccb79bb8
authored
Jan 31, 2008
by
pekka@sama.ndb.mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ndb - bug#34107 patch 1, kernel
parent
7bf78e09
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
23 additions
and
6 deletions
+23
-6
ndb/src/kernel/blocks/dbtup/Dbtup.hpp
ndb/src/kernel/blocks/dbtup/Dbtup.hpp
+3
-1
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
+8
-0
ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp
ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp
+11
-5
ndb/src/ndbapi/ndberror.c
ndb/src/ndbapi/ndberror.c
+1
-0
No files found.
ndb/src/kernel/blocks/dbtup/Dbtup.hpp
View file @
ccb79bb8
...
...
@@ -198,6 +198,7 @@
#define ZUNSUPPORTED_BRANCH 892
#define ZSTORED_SEIZE_ATTRINBUFREC_ERROR 873 // Part of Scan
#define ZSTORED_TOO_MUCH_ATTRINFO_ERROR 874
#define ZREAD_ONLY_CONSTRAINT_VIOLATION 893
#define ZVAR_SIZED_NOT_SUPPORTED 894
...
...
@@ -2173,7 +2174,8 @@ private:
Operationrec
*
regOperPtr
,
Uint32
lenAttrInfo
);
void
storedSeizeAttrinbufrecErrorLab
(
Signal
*
signal
,
Operationrec
*
regOperPtr
);
Operationrec
*
regOperPtr
,
Uint32
errorCode
);
bool
storedProcedureAttrInfo
(
Signal
*
signal
,
Operationrec
*
regOperPtr
,
Uint32
length
,
...
...
ndb/src/kernel/blocks/dbtup/DbtupExecQuery.cpp
View file @
ccb79bb8
...
...
@@ -77,6 +77,14 @@ void Dbtup::copyAttrinfo(Signal* signal,
RbufLen
=
copyAttrBufPtr
.
p
->
attrbuf
[
ZBUF_DATA_LEN
];
Rnext
=
copyAttrBufPtr
.
p
->
attrbuf
[
ZBUF_NEXT
];
Rfirst
=
cfirstfreeAttrbufrec
;
/*
* ATTRINFO comes from 2 mutually exclusive places:
* 1) TUPKEYREQ (also interpreted part)
* 2) STORED_PROCREQ before scan start
* Assert here that both have a check for overflow.
* The "<" instead of "<=" is intentional.
*/
ndbrequire
(
RinBufIndex
+
RbufLen
<
ZATTR_BUFFER_SIZE
);
MEMCOPY_NO_WORDS
(
&
inBuffer
[
RinBufIndex
],
&
copyAttrBufPtr
.
p
->
attrbuf
[
0
],
RbufLen
);
...
...
ndb/src/kernel/blocks/dbtup/DbtupStoredProcDef.cpp
View file @
ccb79bb8
...
...
@@ -108,6 +108,11 @@ void Dbtup::scanProcedure(Signal* signal,
regOperPtr
->
attrinbufLen
=
lenAttrInfo
;
regOperPtr
->
currentAttrinbufLen
=
0
;
regOperPtr
->
pageOffset
=
storedPtr
.
i
;
if
(
lenAttrInfo
>=
ZATTR_BUFFER_SIZE
)
{
// yes ">="
jam
();
// send REF and change state to ignore the ATTRINFO to come
storedSeizeAttrinbufrecErrorLab
(
signal
,
regOperPtr
,
ZSTORED_TOO_MUCH_ATTRINFO_ERROR
);
}
}
//Dbtup::scanProcedure()
void
Dbtup
::
copyProcedure
(
Signal
*
signal
,
...
...
@@ -146,7 +151,7 @@ bool Dbtup::storedProcedureAttrInfo(Signal* signal,
Uint32
RnoFree
=
cnoFreeAttrbufrec
;
if
(
ERROR_INSERTED
(
4004
)
&&
!
copyProcedure
)
{
CLEAR_ERROR_INSERT_VALUE
;
storedSeizeAttrinbufrecErrorLab
(
signal
,
regOperPtr
);
storedSeizeAttrinbufrecErrorLab
(
signal
,
regOperPtr
,
ZSTORED_SEIZE_ATTRINBUFREC_ERROR
);
return
false
;
}
//if
regOperPtr
->
currentAttrinbufLen
+=
length
;
...
...
@@ -162,7 +167,7 @@ bool Dbtup::storedProcedureAttrInfo(Signal* signal,
regAttrPtr
.
p
->
attrbuf
[
ZBUF_NEXT
]
=
RNIL
;
}
else
{
ljam
();
storedSeizeAttrinbufrecErrorLab
(
signal
,
regOperPtr
);
storedSeizeAttrinbufrecErrorLab
(
signal
,
regOperPtr
,
ZSTORED_SEIZE_ATTRINBUFREC_ERROR
);
return
false
;
}
//if
if
(
regOperPtr
->
firstAttrinbufrec
==
RNIL
)
{
...
...
@@ -190,7 +195,7 @@ bool Dbtup::storedProcedureAttrInfo(Signal* signal,
}
//if
if
(
ERROR_INSERTED
(
4005
)
&&
!
copyProcedure
)
{
CLEAR_ERROR_INSERT_VALUE
;
storedSeizeAttrinbufrecErrorLab
(
signal
,
regOperPtr
);
storedSeizeAttrinbufrecErrorLab
(
signal
,
regOperPtr
,
ZSTORED_SEIZE_ATTRINBUFREC_ERROR
);
return
false
;
}
//if
...
...
@@ -211,7 +216,8 @@ bool Dbtup::storedProcedureAttrInfo(Signal* signal,
}
//Dbtup::storedProcedureAttrInfo()
void
Dbtup
::
storedSeizeAttrinbufrecErrorLab
(
Signal
*
signal
,
Operationrec
*
regOperPtr
)
Operationrec
*
regOperPtr
,
Uint32
errorCode
)
{
StoredProcPtr
storedPtr
;
c_storedProcPool
.
getPtr
(
storedPtr
,
(
Uint32
)
regOperPtr
->
pageOffset
);
...
...
@@ -222,7 +228,7 @@ void Dbtup::storedSeizeAttrinbufrecErrorLab(Signal* signal,
regOperPtr
->
lastAttrinbufrec
=
RNIL
;
regOperPtr
->
transstate
=
ERROR_WAIT_STORED_PROCREQ
;
signal
->
theData
[
0
]
=
regOperPtr
->
userpointer
;
signal
->
theData
[
1
]
=
ZSTORED_SEIZE_ATTRINBUFREC_ERROR
;
signal
->
theData
[
1
]
=
errorCode
;
signal
->
theData
[
2
]
=
regOperPtr
->
pageOffset
;
sendSignal
(
regOperPtr
->
userblockref
,
GSN_STORED_PROCREF
,
signal
,
3
,
JBB
);
}
//Dbtup::storedSeizeAttrinbufrecErrorLab()
...
...
ndb/src/ndbapi/ndberror.c
View file @
ccb79bb8
...
...
@@ -291,6 +291,7 @@ ErrorBundle ErrorCodes[] = {
{
242
,
AE
,
"Zero concurrency in scan"
},
{
244
,
AE
,
"Too high concurrency in scan"
},
{
269
,
AE
,
"No condition and attributes to read in scan"
},
{
874
,
AE
,
"Too much attrinfo (e.g. scan filter) for scan in tuple manager"
},
{
4600
,
AE
,
"Transaction is already started"
},
{
4601
,
AE
,
"Transaction is not started"
},
{
4602
,
AE
,
"You must call getNdbOperation before executeScan"
},
...
...
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